Skip to content

Commit

Permalink
Fixes piranhacloud#3335 - Introduces new extension annotationscan-cla…
Browse files Browse the repository at this point in the history
…ssfile
  • Loading branch information
Thihup committed Jun 16, 2023
1 parent ee68672 commit 2976e2e
Show file tree
Hide file tree
Showing 25 changed files with 998 additions and 175 deletions.
82 changes: 82 additions & 0 deletions extension/annotationscan-classfile/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>cloud.piranha.extension</groupId>
<artifactId>project</artifactId>
<version>23.7.0-SNAPSHOT</version>
</parent>

<artifactId>piranha-extension-annotationscan-classfile</artifactId>
<packaging>jar</packaging>

<name>Piranha - Extension - Annotation Scan Classfile</name>

<dependencies>
<!-- compile -->
<dependency>
<groupId>cloud.piranha.core</groupId>
<artifactId>piranha-core-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cloud.piranha.resource</groupId>
<artifactId>piranha-resource-api</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
<!-- test -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- <argLine>@{argLine} &#45;&#45;add-opens cloud.piranha.extension.annotationscan/cloud.piranha.extension.annotationscan.internal=ALL-UNNAMED</argLine>-->
</configuration>
</plugin>
<plugin>
<groupId>io.github.wiverson</groupId>
<artifactId>jtoolprovider-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>java-tool</goal>
</goals>
<configuration>
<toolName>jar</toolName>
<writeOutputToLog>true</writeOutputToLog>
<writeErrorsToLog>true</writeErrorsToLog>
<failOnError>true</failOnError>
<args>
<arg>--update</arg>
<arg>--warn-if-resolved=incubating</arg>
<arg>--do-not-resolve-by-default</arg>
<arg>--file</arg>
<arg>${project.build.directory}/${project.build.finalName}.jar</arg>
<!-- It seems to be needed to include twice -->
<arg>${project.build.directory}/${project.build.finalName}.jar</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* Copyright (c) 2002-2023 Manorrock.com. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package cloud.piranha.extension.annotationscan.classfile;

import cloud.piranha.core.api.WebApplication;
import cloud.piranha.core.api.WebApplicationExtension;

/**
* The extension that enables annotation scanning.
*
* @author Manfred Riem ([email protected])
*/
public class ClassfileAnnotationScanExtension implements WebApplicationExtension {

/**
* Stores the property to enable this experimental extension
*/
public static final String EXPERIMENTAL_PROPERTY = "cloud.piranha.extension.annotationscan.classfile.experimental";

/**
* Configure the web application.
*
* @param webApplication the web application.
*/
@Override
public void configure(WebApplication webApplication) {
webApplication.addInitializer(new ClassfileAnnotationScanInitializer());
}
}
Loading

0 comments on commit 2976e2e

Please sign in to comment.