├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ ├── stale.yml │ ├── experimental.yml │ ├── trigger.yml │ ├── docs.yml │ └── pr.yml ├── core ├── impl │ └── src │ │ └── test │ │ └── webapp │ │ └── resourcepaths │ │ ├── welcome.html │ │ ├── catalog │ │ ├── index.html │ │ ├── products.html │ │ └── offers │ │ │ ├── books.html │ │ │ └── music.html │ │ └── customer │ │ └── login.jsp └── api │ └── pom.xml ├── test ├── embedded │ ├── soteria-basic │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── beans.xml │ ├── soteria-form │ │ └── src │ │ │ └── test │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── beans.xml │ ├── springboot │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ ├── classloader │ │ ├── src │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ └── META-INF │ │ │ │ └── context.xml │ │ └── pom.xml │ ├── web-fragment-in-jar-webapp │ │ ├── src │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ ├── META-INF │ │ │ │ └── context.xml │ │ │ │ └── index.html │ │ └── pom.xml │ ├── weld │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── index.xhtml │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ ├── faces-config.xml │ │ │ └── web.xml │ ├── eclipselink │ │ └── src │ │ │ └── main │ │ │ ├── webapp │ │ │ ├── index.xhtml │ │ │ └── WEB-INF │ │ │ │ ├── beans.xml │ │ │ │ ├── faces-config.xml │ │ │ │ └── web.xml │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── persistence.xml │ ├── hazelcast │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── beans.xml │ │ │ └── web.xml │ │ │ └── index.xhtml │ ├── web-fragment-in-jar │ │ ├── src │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── web-fragment.xml │ │ └── pom.xml │ ├── helloworld │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ └── pom.xml ├── server │ ├── wasp │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── tags │ │ │ │ └── hellotag.tag │ │ │ ├── web.xml │ │ │ └── tld │ │ │ │ ├── hellotag.tld │ │ │ │ └── hellotld.tld │ │ │ ├── hellotld2.jsp │ │ │ ├── hellotag.jsp │ │ │ ├── hellotld.jsp │ │ │ ├── hellotag2.jsp │ │ │ └── index.jsp │ ├── wasp2 │ │ ├── src │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ ├── hellotag2.tag │ │ │ │ └── hellotag2.tld │ │ └── pom.xml │ ├── helloworld │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── helloworld.html │ ├── programmatic │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ └── pom.xml ├── tck │ ├── coreprofile │ │ ├── cdi │ │ │ ├── runner │ │ │ │ ├── core │ │ │ │ │ └── src │ │ │ │ │ │ └── test │ │ │ │ │ │ └── resources │ │ │ │ │ │ ├── META-INF │ │ │ │ │ │ ├── services │ │ │ │ │ │ │ └── org.jboss.arquillian.core.spi.LoadableExtension │ │ │ │ │ │ └── cdi-tck.properties │ │ │ │ │ │ └── arquillian.xml │ │ │ │ └── pom.xml │ │ │ └── pom.xml │ │ ├── coreprofile │ │ │ ├── runner │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ └── services │ │ │ │ │ │ └── org.jboss.arquillian.core.spi.LoadableExtension │ │ │ │ │ └── arquillian.xml │ │ │ └── pom.xml │ │ ├── rest │ │ │ ├── runner │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── arquillian.xml │ │ │ └── pom.xml │ │ ├── inject │ │ │ └── pom.xml │ │ ├── jsonb │ │ │ └── pom.xml │ │ ├── jsonp │ │ │ └── pom.xml │ │ └── annotations │ │ │ └── pom.xml │ └── pom.xml ├── micro │ ├── microprofile-config │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── microprofile-config.properties │ ├── snoop │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ └── web.xml │ ├── protected-servlet │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ └── web.xml │ ├── helloworld │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ └── pom.xml ├── servlet │ ├── pages │ │ ├── README.md │ │ └── src │ │ │ ├── main │ │ │ └── webapp │ │ │ │ └── hello.jsp │ │ │ └── test │ │ │ └── java │ │ │ └── hello │ │ │ └── HelloIT.java │ ├── helloworld │ │ └── src │ │ │ ├── main │ │ │ └── webapp │ │ │ │ └── helloworld.html │ │ │ └── test │ │ │ └── java │ │ │ └── helloworld │ │ │ └── HelloWorldIT.java │ ├── hello │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── helloworld.html │ │ │ ├── hellojsp.jsp │ │ │ ├── helloel.jsp │ │ │ └── WEB-INF │ │ │ └── web.xml │ ├── crac │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ ├── beans.xml │ │ │ └── web.xml │ │ │ └── crac.xhtml │ └── pom.xml ├── webprofile │ ├── helloworld │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── index.html │ │ │ ├── WEB-INF │ │ │ └── beans.xml │ │ │ └── helloworld.jsp │ ├── integration │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── pages.jsp │ │ │ ├── WEB-INF │ │ │ ├── beans.xml │ │ │ └── web.xml │ │ │ ├── expression.jsp │ │ │ ├── jstl.jsp │ │ │ └── faces.xhtml │ └── pom.xml ├── coreprofile │ ├── integration │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── beans.xml │ ├── rest │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ ├── no_servlet_class │ │ └── src │ │ │ ├── main │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ │ └── test │ │ │ └── java │ │ │ └── cloud │ │ │ └── piranha │ │ │ └── test │ │ │ └── coreprofile │ │ │ └── no_servlet_class │ │ │ └── EchoIT.java │ ├── pom.xml │ ├── json │ │ └── src │ │ │ └── test │ │ │ └── java │ │ │ └── temperature │ │ │ └── TemperatureIT.java │ └── arquillian │ │ └── src │ │ └── test │ │ └── java │ │ └── helloarquillian │ │ └── HelloArquillianIT.java ├── common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── module-info.java └── jpms │ └── src │ └── test │ └── java │ ├── package1 │ ├── Utils.java │ ├── Library.java │ ├── Servlet.java │ └── Service.java │ ├── package2 │ ├── Library.java │ └── Listener.java │ └── package3 │ ├── Filter.java │ ├── Library.java │ └── DefaultService.java ├── extension ├── wasp │ └── src │ │ ├── test │ │ └── webapp │ │ │ ├── waspinitializer │ │ │ └── WEB-INF │ │ │ │ ├── lib │ │ │ │ └── KEEPME │ │ │ │ └── classes │ │ │ │ └── KEEPME │ │ │ └── jspwriter │ │ │ ├── close.jsp │ │ │ ├── close3.jsp │ │ │ ├── close2.jsp │ │ │ ├── clearBuffer.jsp │ │ │ └── close4.jsp │ │ └── site │ │ └── site.xml ├── weld │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ ├── org.jboss.weld.bootstrap.api.Service │ │ └── org.jboss.weld.environment.servlet.Container ├── jersey │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── jakarta.enterprise.inject.spi.Extension ├── micro │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── cloud.piranha.core.api.WebApplicationExtension ├── eclipselink │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── jakarta.enterprise.inject.spi.Extension ├── hazelcast │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── services │ │ │ └── jakarta.servlet.ServletContainerInitializer │ ├── README.md │ └── pom.xml ├── welcomefile │ └── src │ │ └── test │ │ └── webapp │ │ ├── welcomefile1 │ │ └── index.html │ │ └── welcomefile2 │ │ └── custom.html ├── datasource │ └── src │ │ └── site │ │ └── site.xml ├── fileupload │ ├── src │ │ └── site │ │ │ ├── site.xml │ │ │ └── markdown │ │ │ └── index.md │ └── pom.xml ├── tempdir │ └── src │ │ └── site │ │ ├── site.xml │ │ └── markdown │ │ └── index.md ├── soteria │ └── src │ │ └── test │ │ └── webapp │ │ └── WEB-INF │ │ └── beans.xml ├── webxml │ └── src │ │ └── test │ │ └── webxml │ │ ├── parse2 │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── effectiveMajorVersion1 │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── metadataComplete │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── denyUncoveredMethods │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── defaultContextPath │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── parse3 │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── welcomeFile │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── init3 │ │ └── WEB-INF │ │ │ └── classes │ │ │ └── META-INF │ │ │ └── web-fragment.xml │ │ ├── contextParam │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── mimeMapping │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── jspConfig │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── dataSource │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── errorPage │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── withoutLeadingSlash1 │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── filterMappings │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── init2 │ │ └── WEB-INF │ │ │ └── web.xml │ │ ├── init │ │ └── WEB-INF │ │ │ └── web.xml │ │ └── parse4 │ │ └── WEB-INF │ │ └── web.xml ├── servletannotations │ └── src │ │ └── test │ │ └── webapp │ │ └── webservlet │ │ └── WEB-INF │ │ └── web.xml ├── expressly │ └── pom.xml ├── omnifaces-omniutils │ └── pom.xml ├── omnifish-omnibeans │ └── pom.xml ├── omnifaces-config │ └── pom.xml ├── omnifaces-omniservices │ └── pom.xml ├── omnifaces-microprofile-jwt-auth │ └── pom.xml ├── mojarra │ └── pom.xml ├── parsson │ └── pom.xml ├── jstl │ └── pom.xml ├── yasson │ └── pom.xml ├── epicyro │ └── pom.xml ├── hibernate-validator │ └── pom.xml ├── jaxb │ └── pom.xml └── declared │ └── pom.xml ├── multi └── src │ └── main │ ├── zip │ ├── bin │ │ ├── start.cmd │ │ ├── stop.cmd │ │ ├── run.sh │ │ ├── stop.sh │ │ └── start.sh │ ├── etc │ │ ├── keystore.jks │ │ └── truststore.jks │ ├── tmp │ │ └── README │ └── webapps │ │ └── README │ ├── docker │ └── Dockerfile │ └── assembly │ └── zip.xml ├── dist ├── server │ └── src │ │ ├── main │ │ ├── zip │ │ │ ├── bin │ │ │ │ ├── start.cmd │ │ │ │ ├── stop.cmd │ │ │ │ ├── run.sh │ │ │ │ ├── stop.sh │ │ │ │ └── start.sh │ │ │ ├── etc │ │ │ │ ├── keystore.jks │ │ │ │ └── truststore.jks │ │ │ ├── tmp │ │ │ │ └── README │ │ │ └── webapps │ │ │ │ └── README │ │ ├── docker │ │ │ └── Dockerfile │ │ └── assembly │ │ │ └── zip.xml │ │ └── site │ │ └── site.xml ├── isolated │ └── src │ │ └── main │ │ ├── zip │ │ ├── bin │ │ │ ├── run.sh │ │ │ ├── start.cmd │ │ │ ├── stop.cmd │ │ │ ├── stop.sh │ │ │ └── start.sh │ │ ├── etc │ │ │ └── keystore.jks │ │ ├── tmp │ │ │ └── README │ │ └── webapps │ │ │ └── README │ │ ├── docker │ │ └── Dockerfile │ │ └── assembly │ │ └── zip.xml ├── platform │ └── src │ │ └── main │ │ ├── zip │ │ ├── bin │ │ │ ├── run.sh │ │ │ ├── start.cmd │ │ │ ├── stop.cmd │ │ │ ├── stop.sh │ │ │ └── start.sh │ │ ├── etc │ │ │ ├── keystore.jks │ │ │ └── truststore.jks │ │ ├── tmp │ │ │ └── README │ │ └── webapps │ │ │ └── README │ │ ├── docker │ │ └── Dockerfile │ │ └── assembly │ │ └── zip.xml ├── micro │ └── src │ │ ├── main │ │ ├── javadoc │ │ │ └── cloud.piranha.dist.micro │ │ │ │ └── cloud │ │ │ │ └── piranha │ │ │ │ └── dist │ │ │ │ └── micro │ │ │ │ └── doc-files │ │ │ │ ├── request-response.png │ │ │ │ └── request-response.pptx │ │ └── docker │ │ │ └── Dockerfile │ │ └── site │ │ ├── markdown │ │ └── index.md │ │ └── site.xml ├── servlet │ └── src │ │ ├── main │ │ └── docker │ │ │ └── Dockerfile │ │ └── site │ │ └── site.xml ├── webprofile │ └── src │ │ ├── main │ │ └── docker │ │ │ └── Dockerfile │ │ └── site │ │ ├── site.xml │ │ └── markdown │ │ └── index.md ├── microprofile │ └── src │ │ └── main │ │ └── docker │ │ └── Dockerfile └── coreprofile │ └── src │ └── site │ └── site.xml ├── micro ├── core │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ ├── jakarta.enterprise.inject.spi.Extension │ │ └── org.jboss.weld.environment.deployment.discovery.BeanArchiveHandler └── pom.xml ├── resource ├── impl │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── services │ │ │ └── java.net.spi.URLStreamHandlerProvider │ └── pom.xml └── api │ └── pom.xml ├── arquillian ├── server │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.jboss.arquillian.core.spi.LoadableExtension └── managed │ └── src │ ├── main │ └── resources │ │ └── META-INF │ │ └── services │ │ └── org.jboss.arquillian.core.spi.LoadableExtension │ └── test │ ├── webapp │ └── test │ │ └── WEB-INF │ │ └── web.xml │ └── java │ └── cloud │ └── piranha │ └── arquillian │ └── managed │ └── ManagedPiranhaContainerTest.java ├── SECURITY.md ├── debug └── modules.sh ├── embedded └── src │ ├── main │ └── javadoc │ │ └── cloud.piranha.embedded │ │ └── cloud │ │ └── piranha │ │ └── embedded │ │ └── doc-files │ │ ├── request-response.png │ │ └── request-response.pptx │ └── site │ ├── markdown │ └── index.md │ └── site.xml ├── docker ├── coreprofile │ └── src │ │ ├── main │ │ └── docker │ │ │ └── Dockerfile │ │ └── test │ │ └── java │ │ └── cloud │ │ └── piranha │ │ └── docker │ │ └── coreprofile │ │ └── CoreProfileIT.java └── pom.xml ├── maven ├── plugin │ └── src │ │ └── site │ │ └── site.xml ├── archetypes │ └── pom.xml └── pom.xml ├── .gitignore ├── http ├── crac │ ├── README.md │ ├── Dockerfile │ └── pom.xml ├── api │ └── pom.xml ├── jdk │ └── pom.xml ├── undertow │ └── pom.xml ├── tests │ └── pom.xml └── grizzly │ └── pom.xml ├── feature ├── api │ └── pom.xml ├── pid │ └── pom.xml ├── webapps │ └── pom.xml ├── impl │ └── pom.xml ├── logging │ └── pom.xml ├── exitonstop │ └── pom.xml ├── http │ └── pom.xml ├── https │ └── pom.xml └── webapp │ └── pom.xml ├── README.md ├── LICENSE └── spring └── spring-boot-starter-piranha-embedded └── pom.xml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: mnriem 2 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/welcome.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/catalog/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/customer/login.jsp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/catalog/products.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/catalog/offers/books.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/impl/src/test/webapp/resourcepaths/catalog/offers/music.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/embedded/soteria-basic/src/test/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/embedded/soteria-form/src/test/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/waspinitializer/WEB-INF/lib/KEEPME: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/embedded/springboot/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/waspinitializer/WEB-INF/classes/KEEPME: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /multi/src/main/zip/bin/start.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | java -jar lib\piranha-multi.jar %* 3 | -------------------------------------------------------------------------------- /multi/src/main/zip/bin/stop.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | move tmp\piranha.pid tmp\piranha.pid.old 3 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/bin/start.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | java -jar lib\piranha-dist-server.jar %* 3 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/bin/stop.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | move tmp\piranha.pid tmp\piranha.pid.old 3 | -------------------------------------------------------------------------------- /multi/src/main/zip/bin/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | exec ./start.sh --run $* 5 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/bin/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | exec ./start.sh --run $* 5 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/bin/start.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | java -jar lib\piranha-dist-isolated.jar 3 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/bin/stop.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | move tmp\piranha.pid tmp\piranha.pid.old 3 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/bin/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | exec ./start.sh --run $* 5 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/bin/start.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | java -jar lib\piranha-dist-platform.jar 3 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/bin/stop.cmd: -------------------------------------------------------------------------------- 1 | cd .. 2 | move tmp\piranha.pid tmp\piranha.pid.old 3 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/bin/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | exec ./start.sh --run $* 5 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/WEB-INF/tags/hellotag.tag: -------------------------------------------------------------------------------- 1 | <%@tag pageEncoding="UTF-8"%> 2 | Hello Tag 3 | -------------------------------------------------------------------------------- /test/server/wasp2/src/main/resources/META-INF/hellotag2.tag: -------------------------------------------------------------------------------- 1 | <%@tag pageEncoding="UTF-8"%> 2 | Hello Tag #2 3 | -------------------------------------------------------------------------------- /multi/src/main/zip/bin/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | mv tmp/piranha.pid tmp/piranha.pid.old 6 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/bin/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | mv tmp/piranha.pid tmp/piranha.pid.old 6 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/bin/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | mv tmp/piranha.pid tmp/piranha.pid.old 6 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/bin/stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | mv tmp/piranha.pid tmp/piranha.pid.old 6 | -------------------------------------------------------------------------------- /multi/src/main/zip/etc/keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/multi/src/main/zip/etc/keystore.jks -------------------------------------------------------------------------------- /micro/core/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension: -------------------------------------------------------------------------------- 1 | cloud.piranha.micro.core.CdiExtension 2 | -------------------------------------------------------------------------------- /multi/src/main/zip/etc/truststore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/multi/src/main/zip/etc/truststore.jks -------------------------------------------------------------------------------- /dist/server/src/main/zip/etc/keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/server/src/main/zip/etc/keystore.jks -------------------------------------------------------------------------------- /extension/weld/src/main/resources/META-INF/services/org.jboss.weld.bootstrap.api.Service: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.weld.WeldSecurityService -------------------------------------------------------------------------------- /extension/weld/src/main/resources/META-INF/services/org.jboss.weld.environment.servlet.Container: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.weld.WeldContainer -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/etc/keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/isolated/src/main/zip/etc/keystore.jks -------------------------------------------------------------------------------- /dist/platform/src/main/zip/etc/keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/platform/src/main/zip/etc/keystore.jks -------------------------------------------------------------------------------- /dist/server/src/main/zip/etc/truststore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/server/src/main/zip/etc/truststore.jks -------------------------------------------------------------------------------- /extension/jersey/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.jersey.JerseyExtension -------------------------------------------------------------------------------- /extension/micro/src/main/resources/META-INF/services/cloud.piranha.core.api.WebApplicationExtension: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.micro.MicroExtension -------------------------------------------------------------------------------- /test/embedded/classloader/src/main/webapp/META-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/etc/truststore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/platform/src/main/zip/etc/truststore.jks -------------------------------------------------------------------------------- /resource/impl/src/main/resources/META-INF/services/java.net.spi.URLStreamHandlerProvider: -------------------------------------------------------------------------------- 1 | cloud.piranha.resource.impl.ByteArrayResourceStreamHandlerProvider -------------------------------------------------------------------------------- /extension/eclipselink/src/main/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.eclipselink.EclipseLinkCdiExtension 2 | -------------------------------------------------------------------------------- /extension/hazelcast/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer: -------------------------------------------------------------------------------- 1 | cloud.piranha.extension.hazelcast.HazelcastInitializer 2 | -------------------------------------------------------------------------------- /extension/welcomefile/src/test/webapp/welcomefile1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | index.html 5 | 6 | 7 | -------------------------------------------------------------------------------- /extension/welcomefile/src/test/webapp/welcomefile2/custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | custom.html 5 | 6 | 7 | -------------------------------------------------------------------------------- /arquillian/server/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension: -------------------------------------------------------------------------------- 1 | cloud.piranha.arquillian.server.PiranhaServerLoadableExtension -------------------------------------------------------------------------------- /test/embedded/web-fragment-in-jar-webapp/src/main/webapp/META-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /test/tck/coreprofile/cdi/runner/core/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension: -------------------------------------------------------------------------------- 1 | org.jboss.weld.tck.piranha.PiranhaExtension -------------------------------------------------------------------------------- /arquillian/managed/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension: -------------------------------------------------------------------------------- 1 | cloud.piranha.arquillian.managed.ManagedPiranhaContainerExtension 2 | -------------------------------------------------------------------------------- /micro/core/src/main/resources/META-INF/services/org.jboss.weld.environment.deployment.discovery.BeanArchiveHandler: -------------------------------------------------------------------------------- 1 | cloud.piranha.micro.core.PiranhaBeanArchiveHandler 2 | -------------------------------------------------------------------------------- /test/tck/coreprofile/coreprofile/runner/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension: -------------------------------------------------------------------------------- 1 | cloud.piranha.tck.core.CustomJsonbSerializationITFix -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | Please email info@piranha.cloud describing the issue 6 | (preferably with a reproducer and/or a fix) 7 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/jspwriter/close.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/plain" pageEncoding="UTF-8" import="java.io.*" autoFlush="false"%> 2 | <% 3 | out.close(); 4 | out.flush();%> 5 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/jspwriter/close3.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/plain" pageEncoding="UTF-8" import="java.io.*" autoFlush="false"%> 2 | <% 3 | out.close(); 4 | out.close();%> -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/jspwriter/close2.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/plain" pageEncoding="UTF-8" import="java.io.*" autoFlush="false"%> 2 | <% 3 | out.close(); 4 | out.println();%> 5 | -------------------------------------------------------------------------------- /extension/wasp/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/micro/microprofile-config/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | # Example application properties file 2 | file.property=File Property 3 | date.property=2000-01-01 4 | application.property=Some value 5 | -------------------------------------------------------------------------------- /debug/modules.sh: -------------------------------------------------------------------------------- 1 | mvn --also-make dependency:tree | grep "cloud.piranha" | grep -v "cloud.piranha.test" | sed -E 's|.*(cloud)|cloud|' | sed -E 's|>.*||' | awk -F ":" -v OFS=':' '{print $1, $2}' | sed 's/ *$//' | awk '!a[$0]++' | sort 2 | -------------------------------------------------------------------------------- /embedded/src/main/javadoc/cloud.piranha.embedded/cloud/piranha/embedded/doc-files/request-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/embedded/src/main/javadoc/cloud.piranha.embedded/cloud/piranha/embedded/doc-files/request-response.png -------------------------------------------------------------------------------- /embedded/src/main/javadoc/cloud.piranha.embedded/cloud/piranha/embedded/doc-files/request-response.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/embedded/src/main/javadoc/cloud.piranha.embedded/cloud/piranha/embedded/doc-files/request-response.pptx -------------------------------------------------------------------------------- /multi/src/main/zip/tmp/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for temporary files by Piranha. If the server is NOT 6 | running you can safely delete the contents of the directory, but do NOT delete 7 | the directory itself. 8 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/tmp/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for temporary files by Piranha. If the server is NOT 6 | running you can safely delete the contents of the directory, but do NOT delete 7 | the directory itself. 8 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/tmp/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for temporary files by Piranha. If the server is NOT 6 | running you can safely delete the contents of the directory, but do NOT delete 7 | the directory itself. 8 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/tmp/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for temporary files by Piranha. If the server is NOT 6 | running you can safely delete the contents of the directory, but do NOT delete 7 | the directory itself. 8 | -------------------------------------------------------------------------------- /dist/micro/src/main/javadoc/cloud.piranha.dist.micro/cloud/piranha/dist/micro/doc-files/request-response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/micro/src/main/javadoc/cloud.piranha.dist.micro/cloud/piranha/dist/micro/doc-files/request-response.png -------------------------------------------------------------------------------- /extension/datasource/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /dist/micro/src/main/javadoc/cloud.piranha.dist.micro/cloud/piranha/dist/micro/doc-files/request-response.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/piranhacloud/piranha/HEAD/dist/micro/src/main/javadoc/cloud.piranha.dist.micro/cloud/piranha/dist/micro/doc-files/request-response.pptx -------------------------------------------------------------------------------- /extension/fileupload/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /extension/tempdir/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /multi/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-multi.tar.gz /home/piranha/ 4 | RUN chown -R piranha:piranha /home/piranha 5 | WORKDIR /home/piranha/piranha/bin 6 | USER piranha 7 | CMD ["/bin/bash", "./run.sh"] 8 | -------------------------------------------------------------------------------- /multi/src/main/zip/webapps/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for your web applications. If a file ends with the .war 6 | extension, or it is a sub directory it will be considered a web application, 7 | anything else will be ignored. 8 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/webapps/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for your web applications. If a file ends with the .war 6 | extension, or it is a sub directory it will be considered a web application, 7 | anything else will be ignored. 8 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/webapps/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for your web applications. If a file ends with the .war 6 | extension, or it is a sub directory it will be considered a web application, 7 | anything else will be ignored. 8 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/webapps/README: -------------------------------------------------------------------------------- 1 | 2 | README 3 | ------ 4 | 5 | This directory is used for your web applications. If a file ends with the .war 6 | extension, or it is a sub directory it will be considered a web application, 7 | anything else will be ignored. 8 | -------------------------------------------------------------------------------- /dist/server/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-server.tar.gz /home/piranha/ 4 | RUN chown -R piranha:piranha /home/piranha 5 | WORKDIR /home/piranha/piranha/bin 6 | USER piranha 7 | CMD ["/bin/bash", "./run.sh"] 8 | -------------------------------------------------------------------------------- /dist/isolated/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-isolated.tar.gz /home/piranha/ 4 | RUN chown -R piranha:piranha /home/piranha 5 | WORKDIR /home/piranha/piranha/bin 6 | USER piranha 7 | CMD ["/bin/bash", "./run.sh"] 8 | -------------------------------------------------------------------------------- /dist/micro/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-micro.jar /home/piranha 4 | WORKDIR /home/piranha 5 | RUN chown piranha:piranha piranha-dist-micro.jar 6 | USER piranha 7 | CMD ["java", "-jar", "piranha-dist-micro.jar"] 8 | -------------------------------------------------------------------------------- /dist/platform/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-platform.tar.gz /home/piranha/ 4 | RUN chown -R piranha:piranha /home/piranha 5 | WORKDIR /home/piranha/piranha/bin 6 | USER piranha 7 | CMD ["/bin/bash", "./run.sh"] 8 | -------------------------------------------------------------------------------- /dist/servlet/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-servlet.jar /home/piranha 4 | WORKDIR /home/piranha 5 | RUN chown piranha:piranha piranha-dist-servlet.jar 6 | USER piranha 7 | CMD ["java", "-jar", "piranha-dist-servlet.jar"] 8 | -------------------------------------------------------------------------------- /dist/webprofile/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-webprofile.jar /home/piranha 4 | WORKDIR /home/piranha 5 | RUN chown piranha:piranha piranha-dist-webprofile.jar 6 | USER piranha 7 | CMD ["java", "-jar", "piranha-dist-webprofile.jar"] 8 | -------------------------------------------------------------------------------- /test/embedded/weld/src/main/webapp/index.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/servlet/pages/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Create a Jakarta Pages application on Piranha Servlet 3 | 4 | See [Create a Jakarta Pages application on Piranha Servlet](https://piranha.cloud/servlet/guides/pages) 5 | for the step by step guide. This repository contains the resulting project for 6 | your reference. 7 | -------------------------------------------------------------------------------- /docker/coreprofile/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-coreprofile.jar /home/piranha 4 | WORKDIR /home/piranha 5 | RUN chown piranha:piranha piranha-dist-coreprofile.jar 6 | USER piranha 7 | CMD ["java", "-jar", "piranha-dist-coreprofile.jar"] 8 | -------------------------------------------------------------------------------- /dist/microprofile/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:21 2 | RUN useradd -m piranha 3 | ADD target/piranha-dist-microprofile.jar /home/piranha 4 | WORKDIR /home/piranha 5 | RUN chown piranha:piranha piranha-dist-microprofile.jar 6 | USER piranha 7 | CMD ["java", "-jar", "piranha-dist-microprofile.jar"] 8 | -------------------------------------------------------------------------------- /test/embedded/eclipselink/src/main/webapp/index.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /maven/plugin/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dist/micro/src/site/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Piranha Micro 2 | 3 | Piranha Micro is a distribution that bootstrap parts of itself using Maven 4 | Central. Beyond that it delivers the same integration as Piranha Web Profile. 5 | 6 | ## Documentation 7 | 8 | 1. [Create a Hello World web application](create_a_hello_world_web_application.html) 9 | -------------------------------------------------------------------------------- /test/tck/coreprofile/cdi/runner/core/src/test/resources/META-INF/cdi-tck.properties: -------------------------------------------------------------------------------- 1 | org.jboss.cdi.tck.cdiLiteMode=true 2 | org.jboss.cdi.tck.spi.Beans=org.jboss.weld.tck.piranha.WeldBeansImpl 3 | org.jboss.cdi.tck.spi.Contexts=org.jboss.weld.tck.piranha.WeldContextImpl 4 | org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.piranha.WeldELImpl 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .classpath 2 | .factorypath 3 | .DS_Store 4 | .project 5 | .settings/ 6 | .vscode 7 | dependency-reduced-pom.xml 8 | nb-configuration.xml 9 | nbactions.xml 10 | nbproject/ 11 | target/ 12 | .idea 13 | *.iml 14 | *.original~ 15 | dist/server/tmp/ 16 | dist/platform/tmp/ 17 | .flattened-pom.xml 18 | bin/ 19 | piranha.pid 20 | -------------------------------------------------------------------------------- /extension/soteria/src/test/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /test/embedded/hazelcast/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /test/embedded/web-fragment-in-jar-webapp/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Start Page 5 | 6 | 7 | 8 |

