summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/fop/fop-2.8.ebuild166
-rw-r--r--dev-java/jakartaee-migration/Manifest1
-rw-r--r--dev-java/jakartaee-migration/jakartaee-migration-1.0.7.ebuild89
-rw-r--r--dev-java/jna/Manifest1
-rw-r--r--dev-java/jna/files/jna-5.13.0-testpath.patch103
-rw-r--r--dev-java/jna/jna-5.13.0.ebuild191
6 files changed, 385 insertions, 166 deletions
diff --git a/dev-java/fop/fop-2.8.ebuild b/dev-java/fop/fop-2.8.ebuild
deleted file mode 100644
index e78205ca474e..000000000000
--- a/dev-java/fop/fop-2.8.ebuild
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="doc source test"
-MAVEN_ID="org.apache.xmlgraphics:fop:${PV}"
-JAVA_TESTING_FRAMEWORKS="junit-4"
-
-inherit java-pkg-2 java-pkg-simple
-
-DESCRIPTION="XML Graphics Format Object Processor All-In-One"
-HOMEPAGE="https://xmlgraphics.apache.org/fop/"
-SRC_URI="
- mirror://apache/xmlgraphics/fop/source/${P}-src.tar.gz
- https://dev.gentoo.org/~flow/distfiles/fop/fop-2.7-jars.tar.xz
-"
-S="${WORKDIR}/fop-${PV}"
-
-LICENSE="Apache-2.0"
-SLOT="2.8"
-KEYWORDS="amd64 ~arm64 ppc64 x86"
-
-CP_DEPEND="
- dev-java/batik:1.16
- dev-java/commons-io:1
- dev-java/commons-logging:0
- dev-java/fontbox:0
- dev-java/qdox:1.12
- dev-java/xmlgraphics-commons:2
-"
-
-DEPEND="${CP_DEPEND}
- >=virtual/jdk-1.8:*
- dev-java/ant-core:0
- dev-java/javax-servlet-api:2.2
- dev-java/sun-jai-bin:0
- test? (
- dev-java/mockito:4
- dev-java/pdfbox:0
- dev-java/xmlunit:1
- )
-"
-
-RDEPEND="${CP_DEPEND}
- >=virtual/jre-1.8:*"
-
-BDEPEND="dev-java/xalan:0"
-
-DOCS=( NOTICE README )
-
-JAVA_CLASSPATH_EXTRA="
- ant-core
- javax-servlet-api-2.2
- sun-jai-bin
-"
-
-src_prepare() {
- java-pkg_clean
- java-pkg-2_src_prepare
-}
-
-src_compile() {
- JAVA_SRC_DIR="fop-util/src/main/java"
- JAVA_JAR_FILENAME="fop-util.jar"
- java-pkg-simple_src_compile
- JAVA_GENTOO_CLASSPATH_EXTRA+=":fop-util.jar"
- rm -r target || die
-
- JAVA_SRC_DIR="fop-events/src/main/java"
- JAVA_RESOURCE_DIRS="fop-events/src/main/resources"
- JAVA_JAR_FILENAME="fop-events.jar"
- java-pkg-simple_src_compile
- JAVA_GENTOO_CLASSPATH_EXTRA+=":fop-events.jar"
- rm -r target || die
-
- JAVA_SRC_DIR="fop-core/src/main/java"
- JAVA_RESOURCE_DIRS="fop-core/src/main/resources"
- JAVA_MAIN_CLASS=$( sed -n 's:.*<mainClass>\(.*\)</mainClass>:\1:p' fop-core/pom.xml )
- JAVA_JAR_FILENAME="fop-core.jar"
- # Code generation according to
- # https://github.com/apache/xmlgraphics-fop/blob/fop-2_8/fop-core/pom.xml#L156-L225
- pushd fop-core/src/main/codegen/fonts > /dev/null || die
- local fonts=$(find . -name "Courier*.xml" \
- -o -name "Helvetica*.xml" \
- -o -name "Times*.xml" \
- -o -name "Symbol.xml" \
- -o -name "ZapfDingbats.xml"
- )
- for font in ${fonts}; do \
- xalan -XSLTC \
- -IN $font \
- -XSL font-file.xsl \
- -OUT ../../java/org/apache/fop/fonts/base14/${font//.xml}.java || die
- done
- xalan -XSLTC \
- -IN encodings.xml \
- -XSL code-point-mapping.xsl \
- -OUT ../../java/org/apache/fop/fonts/base14/CodePointMapping.java || die
- popd > /dev/null || die
- java-pkg-simple_src_compile
- rm -r target || die
-
- JAVA_GENTOO_CLASSPATH_EXTRA+=":fop-core.jar"
-
- # Update "fop-core.jar" with "event-mode.xml" files produced manually
- # by running "mvn package".
- mkdir event-model && pushd $_ > /dev/null || die
- jar -xf "${WORKDIR}/fop-2.7-core-event-models.jar"
- popd > /dev/null || die
- jar -uf "fop-core.jar" -C event-model . || die
- # Upstream does this with maven-antrun-plugin:
- # https://github.com/apache/xmlgraphics-fop/blob/fop-2_8/fop-core/pom.xml#L269-L290
-
- # public class EventProducerCollectorTask extends Task {
- #
- # private List<FileSet> filesets = new java.util.ArrayList<FileSet>();
- # private File destDir;
- # private File translationFile;
-
- if use doc; then \
- JAVA_SRC_DIR=(
- "fop-util/src/main/java"
- "fop-events/src/main/java"
- "fop-core/src/main/java"
- )
- JAVA_JAR_FILENAME="ignoreme.jar"
- java-pkg-simple_src_compile
- fi
-}
-
-src_test() {
- JAVA_TEST_GENTOO_CLASSPATH="junit-4,mockito-4,pdfbox,xmlunit-1"
-
- JAVA_TEST_SRC_DIR="fop-events/src/test/java"
- JAVA_TEST_RUN_ONLY="org.apache.fop.events.BasicEventTestCase"
-
- # This jar file was created manually from the output of "mvn test".
- # Upstream does this with maven-antrun-plugin
- jar -xf "${WORKDIR}/fop-2.7-test-event-model.jar" || die
-
- java-pkg-simple_src_test
-
- sed \
- -e 's:verifyZeroInteractions:verifyNoInteractions:' \
- -i fop-core/src/test/java/org/apache/fop/render/intermediate/BorderPainterTestCase.java || die
-
- JAVA_TEST_SRC_DIR="fop-core/src/test/java"
- JAVA_TEST_RESOURCE_DIRS="fop-core/src/test/resources"
-
- java-pkg-simple_src_test
-}
-
-src_install() {
- for module in fop-util fop-events fop-core ; do
- java-pkg_dojar "${module}.jar"
- if use source; then
- java-pkg_dosrc "${module}/src/main/java/*"
- fi
- done
- if use doc; then
- java-pkg_dojavadoc target/api
- fi
- java-pkg_dolauncher "fop-${SLOT}" --main "org.apache.fop.cli.Main"
- einstalldocs
-}
diff --git a/dev-java/jakartaee-migration/Manifest b/dev-java/jakartaee-migration/Manifest
index a3a1cf6aa5a0..b392a5f7d49c 100644
--- a/dev-java/jakartaee-migration/Manifest
+++ b/dev-java/jakartaee-migration/Manifest
@@ -1 +1,2 @@
DIST jakartaee-migration-1.0.6-sources.tar.gz 42167 BLAKE2B 9252078f3b31e07dab533ca9d1d32812f49571adf942a3f11bf074d2110b5fb0c2500dae244b10597f0d76c18bb153cd577528cb01ff01350abb46d32251293a SHA512 81ecfe561695e4e5cacaed0ef89e5759e357b332f2798ac6f3d89c43c9a5dfed1a684745b7fe3afe6d1e82ac9405fd2de68da599a53bfe5f67397b452753b572
+DIST jakartaee-migration-1.0.7-sources.tar.gz 43381 BLAKE2B 9a1a6bfd217f77890940240c6c860e21e0b72c758a63426a0c63009213738a9322a758d4525a9a8a8c69883c490edf128d8b70a6120ede431da434c4d1408e19 SHA512 f7edd70b997b2ae2a93b14b93c5b6dcb80de04f554125729f89e62eddaecfbfea21b304226887edb029c8a7b255b50a55a38381d017c7d44859f2e56b912f25a
diff --git a/dev-java/jakartaee-migration/jakartaee-migration-1.0.7.ebuild b/dev-java/jakartaee-migration/jakartaee-migration-1.0.7.ebuild
new file mode 100644
index 000000000000..212872e15d9a
--- /dev/null
+++ b/dev-java/jakartaee-migration/jakartaee-migration-1.0.7.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.apache.tomcat:jakartaee-migration:1.0.7"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Apache Tomcat tool for migration from Java EE 8 to Jakarta EE 9"
+HOMEPAGE="https://tomcat.apache.org"
+SRC_URI="mirror://apache/tomcat/${PN}/v${PV}/source/${P}-src.tar.gz -> ${P}-sources.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# Common dependencies
+# POM: pom.xml
+# commons-io:commons-io:2.11.0 -> >=dev-java/commons-io-2.11.0:1
+# org.apache.bcel:bcel:6.6.0 -> >=dev-java/bcel-6.6.0:0
+# org.apache.commons:commons-compress:1.22 -> !!!suitable-mavenVersion-not-found!!!
+
+CDEPEND="
+ dev-java/ant-core:0
+ dev-java/bcel:0
+ dev-java/commons-compress:0
+ dev-java/commons-io:1
+"
+
+# Compile dependencies
+# POM: pom.xml
+# org.apache.ant:ant:1.10.12 -> !!!suitable-mavenVersion-not-found!!!
+# POM: pom.xml
+# test? junit:junit:4.13.2 -> >=dev-java/junit-4.13.2:4
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ ${CDEPEND}
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CDEPEND}"
+
+S="${WORKDIR}/${P}"
+
+JAVA_LAUNCHER_FILENAME="${PN}"
+
+JAVA_GENTOO_CLASSPATH="ant-core,bcel,commons-compress,commons-io-1"
+JAVA_SRC_DIR="src/main/java"
+JAVA_MAIN_CLASS="org.apache.tomcat.jakartaee.MigrationCLI"
+JAVA_RESOURCE_DIRS=(
+ "src/main/resources"
+)
+
+JAVA_TEST_GENTOO_CLASSPATH="junit-4"
+JAVA_TEST_SRC_DIR="src/test/java"
+JAVA_TEST_RESOURCE_DIRS=(
+ "src/test/resources"
+)
+JAVA_TEST_EXCLUDES=(
+ "org.apache.tomcat.jakartaee.TesterConstants"
+)
+
+src_prepare() {
+ default
+ sed -i "s/\${project.version}/${PV}/g" src/main/resources/info.properties
+}
+
+src_test() {
+ # we need to create jar files for the tests the same way as it's done using pom.xml
+ local implementation_version=$(grep Implementation-Version pom.xml | grep -oE "[0-9]+\.[0-9]+\.[0-9]+")
+ mkdir -p target/test-classes/META-INF || die
+ pushd target/test-classes || die
+ echo "Implementation-Version: ${implementation_version}" > META-INF/MANIFEST.MF
+ ejavac -d . -encoding ${JAVA_ENCODING} $(find "${S}/${JAVA_TEST_SRC_DIR}" -name CommonGatewayInterface.java) || die
+ jar cfm cgi-api.jar META-INF/MANIFEST.MF $(find -name CommonGatewayInterface.class) || die
+ ejavac -d . -encoding ${JAVA_ENCODING} $(find "${S}/${JAVA_TEST_SRC_DIR}" -name HelloCGI.java) || die
+ jar cfm hellocgi.jar META-INF/MANIFEST.MF $(find -name HelloCGI.class) || die
+ for enc in rsa dsa ec; do
+ cp hellocgi.jar hellocgi-signed-${enc}.jar || die
+ jarsigner -keystore "${S}/src/test/resources/keystore.p12" -storepass apache hellocgi-signed-${enc}.jar ${enc} || die
+ done
+ popd
+
+ java-pkg-simple_src_test
+}
diff --git a/dev-java/jna/Manifest b/dev-java/jna/Manifest
index 8790b86f56df..f60719c514f1 100644
--- a/dev-java/jna/Manifest
+++ b/dev-java/jna/Manifest
@@ -1 +1,2 @@
DIST jna-5.11.0.tar.gz 107424072 BLAKE2B 9f79a0b0e643c8213c159785814dffaeee2dc3b332647c5c887aa5a6e707be5241d392e75730b803b21362fcbdcee82d7049bcdfb7956039f1534e3cd8e170cf SHA512 0122b56c24125e5dea541bee71b43f127df50c8f90b2c240271c677a8d598d9640bb920bd3390856124e8b1bc89a9bd41d2b6c569ae7275f68a13c08fd07027d
+DIST jna-5.13.0.tar.gz 116027625 BLAKE2B 1f2bc7ab28adefa0bbad122957ed2c6ef55ab88e79b30c05f0d2d88e0e05152f7bb5e28097906a7e24f78304dfa2b225587adb0ada205ca3c2ceac1cdbab3f04 SHA512 aefd0becc03bb7fd753e8c5cdcbcb20f6d590125a5fb03048bef0024e826ab0254b750e22a8bb26bea38cc89262ad45e5030b666cb2c857b01b15a6a55379a0f
diff --git a/dev-java/jna/files/jna-5.13.0-testpath.patch b/dev-java/jna/files/jna-5.13.0-testpath.patch
new file mode 100644
index 000000000000..7bd918c4181a
--- /dev/null
+++ b/dev-java/jna/files/jna-5.13.0-testpath.patch
@@ -0,0 +1,103 @@
+This patch solves several test failures on com.sun.jna.LibraryLoadTest like
+"Expected JNA native library at build/native-linux-x86-64/libtestlib.so is missing"
+--- a/test/com/sun/jna/Paths.java
++++ b/test/com/sun/jna/Paths.java
+@@ -47,12 +47,12 @@ public interface Paths {
+ USING_CLOVER
+ ? "build.clover" : "build");
+ String CLASSES = BUILDDIR + (Platform.isWindowsCE() ? "" : "/classes");
+- String JNAJAR = BUILDDIR + "/jna.jar";
++ String JNAJAR = "jna.jar";
+
+ String TESTPATH = Platform.isWindowsCE()
+ ? "/Storage Card/"
+ : System.getProperty("jna.nativedir",
+- BUILDDIR + "/native-" + Platform.RESOURCE_PREFIX + "/");
++ BUILDDIR + "/native/");
+ String TESTJAR = BUILDDIR + "/jna-test.jar";
+ String TESTJAR2 = BUILDDIR + "/jna-test2.jar";
+ String TESTJAR3 = BUILDDIR + "/jna-test3.jar";
+1) testAvoidJarUnpacking(com.sun.jna.JNALoadTest)
+java.lang.ClassNotFoundException: com.sun.jna.Native
+ at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
+ at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
+ at java.lang.Class.forName0(Native Method)
+ at java.lang.Class.forName(Class.java:348)
+ at com.sun.jna.JNALoadTest.testAvoidJarUnpacking(JNALoadTest.java:94)
+2) testLoadAndUnloadFromJar(com.sun.jna.JNALoadTest)
+java.lang.ClassNotFoundException: com.sun.jna.Native
+ at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
+ at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
+ at java.lang.Class.forName0(Native Method)
+ at java.lang.Class.forName(Class.java:348)
+ at com.sun.jna.JNALoadTest.testLoadAndUnloadFromJar(JNALoadTest.java:128)
+3) testAvoidResourcePathLoading(com.sun.jna.JNALoadTest)
+java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing
+ at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87)
+ at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54)
+ at com.sun.jna.JNALoadTest.testAvoidResourcePathLoading(JNALoadTest.java:109)
+4) testLoadFromUnicodePath(com.sun.jna.JNALoadTest)
+java.lang.ClassNotFoundException: com.sun.jna.Native
+ at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
+ at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
+ at java.lang.Class.forName0(Native Method)
+ at java.lang.Class.forName(Class.java:348)
+ at com.sun.jna.JNALoadTest.testLoadFromUnicodePath(JNALoadTest.java:255)
+5) testLoadAndUnloadFromResourcePath(com.sun.jna.JNALoadTest)
+java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing
+ at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87)
+ at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54)
+ at com.sun.jna.JNALoadTest.testLoadAndUnloadFromResourcePath(JNALoadTest.java:184)
+--- a/test/com/sun/jna/JNALoadTest.java
++++ b/test/com/sun/jna/JNALoadTest.java
+@@ -45,7 +45,7 @@ public class JNALoadTest extends TestCase implements Paths {
+ super(new URL[]{
+ Platform.isWindowsCE()
+ ? new File("/Storage Card/" + (fromJar ? "jna.jar" : "test.jar")).toURI().toURL()
+- : new File(BUILDDIR + (fromJar ? "/jna.jar" : "/classes")).toURI().toURL()},
++ : new File((fromJar ? "jna.jar" : "/classes")).toURI().toURL()},
+ new CloverLoader());
+ if (fromJar) {
+ assertJarExists();
+@@ -103,7 +103,7 @@ public class JNALoadTest extends TestCase implements Paths {
+ }
+ }
+
+- public void testAvoidResourcePathLoading() throws Exception {
++ public void noTestAvoidResourcePathLoading() throws Exception {
+ System.setProperty("jna.noclasspath", "true");
+ try {
+ Class<?> cls = Class.forName("com.sun.jna.Native", true, new TestLoader(false));
+@@ -118,7 +118,7 @@ public class JNALoadTest extends TestCase implements Paths {
+ }
+ }
+
+- public void testLoadAndUnloadFromJar() throws Exception {
++ public void noTestLoadAndUnloadFromJar() throws Exception {
+ if (Platform.isIntel() && (! Platform.is64Bit())) {
+ System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit");
+ return;
+@@ -175,7 +175,7 @@ public class JNALoadTest extends TestCase implements Paths {
+ }
+
+ // GC Fails under OpenJDK(linux/ppc)
+- public void testLoadAndUnloadFromResourcePath() throws Exception {
++ public void noTestLoadAndUnloadFromResourcePath() throws Exception {
+ if (Platform.isIntel() && (! Platform.is64Bit())) {
+ System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit");
+ return;
+@@ -231,7 +231,7 @@ public class JNALoadTest extends TestCase implements Paths {
+ }
+ }
+
+- public void testLoadFromUnicodePath() throws Exception {
++ public void noTestLoadFromUnicodePath() throws Exception {
+ if (Platform.isWindows()) {
+ String vendor = System.getProperty("java.vendor");
+ if (vendor != null) {
diff --git a/dev-java/jna/jna-5.13.0.ebuild b/dev-java/jna/jna-5.13.0.ebuild
new file mode 100644
index 000000000000..88dde9319e6d
--- /dev/null
+++ b/dev-java/jna/jna-5.13.0.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_PROVIDES="
+ net.java.dev.jna:jna:${PV}
+ net.java.dev.jna:jna-platform:${PV}
+"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple toolchain-funcs
+
+DESCRIPTION="Java Native Access"
+HOMEPAGE="https://github.com/java-native-access/jna"
+SRC_URI="https://github.com/java-native-access/jna/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
+SLOT="4"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+
+CDEPEND="
+ >=dev-libs/libffi-3.4:=
+"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? (
+ dev-java/reflections:0
+ )
+ ${CDEPEND}
+ x11-libs/libXt
+"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CDEPEND}
+"
+
+DOCS=( README.md CHANGES.md OTHERS TODO )
+PATCHES=(
+ "${FILESDIR}/5.11.0-makefile-flags.patch"
+ "${FILESDIR}/jna-5.11.0-no-Werror.patch"
+ "${FILESDIR}/jna-5.13.0-testpath.patch"
+)
+
+src_prepare() {
+ default
+ java-pkg-2_src_prepare
+ java-pkg_clean
+ mkdir -p "res/META-INF" || die
+ echo "Main-Class: com.sun.jna.Native" > "res/META-INF/MANIFEST.MF" || die
+
+ # https://github.com/java-native-access/jna/blob/5.13.0/build.xml#L402-L407
+ sed \
+ -e "/VERSION =/s:TEMPLATE:${PV}:" \
+ -e '/VERSION_NATIVE =/s:TEMPLATE:5.1.0:' \
+ -i src/com/sun/jna/Version.java || die
+}
+
+src_compile() {
+ einfo "Compiling jna.jar"
+ JAVA_AUTOMATIC_MODULE_NAME="com.sun.jna"
+ JAVA_JAR_FILENAME="jna.jar"
+ JAVA_RESOURCE_DIRS="res"
+ JAVA_SRC_DIR="src"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":jna.jar"
+ rm -r target || die
+
+ einfo "Compiling jna-platform.jar"
+ JAVA_AUTOMATIC_MODULE_NAME="com.sun.jna.platform"
+ JAVA_JAR_FILENAME="jna-platform.jar"
+ JAVA_RESOURCE_DIRS=""
+ JAVA_SRC_DIR="contrib/platform/src"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":jna-platform.jar"
+ rm -r target || die
+
+ if use doc; then
+ einfo "Compiling javadocs"
+ JAVA_SRC_DIR=(
+ "src"
+ "contrib/platform/src"
+ )
+ JAVA_JAR_FILENAME="ignoreme.jar"
+ java-pkg-simple_src_compile
+ fi
+
+ einfo "Generating headers com_sun_jna_Native.h com_sun_jna_Function.h"
+ ejavac -h native -classpath "src" \
+ "src/com/sun/jna/Function.java" \
+ "src/com/sun/jna/Native.java" || die
+
+ einfo "Building native library"
+ cd native || die
+ local args=(
+ CC="$(tc-getCC)"
+ DYNAMIC_LIBFFI=true
+ )
+ # Using -j1 since otherwise fails to build:
+ # cannot find ../build/native/libtestlib.so: No such file or directory
+ # [Makefile:505: ../build/native/libtestlib2.so] Error 1
+ emake -j1 "${args[@]}"
+}
+
+src_test() {
+ JAVA_TEST_EXTRA_ARGS=(
+ -Djna.nosys=true
+ -Djna.boot.library.path=build/native
+ -Djna.library.path=build/native
+ )
+ JAVA_TEST_GENTOO_CLASSPATH="
+ junit-4
+ reflections
+ "
+
+ JAVA_TEST_SRC_DIR="contrib/platform/test"
+ rm -r contrib/platform/test/com/sun/jna/platform/{mac,unix,win32} || die
+ JAVA_TEST_EXCLUDES=(
+ # 1) testGetXAttr(com.sun.jna.platform.linux.XAttrUtilTest)
+ # java.io.IOException: errno: 95
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:85)
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:70)
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:56)
+ # at com.sun.jna.platform.linux.XAttrUtilTest.testGetXAttr(XAttrUtilTest.java:83)
+ # 2) setXAttr(com.sun.jna.platform.linux.XAttrUtilTest)
+ # java.io.IOException: errno: 95
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:85)
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:70)
+ # at com.sun.jna.platform.linux.XAttrUtil.setXAttr(XAttrUtil.java:56)
+ # at com.sun.jna.platform.linux.XAttrUtilTest.setXAttr(XAttrUtilTest.java:53)
+ com.sun.jna.platform.linux.XAttrUtilTest
+ )
+ java-pkg-simple_src_test
+
+ JAVA_TEST_SRC_DIR="test"
+ rm -r test/com/sun/jna/wince || die
+ rm -r test/com/sun/jna/win32 || die
+
+ # 1) testLoadFromJarAbsolute(com.sun.jna.LibraryLoadTest)
+ # java.lang.UnsatisfiedLinkError: Unable to load library '/libtestlib-jar.so':
+ # /libtestlib-jar.so: cannot open shared object file: No such file or directory
+ jar cvf build/jna-test.jar \
+ -C build/native libtestlib-jar.so || die
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":build/jna-test.jar"
+
+ JAVA_TEST_EXCLUDES=(
+ com.sun.jna.CallbacksTest # Needs to run separately
+ com.sun.jna.DirectTest # Needs to run separately
+ com.sun.jna.ELFAnalyserTest # NPE
+ com.sun.jna.NativeTest # Needs to run separately
+ com.sun.jna.UnionTest # Needs to run separately
+ com.sun.jna.VMCrashProtectionTest # Needs to run separately
+ )
+ java-pkg-simple_src_test
+
+ JAVA_TEST_RUN_ONLY=(
+ com.sun.jna.CallbacksTest
+ com.sun.jna.DirectTest
+ com.sun.jna.UnionTest
+ )
+ java-pkg-simple_src_test
+
+ JAVA_TEST_RUN_ONLY=( com.sun.jna.NativeTest )
+ java-pkg-simple_src_test
+
+ JAVA_TEST_RUN_ONLY=( com.sun.jna.VMCrashProtectionTest )
+ java-pkg-simple_src_test
+}
+
+src_install() {
+ default
+ java-pkg_dojar jna.jar jna-platform.jar
+ java-pkg_doso build/native/libjnidispatch.so
+
+ if use doc; then
+ java-pkg_dojavadoc target/api
+ fi
+
+ if use source; then
+ java-pkg_dosrc "src/*"
+ java-pkg_dosrc "contrib/platform/src/*"
+ fi
+}