Browse Source

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

tags/release-3.0.0
Andreas Rudolph 5 years ago
parent
commit
e025d6704c
3 changed files with 82 additions and 17 deletions
  1. 34
    15
      pf4j/pom.xml
  2. 47
    0
      pf4j/src/main/java/module-info.java
  3. 1
    2
      pom.xml

+ 34
- 15
pf4j/pom.xml View File

@@ -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
- 0
pf4j/src/main/java/module-info.java View File

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

+ 1
- 2
pom.xml View File

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