Hello World!

9 | 10 | 11 | -------------------------------------------------------------------------------- /test/embedded/weld/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /test/embedded/eclipselink/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /test/servlet/pages/src/main/webapp/hello.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Hello from Jakarta Pages!

11 | 12 | 13 | -------------------------------------------------------------------------------- /test/server/helloworld/src/main/webapp/helloworld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World 6 | 7 | 8 | 9 | 10 |
Hello World!
11 | 12 | 13 | -------------------------------------------------------------------------------- /test/servlet/helloworld/src/main/webapp/helloworld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World 6 | 7 | 8 | 9 | 10 |
Hello World!
11 | 12 | 13 | -------------------------------------------------------------------------------- /test/servlet/hello/src/main/webapp/helloworld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World 6 | 7 | 8 | 9 | 10 |
Hello World!
11 | 12 | 13 | -------------------------------------------------------------------------------- /arquillian/managed/src/test/webapp/test/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /test/micro/snoop/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /test/webprofile/helloworld/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World! 6 | 7 | 8 | 9 | 10 |
Hello World!
11 | 12 | 13 | -------------------------------------------------------------------------------- /test/servlet/crac/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/parse2/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/pages.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | Pages works! 8 | 9 | 10 |

Pages works!

11 | 12 | 13 | -------------------------------------------------------------------------------- /test/micro/protected-servlet/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /test/servlet/hello/src/main/webapp/hellojsp.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello JSP 9 | 10 | 11 |

