Browse Source

Provide a module descriptor for Java 9+ (#300)

pull/305/head
Andreas Rudolph 6 years ago committed by Decebal Suiu
parent
commit
e025d6704c
  1. 49
      pf4j/pom.xml
  2. 47
      pf4j/src/main/java/module-info.java
  3. 3
      pom.xml

49
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>

47
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;
}

3
pom.xml

@ -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>

Loading…
Cancel
Save