Piranha - a modern cloud runtime

Overview

#piranhacloud

Piranha Project

build status Code Smells Coverage Lines of Code Maintainability Rating Reliability Rating Security Rating Technical Debt Vulnerabilities

The Piranha Project delivers you with Cloud ready containers and useful add-on / integration modules.

Getting Started

To get started with Piranha please visit our Getting Started guide.

How do I contribute?

See Contributing

Our code of Conduct

See Code of Conduct

Important notice

Note if you file issues or answer questions on the issue tracker and/or issue pull requests you agree that those contributions will be owned by Manorrock.com and that Manorrock.com can use those contributions in any manner Manorrock.com so desires.

Comments
  • Piranha-micro jar returns no main manifest attribute

    Piranha-micro jar returns no main manifest attribute

    Given a project wth this pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>sh.platform.template</groupId>
        <artifactId>piranha</artifactId>
        <packaging>war</packaging>
        <version>1.0.0-SNAPSHOT</version>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <platform.sh.version>2.2.3</platform.sh.version>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>4.0.3</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>sh.platform</groupId>
                <artifactId>config</artifactId>
                <version>${platform.sh.version}</version>
            </dependency>
            <dependency>
                <groupId>cloud.piranha</groupId>
                <artifactId>piranha-micro</artifactId>
                <version>20.4.0</version>
            </dependency>
        </dependencies>
        <build>
            <finalName>piranha</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.3</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>cloud.piranha</groupId>
                                        <artifactId>piranha-micro</artifactId>
                                        <version>20.4.0</version>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </project>
    

    When I execute:

    mvn clean package
    java -jar target/dependency/piranha-micro-20.4.0.jar target/piranha.war 
    

    It returns: no main manifest attribute, in target/dependency/piranha-micro-20.4.0.jar

    question 
    opened by otaviojava 22
  • AJAX functionality not working

    AJAX functionality not working

    I have been playing around with MyFaces and Mojarra in conjunction with Piranha Micro (and embedded). Most JSF functionality seems to work using the provided artifacts - with the exception of AJAX calls. I have tried vanilla <f:ajax> and PrimeFaces update attributes with no success. The result is the same with both MyFaces and Mojarra.

    I've kept it simple and I'm using the DefaultHttpServer implementation.

    Am I I missing something ? Is it supposed to work ? If so - tips are appreciated. As it is, I can see the request is actually sent - but beyond that it doesn't seem to be able to associate or get any response back.

    / Adam

    bug 
    opened by adam-waldenberg 18
  • Piranha Micro is failing to startup

    Piranha Micro is failing to startup

    Need to check why the Jakarta EE 8 Samples didn't catch this.

    $ java -jar piranha-micro-21.1.0-SNAPSHOT.jar
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    Exception in thread "main" java.lang.IllegalStateException: 
            at cloud.piranha.micro.MicroOuterDeployer.deploy(MicroOuterDeployer.java:194)
            at cloud.piranha.micro.MicroPiranha.run(MicroPiranha.java:141)
            at cloud.piranha.micro.MicroPiranha.main(MicroPiranha.java:79)
    Caused by: java.lang.reflect.InvocationTargetException
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:564)
            at cloud.piranha.micro.MicroOuterDeployer.deploy(MicroOuterDeployer.java:187)
            ... 2 more
    Caused by: java.lang.NoClassDefFoundError: cloud/piranha/naming/thread/ThreadInitialContextFactory
            at cloud.piranha.micro.core.MicroInnerDeployer.start(MicroInnerDeployer.java:171)
            ... 7 more
    Caused by: java.lang.ClassNotFoundException: Unable to load class: cloud.piranha.naming.thread.ThreadInitialContextFactory
            at cloud.piranha.resource.DefaultResourceManagerClassLoader.loadClass(DefaultResourceManagerClassLoader.java:130)
            at cloud.piranha.resource.shrinkwrap.IsolatingResourceManagerClassLoader.loadClass(IsolatingResourceManagerClassLoader.java:87)
            at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
            ... 8 more
    
    opened by Thihup 17
  • Running Jenkins

    Running Jenkins

    Hello!

    I will try to run Jenkins 2.236 in both Piranha Micro and Server and report here the issues I'll found. I think it's a good real example that I can try.

    I'll start with Piranha Micro 20.6.0-SNAPSHOT

    Just running I get the following exception:

    Exception in thread "main" java.lang.RuntimeException: Unable to start servicing
    	at cloud.piranha.webapp.impl.DefaultWebApplication.verifyState(DefaultWebApplication.java:1946)
    	at cloud.piranha.webapp.impl.DefaultWebApplication.start(DefaultWebApplication.java:1841)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer.lambda$start$1(DefaultWebApplicationServer.java:306)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer$$Lambda$174/0000000000000000.accept(Unknown Source)
    	at java.base/java.util.HashMap$Values.forEach(HashMap.java:1068)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer.start(DefaultWebApplicationServer.java:302)
    	at cloud.piranha.micro.MicroPiranha.run(MicroPiranha.java:215)
    	at cloud.piranha.micro.MicroPiranha.main(MicroPiranha.java:204)
    
    

    Enable logging, I get the following:

    ADVERTÊNCIA: Initializer org.jboss.weld.environment.servlet.EnhancedListener failing onStartup
    java.lang.RuntimeException: javax.naming.NamingException: Cannot call any method on a closed context
    	at cloud.piranha.cdi.weld.WeldContainer.initialize(WeldContainer.java:74)
    	at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:214)
    	at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:62)
    	at cloud.piranha.webapp.impl.DefaultWebApplication.initializeInitializers(DefaultWebApplication.java:1314)
    	at cloud.piranha.webapp.impl.DefaultWebApplication.initialize(DefaultWebApplication.java:1265)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer.lambda$initialize$0(DefaultWebApplicationServer.java:203)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer$$Lambda$13/0000000000000000.accept(Unknown Source)
    	at java.base/java.util.HashMap$Values.forEach(HashMap.java:1068)
    	at cloud.piranha.appserver.impl.DefaultWebApplicationServer.initialize(DefaultWebApplicationServer.java:199)
    	at cloud.piranha.micro.MicroPiranha.run(MicroPiranha.java:214)
    	at cloud.piranha.micro.MicroPiranha.main(MicroPiranha.java:204)
    Caused by: javax.naming.NamingException: Cannot call any method on a closed context
    	at cloud.piranha.jndi.memory.DefaultInitialContext.checkClosed(DefaultInitialContext.java:139)
    	at cloud.piranha.jndi.memory.DefaultInitialContext.rebind(DefaultInitialContext.java:463)
    	at java.naming/javax.naming.InitialContext.rebind(InitialContext.java:425)
    	at cloud.piranha.cdi.weld.WeldContainer.initialize(WeldContainer.java:72)
    	... 10 more
    
    

    The full log is attached. boot.log

    opened by Thihup 17
  • Accessing via HTTPS protocol and HTTP port produces `java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds`

    Accessing via HTTPS protocol and HTTP port produces `java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds`

    To Reproduce

    1. Download Piranha Micro
    2. $ java -jar path/to/piranha.jar
      • This issue occurs to me whether I include --war-file something.war or not.
    3. Open a web browser and head to https://localhost:8080

    :x: Result

    The console prints:

    Exception in thread "DefaultHttpServer-ProcessingThread-17" java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds for length 1
            at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
            at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
            at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
            at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
            at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
            at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112)
            at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349)
            at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4589)
            at java.base/java.lang.String.substring(String.java:2703)
            at cloud.piranha.http.impl.DefaultHttpServerRequest.parseHeader(DefaultHttpServerRequest.java:262)
            at cloud.piranha.http.impl.DefaultHttpServerRequest.parse(DefaultHttpServerRequest.java:241)
            at cloud.piranha.http.impl.DefaultHttpServerRequest.<init>(DefaultHttpServerRequest.java:95)
            at cloud.piranha.http.impl.DefaultHttpServerProcessingThread.run(DefaultHttpServerProcessingThread.java:85)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
            at java.base/java.lang.Thread.run(Thread.java:833)
    

    My Environment

    • Piranha Micro 22.6.0 or 21.11.0
    • Google Chrome
    • JRE from OpenJDK 18.0.1.1
    • Windows
    bug 
    opened by ParadoxV5 14
  • Build fails when building in parallel

    Build fails when building in parallel

    Building Piranha with mvn clean install -T8 results in errors. mvn clean install without -T8 works, but takes like 10 minutes in my system.

    Can you fix the errors during the parallel build? Thanks!

    opened by folker-kuhn 13
  • Piranha fails to pass all OmniFaces tests - needs fixing

    Piranha fails to pass all OmniFaces tests - needs fixing

    Piranha currently does not pass all the OmniFaces tests.

    The results are as of now:

    Failures: 
      FacesConverterIT.test:68 ResourceDependency is injected in facesConverterITManagedConverter expected:<[facesConverterITManagedConverterResourceDependency]> but was:<[]>
      InputFileIT.uploadSingleAccept:126 expected:<[uploadSingle: 6, file-16088362504427706317.gif]> but was:<[label: file-16088362504427706317.gif is not image/*]>
      FacesViewsIT.testNonExistingPage:129->verify404:156 expected:<404> but was:<null>
      MultiViewsIT.testNonExistingPage:118->verify200:164 expected:<...ewsITNonExistingPage[]> but was:<...ewsITNonExistingPage[/MultiViewsIT]>
      MultiViewsIT.testWelcomeFile:67->verify200:164 expected:</MultiViewsIT/foo/42[]> but was:</MultiViewsIT/foo/42[/MultiViewsIT]>
      CDNResourceHandlerIT.cdnResources:44 expected:<http[s://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css]> but was:<http[://localhost:8080/CDNResourceHandlerIT/RES_NOT_FOUND]>
    
    Errors: 
      FullAjaxExceptionHandlerIT.throwDuringRenderResponse:74 » NoSuchElement Unable...
      FullAjaxExceptionHandlerIT.throwNonAjaxDuringInvokeApplication:79 » IllegalState
      FullAjaxExceptionHandlerIT.throwNonAjaxDuringRenderResponse:100 » NoSuchElement
      FullAjaxExceptionHandlerIT.throwNonAjaxDuringUpdateModelValues:85 » IllegalState
      SocketIT.org.omnifaces.test.push.socket.SocketIT » IllegalState 
      CombinedResourceHandlerIT.ajax:99->verifyElements:128 » NoSuchElement Unable t...
      CombinedResourceHandlerIT.mixed:108->verifyElements:128 » NoSuchElement Unable...
      CombinedResourceHandlerIT.nonAjax:90->verifyElements:128 » NoSuchElement Unabl...
    
    Tests run: 93, Failures: 6, Errors: 8, Skipped: 0
    

    OmniFaces tests can be executed from the root of the Piranha project using:

    mvn -amd -B -P external -pl external/omnifaces verify
    

    Debugging can be done by e.g. cd'ing into the external/omnifaces/target/omnifaces-4.x folder and executing:

    mvn clean verify -Dmaven.javadoc.skip=true -Dit.test=InputFileIT -P piranha -fae -Dmaven.failsafe.debug
    

    If needed, timeouts can be disabled in OmniFacesIT#init by adding:

    browser.manage().timeouts().implicitlyWait(10000, SECONDS);
    browser.manage().timeouts().pageLoadTimeout(-1, SECONDS);
    	    
    System.setProperty(
        "sun.net.client.defaultConnectTimeout", 
        String.valueOf(1000000));// (Unit: ms)
    System.setProperty(
        "sun.net.client.defaultReadTimeout",
        String.valueOf(10000000)); // (Unit: ms)
    
    help wanted stale 
    opened by arjantijms 13
  • Jakarta namespace change

    Jakarta namespace change

    We have some options to do with respect to the package change (from javax to Jakarta).

    The results could be

    1. Keep the code as javax and transform the result, having two variants (like TomEE)
    2. Keep the javax code in other branch and the baseline be the jakarta (like Tomcat)
    3. Have only a Javax variant with dynamic transformation at runtime from Jakarta to Javax (like Payara)
    4. Have only a Jakarta variant with dynamic transformation at runtime from Javax to Jakarta (I don't know any implementations doing that yet).

    Depending on the choice we can pass both Servlet 4 and Servlet 5 with the same source code.

    wontfix 
    opened by Thihup 13
  • Fixes issue #1305 - Run applications in a JPMS way

    Fixes issue #1305 - Run applications in a JPMS way

    An overview:

    • The use of the JPMS layers can be disabled with "cloud.piranha.jpms.layers.disable"
    • It is added as a "layer" on top of the existent classloader, so the classloading behavior shouldn't change
    • An application with classes in the WEB-INF/classes with have the module name "classes" (Piranha Server) or application.war.classes (Piranha Micro)
    • It has to work with split packages due to the Servlet TCK, so if it happens, the invalid modules goes to the unnamed module
    • To be able to derive the module name was needed to add a Resource::getName method
    • I couldn't figure out the best way to name the new module (cloud.piranha.jpms?)
    • It needs support for multi-release jars (other places needs it too)
    • Add support for user control the layers (something like -Dpiranha.jmps.add.opens="foo/bar=baz")
    • Both Exousia and Weld needs an additional change in the layer to be able to work. In JDK 16 it will require to add the flag in the comment (MicroOuterDeployer.java)
    • For now, it is allowing the "UUID" from an application running from the Arquillian to be mapped to a module. The JDK implementation doesn't allow UUIDs as modules

    Fixes #1305

    opened by Thihup 11
  • Parallel builds

    Parallel builds

    Required

    Associated issue: #2325

    Copyright acknowledgement

    I acknowledge that the code will be owned by Manorrock.com and also the code in my future pull requests will be owned by Manorrock.com.

    Description

    Several improvements to allow parallel builds with mvn clean install -T 10 in the root project.

    Most of the issues in the parallel builds are caused by:

    • Builds of individual modules are slower because multiple builds are happening at the same time, eating a lot more CPU. Therefore standard timeouts are often not enough. Especially, Piranha Micro runtime takes longer to start. It's better to have some other waiting mechanism that doesn't rely on time. I implemented a mechanism that waits until Piranha port is occupied but some short wait time (1 second) is still necessary until Piranha is ready to serve requests.
    • When running build in parallel, tests in the test directory are sometimes started in parallel to modules that build its dependencies. As a result, while a test is running, another build might be in the middle of building/deloying its artifact, and the tests tries to use a JAR/WAR in an inconsistent state. This often results in classes or resources not found on the classpath. Maven does a good job in resolving dependencies among parallel builds but sometimes it's necessary to add a dependency on the build module so that it's run before the test module that needs it.

    I also randomized ports added a mechanism to find an available port so that multiple Piranha runtimes executed from parallel tests won't clash. This often wasn't an issue but it's a good practice anyway.

    From now on, if we keep the following rules, builds will hopefully stay thread-safe:

    • Always use the PiranhaStartup class in the tests/common module to wait for a Piranha runtime until it starts, don't wait for an explicit time period
    • Always set the port with the FreePortFinder class in the tests/common module to avoid port clashes. The Arquillian connector already automatically searches for a free port by default so no need to do this for Arquillian-based tests.
    • If tests fail on a class or resource not found on the classpath, investigate which Piranha runtime is used in the test and add it as a test dependency. Then run the failing module isolated and see if it passes the tests.
    • If the added dependency causes the test to fail (it's not expected to be on the classpath), remove it from the test classpath with the classpathDependencyExcludes configuration option in the surefire or failsafe plugin
    opened by OndroMih 10
  • #1500 - Simplify JavaDocs

    #1500 - Simplify JavaDocs

    Hello people,

    Here goes my second pull request for this repository.

    I know that this is a massive pull request as it covers a lot of files but I've done my due diligence with regards to the change that was asked. Hence, I have only touched those files where this was really required.

    It took me four days to sift through the entire codebase. Please let me know if I have made a mistake so I can fix it.

    Thanks, Jafer

    opened by jaferkhan 10
  • Add a wrapper for XADataSource

    Add a wrapper for XADataSource

    We have a wrapper for a datasource in the code, but not for an XADataSource. These two are not directly compatible, so a specific wrapper for XADataSource is warranted.

    enhancement 
    opened by arjantijms 0
  • Replace Thread.sleep with Awaitility library in tests

    Replace Thread.sleep with Awaitility library in tests

    Currently, Sonar shows warnings about using Thread.sleep in the tests. They suggest using the Awaitility library instead. @mnriem What do you think? Should we try to replace it in the tests?

    help wanted 
    opened by Thihup 3
  • Add testing with Java 19 and the virtual thread module to build workflow

    Add testing with Java 19 and the virtual thread module to build workflow

    Update build workflow to

    1. Build with Java 19, targeting Java 17 with the exception of Virtual Threads module which requires Java 19
    2. Test with Java 17
    3. Test with Java 19 (enabling virtual threads)
    help wanted 
    opened by mnriem 1
Releases(v22.11.0)
  • v22.11.0(Nov 13, 2022)

    Piranha 22.11.0

    The 'Pick your distribution' edition

    Piranha Cloud is a modern cloud runtime which scales from serverless all the way to a traditional server version.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Initial Jakarta Enterprise Beans Lite support
    • Jakarta EE Default datasource added
    • Refactoring to support different HTTP engines better

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @Thihup
    • @mnriem

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.11.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A

    Downloads

    1. Piranha Core Profile
    2. Piranha Micro Profile
    3. Piranha Servlet
    4. Piranha Web Profile
    5. Piranha Server
    6. Piranha Isolated
    7. Piranha Platform
    Source code(tar.gz)
    Source code(zip)
  • v22.10.0(Oct 13, 2022)

    Piranha 22.10.0

    The 'Stabilization is ongoing' edition

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Removed deprecated old extensions

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @mnriem
    • @arjantijms

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.10.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Downloads

    1. Piranha Core Profile
    2. Piranha Server
    Source code(tar.gz)
    Source code(zip)
  • v22.9.0(Sep 13, 2022)

    Piranha 22.9.0

    The 'Core Profile just landed' edition

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Jakarta EE 10 Core Profile
    • Initial Jakarta Transactions support
    • Initial Jakarta Persistence support

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @mnriem
    • @arjantijms

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.9.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Downloads

    1. Piranha Core Profile
    Source code(tar.gz)
    Source code(zip)
  • v22.8.0(Aug 13, 2022)

    Piranha 22.8.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @mnriem
    • @Thihup
    • @arjantijms

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.8.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.8.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.7.0(Jul 13, 2022)

    Piranha 22.7.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @salmansharifov
    • @mnriem
    • @Thihup

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.7.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.7.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.6.0(Jun 13, 2022)

    Piranha 22.6.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @OndroMih
    • @mnriem
    • @Thihup
    • @arjantijms

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.6.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.6.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.5.0(May 13, 2022)

    Piranha 22.5.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @mnriem
    • @Thihup

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 100% of the MicroProfile JWT TCK
    3. Passing 98.2% of the Servlet TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.5.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.5.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.4.0(Apr 13, 2022)

    Piranha 22.4.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 100% of the MicroProfile JWT TCK
    3. Passing 98.2% of the Servlet TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.4.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.4.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.3.0(Mar 13, 2022)

    Piranha 22.3.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Lots of cleanup on the project
    • Marker files to indicate start/stop status of server variants
    • List deployed applications of server variants
    • Debug module that can be referenced by an IDE to get all dependencies and source in one go

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 100% of the MicroProfile JWT TCK
    3. Passing 98.2% of the Servlet TCK
    4. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.3.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.3.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.2.0(Feb 13, 2022)

    Piranha 22.2.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Added MicroProfile JWT support
    • Passing MicroProfile JWT TCK
    • Authorization code improvements
    • Piranha Micro A and M versions

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @arjantijms
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 100% of the MicroProfile JWT TCK
    3. Passing 98.2% of the Servlet TCK
    4. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.2.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.2.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro A Download Piranha Micro M

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v22.1.0(Jan 13, 2022)

    Piranha 22.1.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    Notable changes

    • Fixed various Servlet TCK issues
    • Added initial support for data-source in web.xml
    • Building and testing on JDK 18ea

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @arjantijms
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 98.2% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>22.1.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>22.1.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.12.0(Dec 13, 2021)

    Piranha 21.12.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    Notable changes

    • Added piranha-micro M Maven plugin
    • Added piranha-server Maven plugin

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 97% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.12.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.12.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.11.0(Nov 13, 2021)

    Piranha 21.11.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    Notable changes

    • Fixed many Servlet TCK issues
    • Integrated new version of Eleos (Jakarta Authentication)
    • Introduced PiranhaFeature API
    • Added ServerPiranhaBuilder
    • Updated components

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @folker-kuhn
    • @Thihup
    • @arjantijms
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 97% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.11.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.11.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.10.0(Oct 13, 2021)

    Piranha 21.10.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    First supported version

    This release will be the first release that will have a support branch. This is because Java 17 has been released and is an LTS version. Going forward we are targeting the release of Java LTS versions and/or the release of Jakarta EE versions for our own supported versions. The current branch will still move the runtime version of Java to the latest and greatest version of Java, however the syntax is kept to the latest released Java LTS version.

    Notable changes

    • Fixed some TCK issues
    • Baseline of Java 17
    • Refactored JNDI support

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @folker-kuhn
    • @Thihup
    • @arjantijms
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 95% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.10.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.10.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.9.0(Sep 13, 2021)

    Piranha 21.9.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    Notable changes

    • Fixed some TCK issues
    • Moved Piranha Micro to new groupId / artifactId

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 86% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.9.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.9.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.8.0(Aug 13, 2021)

    Piranha 21.8.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation. See GitHub for a detailed list of the closed issues

    Notable changes

    • Fixed numerous SonarCloud issues

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 94% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.8.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.8.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.7.0(Jul 13, 2021)

    Piranha 21.7.0

    Piranha Cloud is a cloud runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Fixed numerous SonarCloud issues

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @mnriem

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 94% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.7.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.7.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.6.0(Jun 13, 2021)

    Piranha 21.6.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Moved all extensions into the extension directory
    • Moved all documentation into Javadoc

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Jeyabal-B
    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 94% of the Servlet TCK
    3. Passing 75% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.6.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.6.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.5.0(May 13, 2021)

    Piranha 21.5.0

    Piranha Cloud is a runtime for Jakarta EE, MicroProfile and other libraries. It scales from a nano version useful for serverless/functions, to a server version. NOTE: Piranha is a work in progress project.

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Started with implementing Servlet Mapping API
    • Running Jakarta EE TCK Samples as part of the build
    • A few small Servlet TCK compliance fixes

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 94% of the Servlet TCK (inching closer to the 100%)
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.5.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.5.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Piranha

    Source code(tar.gz)
    Source code(zip)
  • v21.4.0(Apr 13, 2021)

    Piranha 21.4.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Updated minimum Java version to Java 16
    • Testing on JDK 17ea
    • Supporting mix of EE libs in server and war
    • War file as Micro context root

    Full list of changes

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @jaferkhan
    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 92% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.4.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.4.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v21.3.0(Mar 13, 2021)

    Piranha 21.3.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Removed database module (see https://github.com/manorrock/guppy for a replacement)
    • Renamed resource module to resource-impl (incompatible change)
    • @Thihup has become a committer on the project

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 92% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.3.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.3.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
    pi-linux-amd64.tar.gz(20.80 MB)
    pi-macos-amd64.tar.gz(17.40 MB)
    pi-windows-amd64.zip(17.71 MB)
  • v21.2.0(Feb 13, 2021)

    Piranha 21.2.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Moved Apache FileUpload extension into the extension directory (incompatible change)

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 92% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.2.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.2.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
    pi-linux-amd64.tar.gz(20.80 MB)
    pi-macos-amd64.tar.gz(17.40 MB)
    pi-windows-amd64.zip(17.71 MB)
  • v21.1.0(Jan 13, 2021)

    Piranha 21.1.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Moved from the javax namespace to the jakarta namespace (incompatible change)
    • Moved from Jasper to WaSP (incompatible change)
    • Removed Single-thread HTTP engine (use the JDK HTTP engine as a replacement)
    • Added Piranha HTTP - Embedded connector module
    • Added modular web applications support

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock
    • @arjantijms

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 92% of the Servlet TCK
    3. Passing 74% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>21.1.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>21.1.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
    pi-linux-amd64.tar.gz(20.80 MB)
    pi-macos-amd64.tar.gz(17.37 MB)
    pi-windows-amd64.zip(17.71 MB)
  • v20.12.0(Dec 13, 2020)

    Piranha 20.12.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • First packaged release of Piranha CLI
    • Support for running Piranha Nano on Azure Functions

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 90% of the Servlet TCK
    3. Passing 64% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.12.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.12.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
    pi-linux-amd64.tar.gz(20.43 MB)
    pi-macos-amd64.tar.gz(17.17 MB)
    pi-windows-amd64.zip(18.36 MB)
  • v20.11.0(Nov 13, 2020)

    Piranha 20.11.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Start Piranha Server using JPMS by default

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @Thihup
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 90% of the Servlet TCK
    3. Passing 65% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.11.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.11.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v20.10.0(Oct 13, 2020)

    Piranha 20.10.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Updated minimum Java version to Java 15
    • Server variant where each deployed application runs in its own embedded Piranha Micro.

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @Thihup
    • @webfolderio
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 88% of the Servlet TCK
    3. Passing 61% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.10.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.10.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v20.9.0(Sep 13, 2020)

    Piranha 20.9.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Updated minimum Java version to Java 14
    • Added JPMS support (aka Java Modules)

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @Thihup
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 76% of the Servlet TCK
    3. Passing 61% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.9.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.9.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v20.8.0(Aug 13, 2020)

    Piranha 20.8.0

    For more information please visit our website at https://piranha.cloud, or browse the JavaDoc documentation.

    Notable changes

    • Updated minimum Java version to Java 13
    • Added cloud ready JDBC drivers

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @Thihup
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 67% of the Servlet TCK
    3. Passing 39% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.8.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.8.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • v20.7.0(Jul 13, 2020)

    Piranha 20.7.0

    For more information please visit our website at https://piranha.cloud

    Notable changes

    • Updated minimum Java version to Java 12

    Contributions

    The following GitHub users contributed code/documentation for this release

    • @arjantijms
    • @Thihup
    • @manorrock

    Additional information

    1. Passing 100% of the Expression Language TCK
    2. Passing 100% of the MicroProfile JWT TCK
    3. Passing 66% of the Servlet TCK
    4. Passing 39% of the Pages TCK

    Piranha Nano Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-nano</artifactId>
        <version>20.7.0</version>
    <dependency>
    

    Piranha Embedded Maven dependency

    <dependency>
        <groupId>cloud.piranha</groupId>
        <artifactId>piranha-embedded</artifactId>
        <version>20.7.0</version>
    <dependency>
    

    Piranha Micro

    Download Piranha Micro

    Piranha Server

    Download Piranha Server

    Source code(tar.gz)
    Source code(zip)
  • p20.6.1(Jun 22, 2020)

Owner
Piranha Cloud
Piranha - a cloud container
Piranha Cloud
Cloud native multi-runtime microservice framework

Femas: Cloud native multi-runtime microservice framework The repository address has been transferred to PolarisMesh English | 简体中文 Introduction abilit

Tencent 17 Sep 5, 2022
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

mrbird 24.8k Jan 6, 2023
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖大部分应用场景。

springcloud-learning 简介 一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖

macro 5.6k Dec 30, 2022
Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker.

spring-microservice Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker. Arc

null 4 Sep 13, 2022
A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency

A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency.

Project-Hephaestus 2 Feb 8, 2022
A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway, resillience4j, Kafka, Redis and MySQL.

High-availability-shopping-system A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway,

LeiH 1 Oct 26, 2022
JHook - A tool that can dynamically modify Java classes at runtime.

JHook A tool that can dynamically modify Java classes at runtime. Demo Tested on Java 1.8 - Java 17, just support JDK package com.binklac.jhook.test;

VeroFess 11 Dec 23, 2022
The ByteSkript development kit, including resources for third-party libraries that are not contained within the standard runtime.

ByteSkript Development Kit Todo. The development kit is a set of advanced resources available for library creators. These are not available within the

null 1 Jan 8, 2022
Runtime code generation for the Java virtual machine.

Byte Buddy runtime code generation for the Java virtual machine Byte Buddy is a code generation and manipulation library for creating and modifying Ja

Rafael Winterhalter 5.3k Dec 27, 2022
Allows acquiring of vanilla/mod assets at runtime instead of including them in builds potentially violating licenses

AssetMover Allows acquiring of vanilla/mod assets at runtime instead of including them in builds potentially violating licenses. Features: Downloading

Cleanroom 5 Nov 26, 2022
ijrd - internal java runtime debugger (loads through java agents LOL)

ijrd ijrd - internal java runtime debugger (loads through java agents LOL) this actually requires brain to build and then setup little guide to setup

null 6 Jan 28, 2022
A Java library for performing runtime interception of methods

Interceptify This library is designed to provide a convenient and simple means of performing runtime interception of Java methods/constructors. Usage

Oliver 4 Aug 17, 2022
The Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity

Quarkus - Dapr Introduction What is Quarkus? Traditional Java stacks were engineered for monolithic applications with long startup times and large mem

Quarkiverse Hub 18 Jan 5, 2023
Sui - Modern super user interface implementation on Android.

Sui Modern super user interface (SUI) implementation on Android. The name, Sui, also comes from a character. Introduction Sui provides Java APIs, Shiz

Rikka apps 1k Jan 5, 2023
MockNeat - the modern faker lib.

Mockneat is an arbitrary data-generator open-source library written in Java. It provides a simple but powerful (fluent) API that enables developers to

Andrei Ciobanu 506 Dec 26, 2022
The goal of the project is to create a web application using Java EE and database (PostgreSQL) without connecting a modern technology stack like spring boot and hibernate

About The Project SignIn page SignUp page Profile page The goal of the project is to create a web application using Java EE and database (PostgreSQL)

Islam Khabibullin 2 Mar 23, 2022
InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer and administrator friendly API.

Interface Maker InterfaceMaker is a modern plugin to handle and customize join items, hotbars and menus with a developer friendly API. Features Simple

2LStudios - Minecraft 10 Nov 27, 2022
A reimagination of qCraft for modern Minecraft.

qCraft Reimagined A reimagination of qCraft for modern Minecraft. About qCraft is a mod that introduced many concepts of Quantum Physics into Minecraf

Skye Prince 13 Dec 21, 2022