Hello JSP!

12 | 13 | 14 | -------------------------------------------------------------------------------- /test/webprofile/helloworld/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/effectiveMajorVersion1/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /test/coreprofile/integration/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /test/servlet/hello/src/main/webapp/helloel.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello EL 9 | 10 | 11 |

Hello ${param['name']}!

12 | 13 | 14 | -------------------------------------------------------------------------------- /test/tck/coreprofile/cdi/runner/core/src/test/resources/arquillian.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/embedded/hazelcast/src/main/webapp/index.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello Hazelcast 6 | 7 | 8 | Hello Hazelcast, your session id is: 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/webprofile/helloworld/src/main/webapp/helloworld.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hello World! 9 | 10 | 11 |

Hello World!

12 | 13 | 14 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/expression.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | ${expressionBean.message} 8 | 9 | 10 |

${expressionBean.message}

11 | 12 | 13 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/metadataComplete/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /test/embedded/eclipselink/src/main/webapp/WEB-INF/faces-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /dist/micro/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/denyUncoveredMethods/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Enable version updates for Maven 4 | - package-ecosystem: "maven" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | open-pull-requests-limit: 10 9 | 10 | # Enable version updates for GitHub Actions 11 | - package-ecosystem: "github-actions" 12 | directory: "/" 13 | schedule: 14 | interval: "weekly" 15 | open-pull-requests-limit: 10 16 | -------------------------------------------------------------------------------- /extension/hazelcast/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Piranha HTTP Session - Hazelcast Integration 3 | 4 | The Piranha HTTP Session - Hazelcast integration module is a module that 5 | can be used to have Hazelcast be the session manager. 6 | 7 | ## How to use? 8 | 9 | webApplication.setHttpSessionManager(new HazelcastHttpSessionManager()); 10 | 11 | This snippet above makes your web application use the Hazelcast HTTP session 12 | manager. 13 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/hellotld2.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | <%@taglib prefix="hellotld2" uri="http://hello.tld"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | Testing tag configured in web.xml 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/hellotag.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | <%@taglib prefix="hellotag" uri="/WEB-INF/tld/hellotag"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | Testing tag coming from tag file 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/jstl.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | <%@taglib uri="jakarta.tags.core" prefix="c"%> 3 | 4 | 5 | 6 | 7 | 8 | <c:out value="${'JSTL works!'}"/> 9 | 10 | 11 |

12 | 13 | 14 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/hellotld.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | <%@taglib prefix="hellotld" uri="/WEB-INF/tld/hellotld"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | Testing tag configured in TLD descriptor 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/hellotag2.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | <%@taglib prefix="hellotag2" uri="/META-INF/hellotag2"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | Testing tag coming from a tag file in a JAR 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/coreprofile/rest/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 30 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/embedded/web-fragment-in-jar/src/main/resources/META-INF/web-fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | /webfragmentInJar 8 | 9 | -------------------------------------------------------------------------------- /test/tck/coreprofile/coreprofile/runner/src/test/resources/arquillian.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/defaultContextPath/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | /defaultContextPath 9 | 10 | -------------------------------------------------------------------------------- /http/crac/README.md: -------------------------------------------------------------------------------- 1 | ## CRaC integration 2 | 3 | Make sure you are using a CRaC enabled JDK available from 4 | https://github.com/CRaC/openjdk-builds/releases 5 | 6 | To create the checkpoint: 7 | 8 | 1. java -XX:CRaCCheckpointTo=cr -jar piranha-dist-servlet.jar --enable-crac --write-pid --war-file your.war & 9 | 2. jcmd piranha-dist-servlet.jar JDK.checkpoint 10 | 3. files should be in the cr directory 11 | 12 | To restore from checkpoint: 13 | 14 | 1. java -XX:CRaCRestoreFrom=cr 15 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/faces.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | #{facesBean.message} 9 | 10 | 11 |

#{facesBean.message}

12 |
13 | 14 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/parse3/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | index.html 6 | default.jsp 7 | 8 | 9 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/welcomeFile/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | index.xhtml 9 | 10 | 11 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/init3/WEB-INF/classes/META-INF/web-fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | /webfragmentInClassesMetaInf 8 | 9 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/contextParam/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | myname 9 | myvalue 10 | 11 | 12 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/mimeMapping/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | class 9 | application/x-java-class 10 | 11 | 12 | -------------------------------------------------------------------------------- /embedded/src/site/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Piranha Embedded 2 | 3 | Piranha Embedded can be used to integrate Piranha into your application. 4 | 5 | ## Documentation 6 | 7 | 1. [Create a Piranha Embedded GraalVM application](create_a_piranha_embedded_graalvm_application.html) 8 | 1. [Create a Hello World web application](create_a_hello_world_web_application.html) 9 | 1. [Create an embedded JLink application](create_an_embedded_jlink_application.html) 10 | 1. [Running Piranha Embedded with Spring Boot](running_piranha_embedded_with_spring_boot.html) -------------------------------------------------------------------------------- /test/embedded/weld/src/main/webapp/WEB-INF/faces-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | org.jboss.weld.module.jsf.ConversationAwareViewHandler 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | /WEB-INF/tld/hellotld.tld 10 | http://hello.tld 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /extension/tempdir/src/site/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Piranha TEMPDIR Extension 2 | 3 | The TEMPDIR extension delivers the ability for a Piranha runtime to support 4 | the Servlet temporary directory. This extension is available by default for the 5 | following runtimes: 6 | 7 | 1. Piranha Server 8 | 1. Piranha Servlet 9 | 1. Piranha Web Profile 10 | 11 | ## Configuration parameters 12 | 13 | The following configuration parameter is available: 14 | 15 | 1. `cloud.piranha.extension.tempdir.location` - the directory where the temporary files will be stored. The default is `tmp`. 16 | 17 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/jspConfig/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | http://tag.lib 10 | /WEB-INF/taglib.tld 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/server/wasp2/src/main/resources/META-INF/hellotag2.tld: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1.0 5 | hellotag2 6 | /META-INF/hellotag2 7 | 8 | hellotag2 9 | hellotag2.tag 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/WEB-INF/tld/hellotag.tld: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1.0 5 | hellotag 6 | /WEB-INF/tld/hellotag 7 | 8 | hellotag 9 | /WEB-INF/tags/hellotag.tag 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/WEB-INF/tld/hellotld.tld: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.0 4 | hellotld 5 | /WEB-INF/tld/hellotld 6 | 7 | hellotld 8 | wasp.HelloTldTag 9 | JSP 10 | 11 | 12 | -------------------------------------------------------------------------------- /test/tck/coreprofile/rest/runner/src/test/resources/arquillian.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 8080 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /test/common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | test-common 12 | 13 | Piranha - Test - Common functionality 14 | 15 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/dataSource/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | jdbc/demo 9 | org.h2.jdbcx.JdbcDataSource 10 | jdbc:h2:mem:webxml;DB_CLOSE_DELAY=-1 11 | sa 12 | 13 | 14 | -------------------------------------------------------------------------------- /feature/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.feature 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-feature-api 13 | jar 14 | 15 | Piranha - Feature - API 16 | 17 | -------------------------------------------------------------------------------- /test/server/wasp/src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/html" pageEncoding="UTF-8"%> 2 | 3 | 4 | 5 | 6 | 7 | 8 | Index page 9 | 10 | 11 |

