diff options
author | Andreas Rudolph <andy@openindex.de> | 2019-03-19 19:19:53 +0100 |
---|---|---|
committer | Decebal Suiu <decebal.suiu@gmail.com> | 2019-03-19 20:19:53 +0200 |
commit | e025d6704c59ef94e810860f9974f9c424958165 (patch) | |
tree | a6ac387408071484c58f440aad4d97f39874d10b | |
parent | 4ad1f4fe2a45ffc059b1bf1ff17cfb0e6d1daec3 (diff) | |
download | pf4j-e025d6704c59ef94e810860f9974f9c424958165.tar.gz pf4j-e025d6704c59ef94e810860f9974f9c424958165.zip |
Provide a module descriptor for Java 9+ (#300)
-rw-r--r-- | pf4j/pom.xml | 49 | ||||
-rw-r--r-- | pf4j/src/main/java/module-info.java | 47 | ||||
-rw-r--r-- | pom.xml | 3 |
3 files changed, 82 insertions, 17 deletions
diff --git a/pf4j/pom.xml b/pf4j/pom.xml index 061412d..8995e5a 100644 --- a/pf4j/pom.xml +++ b/pf4j/pom.xml @@ -22,17 +22,35 @@ <configuration> <compilerArgument>-proc:none</compilerArgument> </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <configuration> - <archive> - <manifestEntries> - <Automatic-Module-Name>org.pf4j</Automatic-Module-Name> - </manifestEntries> - </archive> - </configuration> + <executions> + <!-- compile everything for Java 8 except the module-info.java --> + <execution> + <id>default-compile</id> + <goals> + <goal>compile</goal> + </goals> + <configuration> + <excludes> + <exclude>module-info.java</exclude> + </excludes> + </configuration> + </execution> + + <!-- compile module-info.java for Java 9+ --> + <execution> + <id>java9-compile</id> + <goals> + <goal>compile</goal> + </goals> + <configuration> + <release>9</release> + <multiReleaseOutput>true</multiReleaseOutput> + <includes> + <include>module-info.java</include> + </includes> + </configuration> + </execution> + </executions> </plugin> </plugins> </build> @@ -69,11 +87,12 @@ </dependency> <dependency> - <!-- An empty artifact, required while JUnit 4 is on the classpath to override its - dependency on hamcrest. + <!-- + An empty artifact, required while JUnit 4 is on the classpath to override its + dependency on hamcrest. - See http://hamcrest.org/JavaHamcrest/distributables#upgrading-from-hamcrest-1x - --> + See http://hamcrest.org/JavaHamcrest/distributables#upgrading-from-hamcrest-1x + --> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>${hamcrest.version}</version> diff --git a/pf4j/src/main/java/module-info.java b/pf4j/src/main/java/module-info.java new file mode 100644 index 0000000..754b9b8 --- /dev/null +++ b/pf4j/src/main/java/module-info.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2012-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Module descriptor for PF4J. + * + * @author Decebal Suiu + * @author Andreas Rudolph + */ +module org.pf4j { + requires java.base; + + // provides javax.annotation + requires java.compiler; + + // provided by the ASM library + requires org.objectweb.asm; + + // The SLF4J library currently does not provide a module. + // Version 1.8 provides a module called "org.slf4j". But this version is + // currently in beta stage. Therefore I'm not sure, if we already like to + // use it. + requires slf4j.api; + + // The java-semver library currently does not provide a module. + // Maybe we should send them a pull request, that at least they provide an + // automatic module name in their MANIFEST file. + requires java.semver; + + // Maybe we should reconsider the package hierarchy, that only classes are + // exported, which are required by 3rd party developers. + exports org.pf4j; + exports org.pf4j.processor; +} @@ -43,8 +43,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.target>1.8</maven.compiler.target> - <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.release>8</maven.compiler.release> <slf4j.version>1.7.25</slf4j.version> <asm.version>7.1</asm.version> |