This web application contains the following tests:

12 |
    13 |
  1. Testing the <hello-tld> tag using taglib config
  2. 14 |
  3. Testing the <hello-tld> tag using web.xml config
  4. 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /dist/server/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /resource/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.resource 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-resource-api 13 | jar 14 | 15 | Piranha - Resource - API 16 | 17 | -------------------------------------------------------------------------------- /test/servlet/crac/src/main/webapp/crac.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | Jakarta Faces application 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/errorPage/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 404 9 | /notfound.jsp 10 | 11 | 12 | java.lang.IllegalStateException 13 | /error.jsp 14 | 15 | 16 | -------------------------------------------------------------------------------- /http/crac/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu 2 | 3 | # 4 | # Put the piranha-servlet.jar in the directory where this Dockerfile resides. 5 | # 6 | ADD piranha-dist-servlet.jar /root 7 | 8 | # 9 | # Download JDK from https://github.com/CRaC/openjdk-builds/releases and put it 10 | # in the directory where this Dockerfile resides. Adjust the filenames below if 11 | # you are using a newer release. 12 | # 13 | ADD openjdk-17-crac+3_linux-x64.tar.gz /opt 14 | ENV JAVA_HOME=/opt/openjdk-17-crac+3_linux-x64 15 | ENV PATH=$PATH:/opt/openjdk-17-crac+3_linux-x64/bin 16 | 17 | # 18 | # Add checkpoint directory. 19 | # 20 | ADD cr cr 21 | 22 | # 23 | # Restore java process from checkpoint. 24 | # 25 | CMD ["java", "-XX:CRaCRestoreFrom=cr"] 26 | -------------------------------------------------------------------------------- /test/embedded/web-fragment-in-jar/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test.embedded 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-test-embedded-web-fragment-in-jar 12 | jar 13 | 14 | Piranha - Test - Embedded - web-fragment in JAR 15 | 16 | -------------------------------------------------------------------------------- /test/embedded/weld/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | Faces Servlet 8 | jakarta.faces.webapp.FacesServlet 9 | 1 10 | 11 | 12 | Faces Servlet 13 | *.html 14 | 15 | 16 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/withoutLeadingSlash1/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TestServlet 6 | cloud.piranha.extension.webxml.internal.TestWithoutLeadingSlashServlet 7 | 8 | 9 | TestServlet 10 | thisIsWithoutALeadingSlash 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/embedded/hazelcast/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | Faces Servlet 8 | jakarta.faces.webapp.FacesServlet 9 | 1 10 | 11 | 12 | Faces Servlet 13 | *.html 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/servlet/crac/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | Faces Servlet 8 | jakarta.faces.webapp.FacesServlet 9 | 1 10 | 11 | 12 | Faces Servlet 13 | *.xhtml 14 | 15 | 16 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/jspwriter/clearBuffer.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/plain" pageEncoding="UTF-8" import="java.io.*" autoFlush="false"%> 2 | <% 3 | if (out.getBufferSize() > 0) { 4 | out.println("Arbitrary text"); 5 | out.flush(); 6 | out.println("Test FAILED"); 7 | try { 8 | out.clearBuffer(); 9 | } catch (Throwable t) { 10 | if (t instanceof IOException) { 11 | out.println("Test FAILED"); 12 | return; 13 | } else { 14 | out.println("Test PASSED"); 15 | } 16 | } 17 | out.println("Test PASSED"); 18 | } else { 19 | out.println("Test PASSED"); 20 | } 21 | %> 22 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: stale 2 | on: 3 | schedule: 4 | - cron: "0 0 * * *" 5 | workflow_dispatch: 6 | jobs: 7 | stale: 8 | if: github.repository == 'piranhacloud/piranha' 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/stale@v10 12 | with: 13 | repo-token: ${{ secrets.GITHUB_TOKEN }} 14 | stale-issue-message: 'This issue is stale because it has been open 170 days with no activity. Remove stale label or comment or this will be closed in 10 days' 15 | stale-pr-message: 'This PR is stale because it has been open 170 days with no activity. Remove stale label or comment or this will be closed in 10 days' 16 | days-before-stale: 170 17 | days-before-close: 10 18 | -------------------------------------------------------------------------------- /test/coreprofile/no_servlet_class/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cloud.piranha.test.coreprofile.no_servlet_class.EchoApplication 4 | 5 | 6 | cloud.piranha.test.coreprofile.no_servlet_class.EchoApplication 7 | /* 8 | 9 | 10 | 30 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/servlet/hello/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HelloServlet 6 | hello.HelloServlet 7 | 8 | 9 | HelloServlet 10 | /helloservlet 11 | 12 | 13 | 30 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/micro/helloworld/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HelloWorldServlet 6 | helloworld.HelloWorldServlet 7 | 8 | 9 | HelloWorldServlet 10 | /index.html 11 | 12 | 13 | 30 14 | 15 | 16 | -------------------------------------------------------------------------------- /test/tck/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck 14 | project 15 | pom 16 | Piranha - Test - TCK 17 | 18 | coreprofile 19 | 20 | 21 | -------------------------------------------------------------------------------- /extension/wasp/src/test/webapp/jspwriter/close4.jsp: -------------------------------------------------------------------------------- 1 | <%@page contentType="text/plain" pageEncoding="UTF-8" import="java.io.*" autoFlush="false"%> 2 | <% 3 | out.close(); 4 | ServletContext ctx = (ServletContext) application; 5 | try { 6 | out.flush(); 7 | } catch (Throwable t) { 8 | if (t instanceof IOException) { 9 | ctx.setAttribute("flush.exception", t); 10 | } 11 | } 12 | 13 | try { 14 | out.println(); 15 | } catch (Throwable t) { 16 | if (t instanceof IOException) { 17 | ctx.setAttribute("write.exception", t); 18 | } 19 | } 20 | 21 | try { 22 | out.close(); 23 | } catch (Throwable t) { 24 | ctx.setAttribute("close.exception", t); 25 | } 26 | %> 27 | -------------------------------------------------------------------------------- /test/micro/snoop/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | SnoopServlet 9 | snoop.SnoopServlet 10 | 11 | 12 | SnoopServlet 13 | /Snoop 14 | 15 | 16 | 30 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/embedded/helloworld/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | HelloWorldServlet 9 | helloworld.HelloWorldServlet 10 | 11 | 12 | HelloWorldServlet 13 | /index.html 14 | 15 | 16 | 30 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/server/programmatic/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | ProgrammaticServlet 9 | programmatic.ProgrammaticServlet 10 | 11 | 12 | ProgrammaticServlet 13 | /index.html 14 | 15 | 16 | 30 17 | 18 | 19 | -------------------------------------------------------------------------------- /extension/servletannotations/src/test/webapp/webservlet/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | TestServlet 9 | cloud.piranha.extension.servletannotations.TestServlet 10 | 11 | 12 | TestServlet 13 | /url1b 14 | /url2b/* 15 | *.url3b 16 | 17 | 18 | -------------------------------------------------------------------------------- /embedded/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /test/tck/coreprofile/cdi/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.cdi 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - CDI TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/tck/coreprofile/rest/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.rest 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - REST TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /http/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.http 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-http-api 13 | jar 14 | 15 | Piranha - HTTP - API 16 | 17 | 18 | 19 | org.junit.jupiter 20 | junit-jupiter-api 21 | test 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/tck/coreprofile/inject/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.inject 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - Inject TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/tck/coreprofile/jsonb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.jsonb 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - JSON Binding TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/tck/coreprofile/jsonp/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.jsonp 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - JSON Processing TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/tck/coreprofile/coreprofile/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.coreprofile 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - Core Profile TCK - Project 17 | 18 | installer 19 | runner 20 | 21 | 22 | -------------------------------------------------------------------------------- /dist/coreprofile/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /test/tck/coreprofile/cdi/runner/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.test.tck.coreprofile.cdi 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | cloud.piranha.test.tck.coreprofile.cdi.runner 11 | project 12 | pom 13 | Piranha - Test - TCK - Core Profile - CDI TCK - Runner - Project 14 | 15 | core 16 | model 17 | signature 18 | 19 | 20 | -------------------------------------------------------------------------------- /maven/archetypes/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.maven 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | cloud.piranha.maven.archetypes 13 | project 14 | pom 15 | 16 | Piranha - Maven - Archetypes 17 | 18 | 19 | 20 | default 21 | file:///tmp/piranha/maven/archetypes/ 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/webprofile/integration/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Faces Servlet 6 | jakarta.faces.webapp.FacesServlet 7 | 1 8 | 9 | 10 | Faces Servlet 11 | *.xhtml 12 | 13 | 14 | 30 15 | 16 | 17 | index.xhtml 18 | 19 | 20 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/filterMappings/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | TestFilter 9 | cloud.piranha.extension.webxml.TestFilter 10 | true 11 | 12 | name 13 | value 14 | 15 | 16 | 17 | TestFilter 18 | /* 19 | REQUEST 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/embedded/eclipselink/src/main/resources/META-INF/persistence.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | org.eclipse.persistence.jpa.PersistenceProvider 6 | jdbc/demo 7 | eclipselink.EclipseLinkTable 8 | false 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/init2/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | SecureServlet 9 | /SecureServlet 10 | GET 11 | POST 12 | 13 | 14 | someRole 15 | 16 | 17 | NONE 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /feature/pid/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.feature 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-feature-pid 12 | jar 13 | 14 | Piranha - Feature - PID 15 | 16 | 17 | 18 | cloud.piranha.feature 19 | piranha-feature-impl 20 | ${project.version} 21 | compile 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/micro/protected-servlet/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | ProtectedServlet 10 | /protected/servlet 11 | GET 12 | 13 | 14 | 15 | architect 16 | 17 | 18 | 19 | 20 | BASIC 21 | some 22 | 23 | 24 | -------------------------------------------------------------------------------- /dist/servlet/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /feature/webapps/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.feature 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-feature-webapps 12 | jar 13 | 14 | Piranha - Feature - WebApps 15 | 16 | 17 | 18 | cloud.piranha.feature 19 | piranha-feature-webapp 20 | ${project.version} 21 | compile 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /resource/impl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.resource 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-resource-impl 13 | jar 14 | 15 | Piranha - Resource - Implementation 16 | 17 | 18 | 19 | 20 | cloud.piranha.resource 21 | piranha-resource-api 22 | ${project.version} 23 | compile 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/coreprofile/no_servlet_class/src/test/java/cloud/piranha/test/coreprofile/no_servlet_class/EchoIT.java: -------------------------------------------------------------------------------- 1 | package cloud.piranha.test.coreprofile.no_servlet_class; 2 | 3 | import java.net.URI; 4 | import java.net.http.HttpClient; 5 | import java.net.http.HttpRequest; 6 | import java.net.http.HttpResponse; 7 | import java.net.http.HttpResponse.BodyHandlers; 8 | import static org.junit.jupiter.api.Assertions.assertEquals; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class EchoIT { 12 | 13 | private String httpPort = System.getProperty("httpPort"); 14 | 15 | @Test 16 | void testEcho() throws Exception { 17 | HttpClient client = HttpClient.newHttpClient(); 18 | HttpRequest request = HttpRequest 19 | .newBuilder(new URI("http://localhost:" + httpPort + "/piranha-test-coreprofile-no_servlet_class/echo")) 20 | .build(); 21 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 22 | assertEquals("echo", response.body()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/init/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | myservletcontext 8 | 9 | myname 10 | myvalue 11 | 12 | 13 | Test Servlet 14 | cloud.piranha.extension.webxml.TestServlet 15 | 1 16 | 17 | 18 | Test Servlet 19 | *.html 20 | 21 | 22 | 30 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/servlet/helloworld/src/test/java/helloworld/HelloWorldIT.java: -------------------------------------------------------------------------------- 1 | package helloworld; 2 | 3 | import java.net.URI; 4 | import java.net.http.HttpClient; 5 | import java.net.http.HttpRequest; 6 | import java.net.http.HttpResponse; 7 | import java.net.http.HttpResponse.BodyHandlers; 8 | import static org.junit.jupiter.api.Assertions.assertTrue; 9 | import org.junit.jupiter.api.Disabled; 10 | import org.junit.jupiter.api.Test; 11 | 12 | class HelloWorldIT { 13 | 14 | @Disabled 15 | @Test 16 | void testHelloWorldHtml() throws Exception { 17 | HttpClient client = HttpClient.newHttpClient(); 18 | HttpRequest request = HttpRequest 19 | .newBuilder(new URI("http://localhost:" 20 | + Integer.valueOf(System.getProperty("httpPort")) 21 | + "/helloworld/helloworld.html")) 22 | .build(); 23 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 24 | assertTrue(response.body().contains("Hello World!")); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /http/crac/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.http 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-http-crac 11 | Piranha - HTTP - CRaC integration 12 | 13 | 14 | cloud.piranha.http 15 | piranha-http-api 16 | ${project.version} 17 | 18 | 19 | io.github.crac 20 | org-crac 21 | compile 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/embedded/eclipselink/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | Faces Servlet 9 | jakarta.faces.webapp.FacesServlet 10 | 1 11 | 12 | 13 | Faces Servlet 14 | *.html 15 | 16 | 17 | 30 18 | 19 | 20 | jdbc/demo 21 | org.h2.jdbcx.JdbcDataSource 22 | jdbc:h2:mem:eclipselink;DB_CLOSE_DELAY=-1 23 | sa 24 | 25 | 26 | -------------------------------------------------------------------------------- /test/server/wasp2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test.server 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-test-server-wasp2 12 | jar 13 | 14 | Piranha - Test - Server - WaSP #2 15 | 16 | 17 | UTF-8 18 | 19 | 20 | 21 | 22 | 23 | jakarta.platform 24 | jakarta.jakartaee-web-api 25 | provided 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![#piranhacloud](piranha_cloud.svg) 2 | 3 | # Piranha Project 4 | 5 | ![build status](https://github.com/piranhacloud/piranha/workflows/build/badge.svg) 6 | 7 | The Piranha Project delivers you with Cloud ready containers and useful add-on / 8 | integration modules. 9 | 10 | ## Quickstart 11 | 12 | Download a JAR based distribution from Maven Central. 13 | 14 | And run your web application using: 15 | 16 | ``` 17 | java -jar piranha-dist-XXX.jar --war-file your-webapplication.war 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | To get started with Piranha please go 23 | [here](https://piranha.cloud/release/index.html). 24 | 25 | ## How do I contribute? 26 | 27 | See [Contributing](CONTRIBUTING.md) 28 | 29 | ## Our code of Conduct 30 | 31 | See [Code of Conduct](CODE_OF_CONDUCT.md) 32 | 33 | ## Important notice 34 | 35 | Note if you file issues or answer questions on the issue tracker and/or issue 36 | pull requests you agree that those contributions will be owned by Manorrock.com 37 | and that Manorrock.com can use those contributions in any manner Manorrock.com 38 | so desires. 39 | -------------------------------------------------------------------------------- /dist/webprofile/src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /extension/expressly/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-expressly 11 | jar 12 | Piranha - Extension - Expressly 13 | 14 | 15 | cloud.piranha.core 16 | piranha-core-api 17 | ${project.version} 18 | compile 19 | 20 | 21 | org.glassfish.expressly 22 | expressly 23 | compile 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /test/embedded/web-fragment-in-jar-webapp/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test.embedded 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-test-embedded-web-fragment-in-jar-webapp 12 | war 13 | 14 | Piranha - Test - Embedded - web-fragment in JAR webapp 15 | 16 | 17 | UTF-8 18 | 19 | 20 | 21 | 22 | cloud.piranha.test.embedded 23 | piranha-test-embedded-web-fragment-in-jar 24 | ${project.version} 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /extension/fileupload/src/site/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Piranha File Upload Extension 2 | 3 | The File Upload extension delivers the ability for a Piranha runtime to support 4 | file upload. This extension is available by default for the following runtimes: 5 | 6 | 1. Piranha Server 7 | 1. Piranha Servlet 8 | 1. Piranha Web Profile 9 | 10 | ## Configuration parameters 11 | 12 | The following configuration parameters are available: 13 | 14 | 1. `cloud.piranha.extension.fileupload.outputDirectory` - the directory where 15 | the file upload will store temporary files. The default is the location as 16 | 17 | 1. `cloud.piranha.extension.fileupload.fileSizeTreshold` - the file size 18 | threshold (in bytes) before the runtime will create a temporary file on the 19 | filesystem to store the upload. The default is 10240 (10 KB). 20 | 21 | ## Setting the configuration parameters using web.xml 22 | 23 | You can set the configuration parameter in the web.xml as illustrated below: 24 | 25 | ```xml 26 | 27 | cloud.piranha.extension.fileupload.fileSizeTreshold 28 | 1048576 29 | 30 | ``` 31 | -------------------------------------------------------------------------------- /test/servlet/pages/src/test/java/hello/HelloIT.java: -------------------------------------------------------------------------------- 1 | package hello; 2 | 3 | import java.net.URI; 4 | import java.net.http.HttpClient; 5 | import static java.net.http.HttpClient.Redirect.ALWAYS; 6 | import java.net.http.HttpRequest; 7 | import java.net.http.HttpResponse; 8 | import java.net.http.HttpResponse.BodyHandlers; 9 | import java.time.Duration; 10 | import static org.junit.jupiter.api.Assertions.assertTrue; 11 | import org.junit.jupiter.api.Test; 12 | 13 | public class HelloIT { 14 | 15 | private final String portNumber = System.getProperty("httpPort"); 16 | 17 | @Test 18 | public void testPagesHelloJsp() throws Exception { 19 | HttpClient client = HttpClient 20 | .newBuilder() 21 | .connectTimeout(Duration.ofSeconds(60)) 22 | .followRedirects(ALWAYS) 23 | .build(); 24 | HttpRequest request = HttpRequest 25 | .newBuilder(new URI("http://localhost:" + portNumber + "/pages/hello.jsp")) 26 | .build(); 27 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 28 | assertTrue(response.body().contains("Hello from Jakarta Pages!")); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /extension/omnifaces-omniutils/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-omnifaces-omniutils 11 | jar 12 | Piranha - Extension - OmniFaces OmniUtils 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-impl 18 | ${project.version} 19 | compile 20 | 21 | 22 | org.omnifaces 23 | omniutils 24 | compile 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /multi/src/main/zip/bin/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | 6 | if [ -z ${JAVA_HOME} ]; then 7 | echo Using default java 8 | JAVA_BIN=java 9 | else 10 | echo Using JAVA_HOME: ${JAVA_HOME} 11 | JAVA_BIN=${JAVA_HOME}/bin/java 12 | fi 13 | 14 | if [[ "${PIRANHA_JPMS}" == "true" ]]; then 15 | INIT_OPTIONS="--module-path lib -m cloud.piranha.multi" 16 | else 17 | INIT_OPTIONS="-jar lib/piranha-multi.jar" 18 | fi 19 | 20 | 21 | if [[ "$*" == *"--suspend"* ]]; then 22 | JAVA_ARGS="${JAVA_ARGS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:9009" 23 | fi 24 | 25 | # 26 | # Set the SSL debug mode which is useful for debugging SSL connections. 27 | # 28 | # SSL_DEBUG=-Djavax.net.debug=ssl 29 | 30 | CMD="${JAVA_BIN} ${JAVA_ARGS} ${SSL_DEBUG} \ 31 | -Djava.util.logging.config.file=etc/logging.properties \ 32 | ${INIT_OPTIONS} $*" 33 | 34 | echo Starting Piranha using command: ${CMD} 35 | 36 | touch tmp/piranha.pid 37 | 38 | if [[ "$*" == *"--verbose"* ]]; then 39 | ${CMD} 40 | else 41 | if [[ "$*" == *"--run"* ]]; then 42 | echo $$ > tmp/piranha.pid 43 | ${CMD} 44 | else 45 | ${CMD} & 46 | echo $! > tmp/piranha.pid 47 | fi 48 | fi 49 | -------------------------------------------------------------------------------- /extension/omnifish-omnibeans/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-omnifish-omnibeans 13 | jar 14 | 15 | Piranha - Extension - OmniFish OmniBeans 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | ee.omnifish 26 | omnibeans 27 | compile 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /extension/omnifaces-config/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-omnifaces-config 13 | jar 14 | 15 | Piranha - Extension - OmniFaces Config 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.omnifaces 26 | omni-mp-config 27 | compile 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /dist/server/src/main/zip/bin/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | 6 | if [ -z ${JAVA_HOME} ]; then 7 | echo Using default java 8 | JAVA_BIN=java 9 | else 10 | echo Using JAVA_HOME: ${JAVA_HOME} 11 | JAVA_BIN=${JAVA_HOME}/bin/java 12 | fi 13 | 14 | if [[ "${PIRANHA_JPMS}" == "true" ]]; then 15 | INIT_OPTIONS="--module-path lib -m cloud.piranha.dist.server" 16 | else 17 | INIT_OPTIONS="-jar lib/piranha-dist-server.jar" 18 | fi 19 | 20 | 21 | if [[ "$*" == *"--suspend"* ]]; then 22 | JAVA_ARGS="${JAVA_ARGS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:9009" 23 | fi 24 | 25 | # 26 | # Set the SSL debug mode which is useful for debugging SSL connections. 27 | # 28 | # SSL_DEBUG=-Djavax.net.debug=ssl 29 | 30 | CMD="${JAVA_BIN} ${JAVA_ARGS} ${SSL_DEBUG} \ 31 | -Djava.util.logging.config.file=etc/logging.properties \ 32 | ${INIT_OPTIONS} $*" 33 | 34 | echo Starting Piranha using command: ${CMD} 35 | 36 | touch tmp/piranha.pid 37 | 38 | if [[ "$*" == *"--verbose"* ]]; then 39 | ${CMD} 40 | else 41 | if [[ "$*" == *"--run"* ]]; then 42 | echo $$ > tmp/piranha.pid 43 | ${CMD} 44 | else 45 | ${CMD} & 46 | echo $! > tmp/piranha.pid 47 | fi 48 | fi 49 | -------------------------------------------------------------------------------- /dist/isolated/src/main/zip/bin/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | 6 | if [ -z ${JAVA_HOME} ]; then 7 | echo Using default java 8 | JAVA_BIN=java 9 | else 10 | echo Using JAVA_HOME: ${JAVA_HOME} 11 | JAVA_BIN=${JAVA_HOME}/bin/java 12 | fi 13 | 14 | if [[ "${PIRANHA_JPMS}" == "true" ]]; then 15 | INIT_OPTIONS="--module-path lib -m cloud.piranha.dist.isolated" 16 | else 17 | INIT_OPTIONS="-jar lib/piranha-dist-isolated.jar" 18 | fi 19 | 20 | 21 | if [[ "$*" == *"--suspend"* ]]; then 22 | JAVA_ARGS="${JAVA_ARGS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:9009" 23 | fi 24 | 25 | # 26 | # Set the SSL debug mode which is useful for debugging SSL connections. 27 | # 28 | # SSL_DEBUG=-Djavax.net.debug=ssl 29 | 30 | CMD="${JAVA_BIN} ${JAVA_ARGS} ${SSL_DEBUG} \ 31 | -Djava.util.logging.config.file=etc/logging.properties \ 32 | ${INIT_OPTIONS} $*" 33 | 34 | echo Starting Piranha using command: ${CMD} 35 | 36 | touch tmp/piranha.pid 37 | 38 | if [[ "$*" == *"--verbose"* ]]; then 39 | ${CMD} 40 | else 41 | if [[ "$*" == *"--run"* ]]; then 42 | echo $$ > tmp/piranha.pid 43 | ${CMD} 44 | else 45 | ${CMD} & 46 | echo $! > tmp/piranha.pid 47 | fi 48 | fi 49 | -------------------------------------------------------------------------------- /dist/platform/src/main/zip/bin/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -m 3 | 4 | cd .. 5 | 6 | if [ -z ${JAVA_HOME} ]; then 7 | echo Using default java 8 | JAVA_BIN=java 9 | else 10 | echo Using JAVA_HOME: ${JAVA_HOME} 11 | JAVA_BIN=${JAVA_HOME}/bin/java 12 | fi 13 | 14 | if [[ "${PIRANHA_JPMS}" == "true" ]]; then 15 | INIT_OPTIONS="--module-path lib -m cloud.piranha.dist.platform" 16 | else 17 | INIT_OPTIONS="-jar lib/piranha-dist-platform.jar" 18 | fi 19 | 20 | 21 | if [[ "$*" == *"--suspend"* ]]; then 22 | JAVA_ARGS="${JAVA_ARGS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:9009" 23 | fi 24 | 25 | # 26 | # Set the SSL debug mode which is useful for debugging SSL connections. 27 | # 28 | # SSL_DEBUG=-Djavax.net.debug=ssl 29 | 30 | CMD="${JAVA_BIN} ${JAVA_ARGS} ${SSL_DEBUG} \ 31 | -Djava.util.logging.config.file=etc/logging.properties \ 32 | ${INIT_OPTIONS} $*" 33 | 34 | echo Starting Piranha using command: ${CMD} 35 | 36 | touch tmp/piranha.pid 37 | 38 | if [[ "$*" == *"--verbose"* ]]; then 39 | ${CMD} 40 | else 41 | if [[ "$*" == *"--run"* ]]; then 42 | echo $$ > tmp/piranha.pid 43 | ${CMD} 44 | else 45 | ${CMD} & 46 | echo $! > tmp/piranha.pid 47 | fi 48 | fi 49 | -------------------------------------------------------------------------------- /extension/omnifaces-omniservices/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-omnifaces-omniservices 13 | jar 14 | 15 | Piranha - Extension - OmniFaces OmniServices 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.omnifaces 26 | omniservices 27 | compile 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /test/tck/coreprofile/annotations/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test.tck.coreprofile 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.tck.coreprofile.annotations 14 | project 15 | pom 16 | Piranha - Test - TCK - Core Profile - Annotations TCK 17 | 18 | 19 | 20 | jakarta.annotation 21 | jakarta-annotations-tck 22 | ${annotations.tck.version} 23 | 24 | 25 | 26 | 27 | installer 28 | runner 29 | 30 | 31 | -------------------------------------------------------------------------------- /extension/omnifaces-microprofile-jwt-auth/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-omnifaces-microprofile-jwt-auth 13 | jar 14 | 15 | Piranha - Extension - OmniFaces Micro Profile JWT Auth 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.omnifaces 26 | microprofile-jwt-auth 27 | compile 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /http/jdk/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.http 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-http-jdk 13 | jar 14 | 15 | Piranha - HTTP - JDK HTTP Server Integration 16 | 17 | 18 | 19 | 20 | cloud.piranha.http 21 | piranha-http-api 22 | ${project.version} 23 | compile 24 | 25 | 26 | 27 | cloud.piranha.http 28 | piranha-http-tests 29 | ${project.version} 30 | test 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /.github/workflows/experimental.yml: -------------------------------------------------------------------------------- 1 | name: experimental 2 | on: 3 | schedule: 4 | - cron: "0 0 * * 0" 5 | workflow_dispatch: 6 | jobs: 7 | build: 8 | if: github.repository == 'piranhacloud/piranha' 9 | runs-on: ${{ matrix.os }} 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | distribution: [ 'temurin' ] 14 | java: [ '23', '24-ea', '25-ea' ] 15 | os: [ubuntu-latest, macos-latest, windows-latest] 16 | steps: 17 | - name: Checkout Sources 18 | uses: actions/checkout@v5 19 | - name: Setup Java ${{ matrix.java }} 20 | uses: actions/setup-java@v4 21 | with: 22 | distribution: ${{ matrix.distribution }} 23 | java-version: ${{ matrix.java }} 24 | - name: Build with Maven 25 | run: mvn -B -ntp -T 1 install 26 | result: 27 | if: ${{ always() }} && github.repository == 'piranhacloud/piranha' 28 | runs-on: ubuntu-latest 29 | needs: build 30 | steps: 31 | - name: Check build results 32 | run: | 33 | result="${{ needs.build.result }}" 34 | if [[ $result == "success" || $result == "skipped" ]]; then 35 | echo "All matrix jobs were successful or skipped." 36 | exit 0 37 | else 38 | echo "One or more matrix jobs failed." 39 | exit 0 40 | fi 41 | -------------------------------------------------------------------------------- /test/embedded/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | cloud.piranha.test.embedded 12 | project 13 | pom 14 | 15 | Piranha - Test - Embedded - Project 16 | 17 | 18 | classloader 19 | classloader2 20 | eclipselink 21 | exousia 22 | hazelcast 23 | helloworld 24 | soteria-basic 25 | soteria-form 26 | springboot 27 | springboot-virtualthreads 28 | web-fragment-in-jar 29 | web-fragment-in-jar-test 30 | web-fragment-in-jar-webapp 31 | weld 32 | 33 | 34 | -------------------------------------------------------------------------------- /.github/workflows/trigger.yml: -------------------------------------------------------------------------------- 1 | name: trigger 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | branch: 6 | description: 'Branch to release from' 7 | required: true 8 | default: 'current' 9 | version: 10 | description: 'Release version' 11 | required: true 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout sources 17 | uses: actions/checkout@v5 18 | with: 19 | token: ${{ secrets.GIT_PASSWORD }} 20 | - name: Release from given branch with given version 21 | run: | 22 | git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* 23 | BRANCH=${{ github.event.inputs.branch }} 24 | TAG=${GITHUB_REF} 25 | VERSION=${{ github.event.inputs.version }} 26 | echo "Releasing $VERSION from $BRANCH branch" 27 | git checkout $BRANCH 28 | git checkout -b release 29 | mvn -B versions:set versions:commit -DnewVersion=$VERSION 30 | git config --global user.email "noreply@piranha.cloud" 31 | git config --global user.name "Automated release" 32 | git commit -a -m "Releasing version $VERSION from $BRANCH branch" 33 | git tag v$VERSION -f 34 | git push origin v$VERSION -f 35 | git checkout $BRANCH 36 | git branch -D release 37 | -------------------------------------------------------------------------------- /test/webprofile/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.test 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | cloud.piranha.test.webprofile 11 | project 12 | pom 13 | Piranha - Test - Web Profile - Project 14 | 15 | 21 | 22 | cloud.piranha.dist 23 | piranha-dist-webprofile 24 | ${project.version} 25 | provided 26 | pom 27 | 28 | 29 | 30 | helloworld 31 | integration 32 | 33 | 34 | -------------------------------------------------------------------------------- /test/server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.test 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | cloud.piranha.test.server 11 | project 12 | pom 13 | Piranha - Test - Server - Project 14 | 15 | helloworld 16 | programmatic 17 | wasp 18 | wasp2 19 | 20 | 26 | 27 | 28 | cloud.piranha.dist 29 | piranha-dist-server 30 | ${project.version} 31 | pom 32 | provided 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /core/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.core 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-core-api 13 | jar 14 | 15 | Piranha - Core - API 16 | 17 | 18 | 19 | 20 | jakarta.servlet 21 | jakarta.servlet-api 22 | compile 23 | 24 | 25 | cloud.piranha.resource 26 | piranha-resource-api 27 | ${project.version} 28 | compile 29 | 30 | 31 | 32 | 33 | 34 | default 35 | file:///tmp/piranha/core/api/ 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /maven/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | cloud.piranha.maven 13 | project 14 | pom 15 | 16 | Piranha - Maven 17 | 18 | 19 | archetypes 20 | plugin 21 | 22 | 23 | 24 | 25 | 26 | cloud.piranha 27 | bom 28 | ${project.version} 29 | pom 30 | import 31 | 32 | 33 | 34 | 35 | 36 | default 37 | file:///tmp/piranha/maven/ 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /test/micro/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.test 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | cloud.piranha.test.micro 13 | project 14 | pom 15 | 16 | Piranha - Test - Micro - Project 17 | 18 | 19 | helloworld 20 | microprofile-config 21 | protected-servlet 22 | snoop 23 | 24 | 25 | 26 | 27 | cloud.piranha.dist 28 | piranha-dist-micro 29 | ${project.version} 30 | test 31 | 32 | 33 | me.alexpanov 34 | free-port-finder 35 | test 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: docs 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | version: 6 | description: 'Release version' 7 | required: true 8 | jobs: 9 | docs: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout Piranha 13 | uses: actions/checkout@v5 14 | with: 15 | ref: v${{ github.event.inputs.version }} 16 | - name: Checkout Piranha Website 17 | uses: actions/checkout@v5 18 | with: 19 | repository: piranhacloud/piranha-website 20 | token: ${{ secrets.GIT_PASSWORD }} 21 | path: piranha-website 22 | ref: 'gh-pages' 23 | - name: Setup Java 24 | uses: actions/setup-java@v4 25 | with: 26 | distribution: 'temurin' 27 | java-version: 21 28 | - name: Build with Maven 29 | run: | 30 | mvn -B -DskipTests -DskipITs -DstagingDirectory=$PWD/target/staging -ntp -P '!test' -T 1 install site site:stage 31 | rm -rf piranha-website/release || true 32 | mkdir -p piranha-website/release || true 33 | cp -R target/staging/* piranha-website/release/ 34 | cd piranha-website 35 | git config --global user.email "noreply@piranha.cloud" 36 | git config --global user.name "Automated publish" 37 | git add . 38 | git commit -a -m "Publishing ${{ github.event.inputs.version }} documentation" || true 39 | git push 40 | -------------------------------------------------------------------------------- /extension/webxml/src/test/webxml/parse4/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Test Servlet 6 | cloud.piranha.extension.webxml.tests.TestServlet 7 | 8 | mydescription 9 | myrole 10 | myrole 11 | 12 | 13 | 14 | Test Servlet 15 | /foo 16 | /bar 17 | 18 | 19 | myrole 20 | 21 | 22 | 23 | mywebresourcename 24 | mydescription 25 | /* 26 | 27 | 28 | myrole 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /micro/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.micro 14 | project 15 | pom 16 | Piranha - Micro 17 | 18 | builder 19 | core 20 | loader 21 | 22 | 23 | 24 | 25 | cloud.piranha 26 | bom 27 | ${project.version} 28 | pom 29 | import 30 | 31 | 32 | 33 | 34 | 35 | default 36 | file:///tmp/piranha/micro/ 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /extension/hazelcast/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-hazelcast 11 | jar 12 | Piranha - Extension - Hazelcast 13 | 14 | 15 | 16 | com.hazelcast 17 | hazelcast 18 | compile 19 | 20 | 21 | 22 | cloud.piranha.core 23 | piranha-core-impl 24 | ${project.version} 25 | provided 26 | 27 | 28 | 29 | org.junit.jupiter 30 | junit-jupiter-api 31 | test 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /http/undertow/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.http 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-http-undertow 11 | jar 12 | Piranha - HTTP - Undertow Integration 13 | 14 | 15 | 16 | cloud.piranha.http 17 | piranha-http-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | io.undertow 23 | undertow-core 24 | compile 25 | 26 | 27 | 28 | cloud.piranha.http 29 | piranha-http-tests 30 | ${project.version} 31 | test 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /multi/src/main/assembly/zip.xml: -------------------------------------------------------------------------------- 1 | 4 | zip 5 | piranha 6 | 7 | zip 8 | tar.gz 9 | 10 | 11 | 12 | ${project.basedir}/src/main/zip 13 | 14 | 15 | 16 | ${project.build.directory}/webapps 17 | webapps 18 | 19 | 20 | 21 | 22 | ${project.build.directory}/piranha-multi.jar 23 | lib 24 | 25 | 26 | 27 | 28 | 29 | ${project.groupId}:${project.artifactId}:jar:* 30 | 31 | lib 32 | true 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /test/coreprofile/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.coreprofile 14 | project 15 | pom 16 | Piranha - Test - Core Profile - Project 17 | 18 | 24 | 25 | cloud.piranha.dist 26 | piranha-dist-coreprofile 27 | ${project.version} 28 | test 29 | 30 | 31 | 32 | arquillian 33 | integration 34 | json 35 | no_servlet_class 36 | rest 37 | 38 | 39 | -------------------------------------------------------------------------------- /dist/server/src/main/assembly/zip.xml: -------------------------------------------------------------------------------- 1 | 4 | zip 5 | piranha 6 | 7 | zip 8 | tar.gz 9 | 10 | 11 | 12 | ${project.basedir}/src/main/zip 13 | 14 | 15 | 16 | ${project.build.directory}/webapps 17 | webapps 18 | 19 | 20 | 21 | 22 | ${project.build.directory}/piranha-dist-server.jar 23 | lib 24 | 25 | 26 | 27 | 28 | 29 | ${project.groupId}:${project.artifactId}:jar:* 30 | 31 | lib 32 | true 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /dist/isolated/src/main/assembly/zip.xml: -------------------------------------------------------------------------------- 1 | 4 | zip 5 | piranha 6 | 7 | zip 8 | tar.gz 9 | 10 | 11 | 12 | ${project.basedir}/src/main/zip 13 | 14 | 15 | 16 | ${project.build.directory}/webapps 17 | webapps 18 | 19 | 20 | 21 | 22 | ${project.build.directory}/piranha-dist-isolated.jar 23 | lib 24 | 25 | 26 | 27 | 28 | 29 | ${project.groupId}:${project.artifactId}:jar:* 30 | 31 | lib 32 | true 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /dist/platform/src/main/assembly/zip.xml: -------------------------------------------------------------------------------- 1 | 4 | zip 5 | piranha 6 | 7 | zip 8 | tar.gz 9 | 10 | 11 | 12 | ${project.basedir}/src/main/zip 13 | 14 | 15 | 16 | ${project.build.directory}/webapps 17 | webapps 18 | 19 | 20 | 21 | 22 | ${project.build.directory}/piranha-dist-platform.jar 23 | lib 24 | 25 | 26 | 27 | 28 | 29 | ${project.groupId}:${project.artifactId}:jar:* 30 | 31 | lib 32 | true 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /test/coreprofile/json/src/test/java/temperature/TemperatureIT.java: -------------------------------------------------------------------------------- 1 | package temperature; 2 | 3 | import java.net.URI; 4 | import java.net.http.HttpClient; 5 | import java.net.http.HttpRequest; 6 | import java.net.http.HttpResponse; 7 | import java.net.http.HttpResponse.BodyHandlers; 8 | import static org.junit.jupiter.api.Assertions.assertEquals; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class TemperatureIT { 12 | 13 | private String httpPort = System.getProperty("httpPort"); 14 | 15 | @Test 16 | void testCelsius() throws Exception { 17 | HttpClient client = HttpClient.newHttpClient(); 18 | HttpRequest request = HttpRequest 19 | .newBuilder(new URI("http://localhost:" + httpPort + "/temperature/celsius/18.5")) 20 | .build(); 21 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 22 | assertEquals("{\"scale\":\"CELSIUS\",\"temperature\":18.5}", response.body()); 23 | } 24 | 25 | @Test 26 | void testFahrenheit() throws Exception { 27 | HttpClient client = HttpClient.newHttpClient(); 28 | HttpRequest request = HttpRequest 29 | .newBuilder(new URI("http://localhost:" + httpPort + "/temperature/fahrenheit/68.0")) 30 | .build(); 31 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 32 | assertEquals("{\"scale\":\"FAHRENHEIT\",\"temperature\":68.0}", response.body()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/embedded/classloader/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.test.embedded 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-test-embedded-classloader 12 | war 13 | 14 | Piranha - Test - Embedded - Classloader 15 | 16 | 17 | UTF-8 18 | 19 | 20 | 21 | 22 | jakarta.platform 23 | jakarta.jakartaee-web-api 24 | provided 25 | 26 | 27 | 28 | 29 | 30 | 31 | org.apache.maven.plugins 32 | maven-war-plugin 33 | 34 | false 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /test/servlet/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 4.0.0 8 | 9 | cloud.piranha.test 10 | project 11 | 25.4.0-SNAPSHOT 12 | 13 | cloud.piranha.test.servlet 14 | project 15 | pom 16 | Piranha - Test - Servlet - Project 17 | 23 | 24 | 25 | cloud.piranha.dist 26 | piranha-dist-servlet 27 | ${project.version} 28 | pom 29 | provided 30 | 31 | 32 | 33 | crac 34 | hello 35 | helloworld 36 | integration 37 | pages 38 | websocket 39 | 40 | 41 | -------------------------------------------------------------------------------- /dist/webprofile/src/site/markdown/index.md: -------------------------------------------------------------------------------- 1 | # Piranha Web Profile 2 | 3 | Piranha Web Profile is our distribution that delivers Jakarta EE Web Profile 4 | support. If you are looking for Jakarta EE Web Profile support this distribution 5 | is the best match! 6 | 7 | The following list of components are available in the Piranha Web Profile 8 | distribution: 9 | 10 | 1. Jakarta Annotations 11 | 1. Jakarta Authentication 12 | 1. Jakarta Bean Validation 13 | 1. Jakarta Concurrency 14 | 1. Jakarta Contexts and Dependency Injection 15 | 1. Jakarta Debugging Support for Other Languages 16 | 1. Jakarta Dependency Injection 17 | 1. Jakarta Enterprise Beans Lite 18 | 1. Jakarta Expression Language 19 | 1. Jakarta Interceptors 20 | 1. Jakarta JSON Binding 21 | 1. Jakarta JSON Processing 22 | 1. Jakarta Persistence 23 | 1. Jakarta RESTful Web Services 24 | 1. Jakarta Security 25 | 1. Jakarta Server Faces 26 | 1. Jakarta Server Pages 27 | 1. Jakarta Servlet 28 | 1. Jakarta Standard Tag Library 29 | 1. Jakarta Transactions 30 | 1. Jakarta WebSocket 31 | 32 | ## Documentation 33 | 34 | 1. [Create a Faces application](create_a_faces_application.html) 35 | 1. [Create a Hello World application](create_a_hello_world_application.html) 36 | 1. [Create a Jakarta REST service](create_a_jakarta_rest_service.html) 37 | 1. [Create a Pages application](create_a_pages_application.html) 38 | 1. [Testing with JUnit5 and Playwright](testing_with_junit5_and_playwright.html) 39 | 1. [Testing with our container image](testing_with_our_container_image.html) 40 | -------------------------------------------------------------------------------- /extension/mojarra/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-mojarra 11 | jar 12 | Piranha - Extension - Mojarra 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | 23 | cloud.piranha.extension 24 | piranha-extension-scinitializer 25 | ${project.version} 26 | provided 27 | 28 | 29 | 30 | org.glassfish 31 | jakarta.faces 32 | runtime 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /extension/parsson/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-parsson 11 | jar 12 | Piranha - Extension - Parsson 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | 23 | cloud.piranha.extension 24 | piranha-extension-scinitializer 25 | ${project.version} 26 | provided 27 | 28 | 29 | 30 | org.eclipse.parsson 31 | parsson 32 | runtime 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /extension/jstl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-jstl 11 | jar 12 | Piranha - Extension - JSTL 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | 23 | cloud.piranha.extension 24 | piranha-extension-scinitializer 25 | ${project.version} 26 | provided 27 | 28 | 29 | 30 | org.glassfish.web 31 | jakarta.servlet.jsp.jstl 32 | runtime 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /extension/yasson/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-yasson 13 | jar 14 | 15 | Piranha - Extension - Yasson 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-api 21 | ${project.version} 22 | compile 23 | 24 | 25 | 26 | cloud.piranha.extension 27 | piranha-extension-scinitializer 28 | ${project.version} 29 | provided 30 | 31 | 32 | 33 | org.eclipse 34 | yasson 35 | runtime 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /http/tests/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.http 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-http-tests 13 | jar 14 | 15 | Piranha - HTTP - Tests 16 | 17 | 18 | 19 | cloud.piranha.http 20 | piranha-http-api 21 | ${project.version} 22 | compile 23 | 24 | 25 | me.alexpanov 26 | free-port-finder 27 | compile 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-api 32 | compile 33 | 34 | 35 | org.junit-pioneer 36 | junit-pioneer 37 | compile 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /feature/impl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.feature 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-feature-impl 13 | jar 14 | 15 | Piranha - Feature - Implementation 16 | 17 | 18 | 19 | cloud.piranha.feature 20 | piranha-feature-api 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.junit.jupiter 26 | junit-jupiter-api 27 | test 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-params 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-engine 37 | test 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /feature/logging/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.feature 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-feature-logging 13 | jar 14 | 15 | Piranha - Feature - Logging 16 | 17 | 18 | 19 | cloud.piranha.feature 20 | piranha-feature-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.junit.jupiter 26 | junit-jupiter-api 27 | test 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-params 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-engine 37 | test 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /feature/exitonstop/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.feature 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-feature-exitonstop 13 | jar 14 | 15 | Piranha - Feature - Exit on Stop 16 | 17 | 18 | 19 | cloud.piranha.feature 20 | piranha-feature-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.junit.jupiter 26 | junit-jupiter-api 27 | test 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-params 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-engine 37 | test 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /arquillian/managed/src/test/java/cloud/piranha/arquillian/managed/ManagedPiranhaContainerTest.java: -------------------------------------------------------------------------------- 1 | package cloud.piranha.arquillian.managed; 2 | 3 | import java.io.File; 4 | import org.jboss.arquillian.container.spi.client.container.DeploymentException; 5 | import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription; 6 | import org.jboss.shrinkwrap.api.ShrinkWrap; 7 | import org.jboss.shrinkwrap.api.spec.WebArchive; 8 | import org.junit.jupiter.api.AfterEach; 9 | import org.junit.jupiter.api.BeforeEach; 10 | import org.junit.jupiter.api.Disabled; 11 | import org.junit.jupiter.api.Test; 12 | import static org.junit.jupiter.api.Assertions.*; 13 | 14 | /** 15 | * The JUnit tests for the ManagedPiranhaContainer class. 16 | * 17 | * @author Manfred Riem (mriem@manorrock.com) 18 | */ 19 | class ManagedPiranhaContainerTest { 20 | 21 | /** 22 | * Test getContainerConfiguration method. 23 | */ 24 | @Test 25 | void testGetConfigurationClass() { 26 | ManagedPiranhaContainer container = new ManagedPiranhaContainer(); 27 | assertEquals(ManagedPiranhaContainerConfiguration.class, container.getConfigurationClass()); 28 | } 29 | 30 | /** 31 | * TEst getDefaulProtocol method. 32 | */ 33 | @Test 34 | void testGetDefaultProtocol() { 35 | ManagedPiranhaContainer container = new ManagedPiranhaContainer(); 36 | container.setup(new ManagedPiranhaContainerConfiguration()); 37 | ProtocolDescription protocolDescription = container.getDefaultProtocol(); 38 | assertEquals("Servlet 6.0", protocolDescription.getName()); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docker/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | cloud.piranha.docker 13 | project 14 | pom 15 | 16 | Piranha - Docker 17 | 18 | 19 | coreprofile 20 | 21 | 22 | 23 | 24 | 25 | org.junit.jupiter 26 | junit-jupiter-api 27 | test 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-engine 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-params 37 | test 38 | 39 | 40 | 41 | 42 | 43 | default 44 | file:///tmp/piranha/docker/ 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /extension/epicyro/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-epicyro 11 | jar 12 | Piranha - Extension - Epicyro 13 | 14 | 15 | 16 | org.glassfish.epicyro 17 | epicyro 18 | compile 19 | 20 | 21 | jakarta.servlet 22 | jakarta.servlet-api 23 | 24 | 25 | 26 | 27 | cloud.piranha.core 28 | piranha-core-impl 29 | ${project.version} 30 | compile 31 | 32 | 33 | jakarta.authentication 34 | jakarta.authentication-api 35 | provided 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /extension/hibernate-validator/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-hibernate-validator 13 | jar 14 | 15 | Piranha - Extension - Hibernate Validator 16 | 17 | 18 | 19 | UTF-8 20 | 21 | 22 | 23 | 24 | 25 | cloud.piranha.core 26 | piranha-core-api 27 | ${project.version} 28 | compile 29 | 30 | 31 | 32 | org.hibernate.validator 33 | hibernate-validator 34 | runtime 35 | 36 | 37 | org.hibernate.validator 38 | hibernate-validator-cdi 39 | runtime 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2002-2021 Manorrock.com. All Rights Reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 2. Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | 3. Neither the name of the copyright holder nor the names of its 13 | contributors may be used to endorse or promote products derived from 14 | this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | POSSIBILITY OF SUCH DAMAGE. 27 | -------------------------------------------------------------------------------- /spring/spring-boot-starter-piranha-embedded/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.spring 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-embedded-spring-boot-starter 13 | jar 14 | 15 | Piranha - Spring - Piranha Embedded Spring Boot Starter 16 | 17 | This module delivers the Spring Boot starter for Piranha Embedded. 18 | 19 | 20 | 21 | 22 | cloud.piranha 23 | piranha-embedded 24 | ${project.version} 25 | 26 | 27 | cloud.piranha.http 28 | piranha-http-impl 29 | ${project.version} 30 | 31 | 32 | cloud.piranha.http 33 | piranha-http-webapp 34 | ${project.version} 35 | 36 | 37 | org.springframework.boot 38 | spring-boot 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /extension/jaxb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-jaxb 11 | jar 12 | Piranha - Extension - JAXB 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | 23 | cloud.piranha.extension 24 | piranha-extension-angus 25 | ${project.version} 26 | provided 27 | 28 | 29 | 30 | cloud.piranha.extension 31 | piranha-extension-scinitializer 32 | ${project.version} 33 | provided 34 | 35 | 36 | 37 | org.glassfish.jaxb 38 | jaxb-runtime 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package1/Utils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package1; 29 | 30 | public class Utils { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package1/Library.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package1; 29 | 30 | public class Library { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package1/Servlet.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package1; 29 | 30 | public class Servlet { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package2/Library.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package2; 29 | 30 | public class Library { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package3/Filter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package3; 29 | 30 | public class Filter { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package3/Library.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package3; 29 | 30 | public class Library { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package1/Service.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package1; 29 | 30 | public interface Service { 31 | } 32 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package2/Listener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package2; 29 | 30 | public class Listener { 31 | } 32 | -------------------------------------------------------------------------------- /feature/http/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.feature 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-feature-http 12 | jar 13 | 14 | Piranha - Feature - HTTP 15 | 16 | 17 | 18 | cloud.piranha.feature 19 | piranha-feature-impl 20 | ${project.version} 21 | compile 22 | 23 | 24 | cloud.piranha.http 25 | piranha-http-impl 26 | ${project.version} 27 | compile 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-api 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-params 37 | test 38 | 39 | 40 | org.junit.jupiter 41 | junit-jupiter-engine 42 | test 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /feature/https/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.feature 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-feature-https 12 | jar 13 | 14 | Piranha - Feature - HTTPS 15 | 16 | 17 | 18 | cloud.piranha.feature 19 | piranha-feature-impl 20 | ${project.version} 21 | compile 22 | 23 | 24 | cloud.piranha.http 25 | piranha-http-impl 26 | ${project.version} 27 | compile 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-api 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-params 37 | test 38 | 39 | 40 | org.junit.jupiter 41 | junit-jupiter-engine 42 | test 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /test/common/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | module cloud.piranha.test.common { 30 | 31 | exports cloud.piranha.test.common; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /feature/webapp/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | cloud.piranha.feature 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | 11 | piranha-feature-webapp 12 | jar 13 | 14 | Piranha - Feature - WebApp 15 | 16 | 17 | 18 | cloud.piranha.feature 19 | piranha-feature-impl 20 | ${project.version} 21 | compile 22 | 23 | 24 | cloud.piranha.http 25 | piranha-http-webapp 26 | ${project.version} 27 | compile 28 | 29 | 30 | org.junit.jupiter 31 | junit-jupiter-api 32 | test 33 | 34 | 35 | org.junit.jupiter 36 | junit-jupiter-params 37 | test 38 | 39 | 40 | org.junit.jupiter 41 | junit-jupiter-engine 42 | test 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /test/coreprofile/arquillian/src/test/java/helloarquillian/HelloArquillianIT.java: -------------------------------------------------------------------------------- 1 | package helloarquillian; 2 | 3 | import arquillian.HelloArquillianApplication; 4 | import arquillian.HelloArquillianBean; 5 | import java.net.URI; 6 | import java.net.URL; 7 | import java.net.http.HttpClient; 8 | import java.net.http.HttpRequest; 9 | import java.net.http.HttpResponse; 10 | import java.net.http.HttpResponse.BodyHandlers; 11 | import org.jboss.arquillian.container.test.api.Deployment; 12 | import org.jboss.arquillian.container.test.api.RunAsClient; 13 | import org.jboss.arquillian.junit5.ArquillianExtension; 14 | import org.jboss.arquillian.test.api.ArquillianResource; 15 | import static org.jboss.shrinkwrap.api.ShrinkWrap.create; 16 | import org.jboss.shrinkwrap.api.spec.WebArchive; 17 | import static org.junit.jupiter.api.Assertions.assertTrue; 18 | import org.junit.jupiter.api.Test; 19 | import org.junit.jupiter.api.extension.ExtendWith; 20 | 21 | @ExtendWith(ArquillianExtension.class) 22 | public class HelloArquillianIT { 23 | 24 | @ArquillianResource 25 | private URL baseUrl; 26 | 27 | @Deployment(testable = false) 28 | public static WebArchive createDeployment() { 29 | return create(WebArchive.class) 30 | .addClass(HelloArquillianApplication.class) 31 | .addClass(HelloArquillianBean.class); 32 | } 33 | 34 | @Test 35 | @RunAsClient 36 | public void testHelloArquillian() throws Exception { 37 | HttpClient client = HttpClient.newHttpClient(); 38 | HttpRequest request = HttpRequest 39 | .newBuilder(new URI(baseUrl + "helloarquillian")) 40 | .build(); 41 | HttpResponse response = client.send(request, BodyHandlers.ofString()); 42 | assertTrue(response.body().contains("Hello Arquillian!")); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /test/jpms/src/test/java/package3/DefaultService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2025 Manorrock.com. All Rights Reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions are met: 6 | * 7 | * 1. Redistributions of source code must retain the above copyright notice, 8 | * this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 3. Neither the name of the copyright holder nor the names of its 13 | * contributors may be used to endorse or promote products derived from 14 | * this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 | * POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package package3; 29 | 30 | import package1.Service; 31 | 32 | public class DefaultService implements Service { 33 | } 34 | -------------------------------------------------------------------------------- /docker/coreprofile/src/test/java/cloud/piranha/docker/coreprofile/CoreProfileIT.java: -------------------------------------------------------------------------------- 1 | package cloud.piranha.docker.coreprofile; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.testcontainers.containers.GenericContainer; 5 | import org.testcontainers.utility.DockerImageName; 6 | 7 | import java.io.IOException; 8 | import java.net.URI; 9 | import java.net.http.HttpClient; 10 | import java.net.http.HttpRequest; 11 | import java.net.http.HttpResponse; 12 | 13 | import static org.junit.jupiter.api.Assertions.assertEquals; 14 | import static org.junit.jupiter.api.Assertions.assertTrue; 15 | 16 | public class CoreProfileIT { 17 | 18 | /** 19 | * Test to verify that the Docker container for Piranha Core Profile starts correctly, 20 | * maps port 8080, and responds with a status code 200 when accessed via HTTP. 21 | * 22 | * @throws Exception when a serious error occurs. 23 | */ 24 | @Test 25 | public void testBasicFunctionality() throws Exception { 26 | try (GenericContainer container = new GenericContainer<>( 27 | DockerImageName.parse("ghcr.io/piranhacloud/coreprofile:latest")) 28 | .withExposedPorts(8080)) { 29 | 30 | container.start(); 31 | 32 | Integer mappedPort = container.getMappedPort(8080); 33 | assertTrue(mappedPort != null && mappedPort > 0, "Port 8080 should be mapped"); 34 | 35 | HttpClient client = HttpClient.newHttpClient(); 36 | HttpRequest request = HttpRequest.newBuilder() 37 | .uri(URI.create("http://localhost:" + mappedPort)) 38 | .build(); 39 | HttpResponse response = client.send(request, HttpResponse.BodyHandlers.discarding()); 40 | assertEquals(200, response.statusCode(), "Response code should be 200"); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /extension/declared/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.extension 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-extension-declared 11 | jar 12 | Piranha - Extension - Declared 13 | 14 | 15 | 16 | cloud.piranha.core 17 | piranha-core-api 18 | ${project.version} 19 | provided 20 | 21 | 22 | 23 | cloud.piranha.core 24 | piranha-core-impl 25 | ${project.version} 26 | test 27 | 28 | 29 | org.junit.jupiter 30 | junit-jupiter-api 31 | test 32 | 33 | 34 | org.junit.jupiter 35 | junit-jupiter-params 36 | test 37 | 38 | 39 | org.junit.jupiter 40 | junit-jupiter-engine 41 | test 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /http/grizzly/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | cloud.piranha.http 7 | project 8 | 25.4.0-SNAPSHOT 9 | 10 | piranha-http-grizzly 11 | jar 12 | Piranha - HTTP - Grizzly Integration 13 | 14 | 15 | 16 | cloud.piranha.http 17 | piranha-http-api 18 | ${project.version} 19 | compile 20 | 21 | 22 | org.glassfish.grizzly 23 | grizzly-http-server 24 | compile 25 | 26 | 27 | org.glassfish.grizzly 28 | grizzly-http2 29 | compile 30 | 31 | 32 | org.glassfish.grizzly 33 | grizzly-npn-api 34 | compile 35 | 36 | 37 | 38 | cloud.piranha.http 39 | piranha-http-tests 40 | ${project.version} 41 | test 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: pr 2 | on: 3 | pull_request: 4 | branches: 5 | - '*' 6 | jobs: 7 | build: 8 | runs-on: ${{ matrix.os }} 9 | strategy: 10 | matrix: 11 | java: [ 21 ] 12 | os: [ubuntu-latest, macos-latest, windows-latest] 13 | steps: 14 | - name: Checkout Sources 15 | uses: actions/checkout@v5 16 | - name: Setup Java ${{ matrix.java }} 17 | uses: actions/setup-java@v4 18 | with: 19 | distribution: 'temurin' 20 | java-version: ${{ matrix.java }} 21 | - name: Build with Maven 22 | run: mvn -B -ntp -T 1 install 23 | - name: Build Docker images 24 | if: matrix.os == 'ubuntu-latest' 25 | run: | 26 | cd docker 27 | mvn -B -ntp install 28 | codeql: 29 | name: codeql 30 | runs-on: ubuntu-latest 31 | permissions: 32 | actions: read 33 | contents: read 34 | security-events: write 35 | steps: 36 | - name: Checkout sources 37 | uses: actions/checkout@v5 38 | - name: Initialize CodeQL 39 | uses: github/codeql-action/init@v3 40 | with: 41 | languages: 'java' 42 | - name: Setup Java 43 | uses: actions/setup-java@v4 44 | with: 45 | distribution: 'temurin' 46 | java-version: '21' 47 | - name: Build with Maven 48 | run: mvn -B -DskipTests=true -DskipITs=true -ntp install 49 | - name: Perform CodeQL Analysis 50 | uses: github/codeql-action/analyze@v3 51 | docs: 52 | runs-on: ubuntu-latest 53 | steps: 54 | - name: Checkout Piranha 55 | uses: actions/checkout@v5 56 | - name: Setup Java 57 | uses: actions/setup-java@v4 58 | with: 59 | distribution: 'temurin' 60 | java-version: 21 61 | - name: Build with Maven 62 | run: | 63 | mvn -B -DskipTests=true -DskipITs=true -ntp -T 1 install site 64 | -------------------------------------------------------------------------------- /extension/fileupload/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | 7 | cloud.piranha.extension 8 | project 9 | 25.4.0-SNAPSHOT 10 | 11 | 12 | piranha-extension-fileupload 13 | jar 14 | 15 | Piranha - Extension - File Upload 16 | 17 | 18 | 19 | cloud.piranha.core 20 | piranha-core-impl 21 | ${project.version} 22 | compile 23 | 24 | 25 | org.apache.commons 26 | commons-fileupload2-jakarta-servlet6 27 | compile 28 | 29 | 30 | 31 | org.junit.jupiter 32 | junit-jupiter-api 33 | test 34 | 35 | 36 | org.junit.platform 37 | junit-platform-launcher 38 | test 39 | 40 | 41 | 42 | 43 | default 44 | file:///tmp/piranha/extension/file-upload/ 45 | 46 | 47 | 48 | --------------------------------------------------------------------------------