summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/commons-vfs/commons-vfs-2.0-r3.ebuild71
-rw-r--r--dev-java/commons-vfs/files/commons-vfs-2.0-build.xml298
-rw-r--r--dev-java/gson/gson-2.10.2_pre20231128-r1.ebuild (renamed from dev-java/gson/gson-2.10.2_pre20231128.ebuild)0
-rw-r--r--dev-java/javacup/Manifest1
-rw-r--r--dev-java/javacup/javacup-11b_p20160615.ebuild92
-rw-r--r--dev-java/javacup/metadata.xml3
-rw-r--r--dev-java/jflex/jflex-1.6.1-r3.ebuild135
-rw-r--r--dev-java/jflex/metadata.xml3
-rw-r--r--dev-java/qdox/metadata.xml3
-rw-r--r--dev-java/qdox/qdox-1.12.1-r5.ebuild (renamed from dev-java/qdox/qdox-1.12.1-r4.ebuild)32
10 files changed, 258 insertions, 380 deletions
diff --git a/dev-java/commons-vfs/commons-vfs-2.0-r3.ebuild b/dev-java/commons-vfs/commons-vfs-2.0-r3.ebuild
deleted file mode 100644
index 418ad23cc41f..000000000000
--- a/dev-java/commons-vfs/commons-vfs-2.0-r3.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-JAVA_PKG_IUSE="source"
-
-inherit java-pkg-2 java-ant-2
-
-DESCRIPTION="A single API for accessing various different file systems"
-HOMEPAGE="https://commons.apache.org/vfs/"
-SRC_URI="https://archive.apache.org/dist/commons/vfs/source/${P}-src.tar.gz"
-S="${WORKDIR}/${P}/core"
-
-LICENSE="Apache-2.0"
-SLOT="2"
-KEYWORDS="amd64 ~arm arm64 ppc64 x86 ~amd64-linux ~x86-linux"
-
-CDEPEND="
- dev-java/ant:0
- dev-java/commons-collections:0
- dev-java/commons-logging:0
- dev-java/commons-net:0
- dev-java/commons-httpclient:3
- dev-java/jackrabbit-webdav:0
- dev-java/jsch:0"
-
-DEPEND="${CDEPEND}
- >=virtual/jdk-1.8:*"
-
-RDEPEND="${CDEPEND}
- >=virtual/jre-1.8:*"
-
-PATCHES=(
- "${FILESDIR}"/${P}-incompatibility.patch
-)
-
-EANT_GENTOO_CLASSPATH="
- ant
- commons-collections
- commons-logging
- commons-net
- commons-httpclient-3
- jackrabbit-webdav
- jsch
-"
-EANT_EXTRA_ARGS="-Dlibdir=${T}"
-
-# The build.xml is generated from maven and can't run the tests properly
-# Use maven test to execute these manually but that means downloading deps from
-# the internet. Also the tests need to login to some ftp servers and samba
-# shares so I doubt they work for everyone.
-#src_test() {
-# ANT_TASKS="ant-junit" eant test
-#}
-
-src_prepare() {
- default
- cp "${FILESDIR}"/${P}-build.xml build.xml || die
-
- java-ant_rewrite-classpath
- java-ant_ignore-system-classes
-}
-
-src_install() {
- java-pkg_newjar target/*.jar
-
- # [javadoc] No javadoc created, no need to post-process anything
-# use doc && java-pkg_dojavadoc target/site/apidocs
- use source && java-pkg_dosrc src/main/java
-}
diff --git a/dev-java/commons-vfs/files/commons-vfs-2.0-build.xml b/dev-java/commons-vfs/files/commons-vfs-2.0-build.xml
deleted file mode 100644
index 753e93d669f2..000000000000
--- a/dev-java/commons-vfs/files/commons-vfs-2.0-build.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
-<!-- ====================================================================== -->
-
-<!-- ====================================================================== -->
-<!-- ===================== - DO NOT EDIT THIS FILE! - ===================== -->
-<!-- ====================================================================== -->
-<!-- -->
-<!-- Any modifications will be overwritten. -->
-<!-- -->
-<!-- Generated by Maven Ant Plugin on 5/29/13 3:05 PM -->
-<!-- See: http://maven.apache.org/plugins/maven-ant-plugin/ -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<project name="commons-vfs2-from-maven" default="package" basedir=".">
-
- <!-- ====================================================================== -->
- <!-- Build environment properties -->
- <!-- ====================================================================== -->
-
- <property file="${user.home}/.m2/maven.properties"/>
- <property file="maven-build.properties"/>
-
- <property name="maven.build.finalName" value="commons-vfs2-2.0"/>
- <property name="maven.build.dir" value="target"/>
- <property name="maven.build.outputDir" value="${maven.build.dir}/classes"/>
- <property name="maven.build.srcDir.0" value="src/main/java"/>
- <property name="maven.build.resourceDir.0" value="src/main/java"/>
- <property name="maven.build.resourceDir.1" value=".."/>
- <property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes"/>
- <property name="maven.build.testDir.0" value="src/test/java"/>
- <property name="maven.build.testResourceDir.0" value="src/test/resources"/>
- <property name="maven.build.testResourceDir.1" value=".."/>
- <property name="maven.test.reports" value="${maven.build.dir}/test-reports"/>
- <property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site"/>
-
- <property name="maven.repo.local" value="${user.home}/.m2/repository"/>
- <property name="maven.settings.offline" value="false"/>
- <property name="maven.settings.interactiveMode" value="true"/>
-
- <!-- ====================================================================== -->
- <!-- Defining classpaths -->
- <!-- ====================================================================== -->
-
- <path id="build.classpath">
- <pathelement location="${maven.repo.local}/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
- <pathelement location="${maven.repo.local}/ant/ant/1.6.2/ant-1.6.2.jar"/>
- <pathelement location="${maven.repo.local}/commons-net/commons-net/2.2/commons-net-2.2.jar"/>
- <pathelement location="${maven.repo.local}/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <pathelement location="${maven.repo.local}/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar"/>
- <pathelement location="${maven.repo.local}/commons-codec/commons-codec/1.2/commons-codec-1.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/jackrabbit/jackrabbit-webdav/1.5.2/jackrabbit-webdav-1.5.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/jackrabbit/jackrabbit-jcr-commons/1.5.2/jackrabbit-jcr-commons-1.5.2.jar"/>
- <pathelement location="${maven.repo.local}/org/slf4j/slf4j-api/1.5.3/slf4j-api-1.5.3.jar"/>
- <pathelement location="${maven.repo.local}/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar"/>
- <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar"/>
- <pathelement location="${maven.repo.local}/regexp/regexp/1.3/regexp-1.3.jar"/>
- </path>
- <path id="build.test.classpath">
- <pathelement location="${maven.repo.local}/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
- <pathelement location="${maven.repo.local}/ant/ant/1.6.2/ant-1.6.2.jar"/>
- <pathelement location="${maven.repo.local}/commons-net/commons-net/2.2/commons-net-2.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/commons/commons-compress/1.1/commons-compress-1.1.jar"/>
- <pathelement location="${maven.repo.local}/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <pathelement location="${maven.repo.local}/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar"/>
- <pathelement location="${maven.repo.local}/commons-codec/commons-codec/1.2/commons-codec-1.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/jackrabbit/jackrabbit-webdav/1.5.2/jackrabbit-webdav-1.5.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/jackrabbit/jackrabbit-jcr-commons/1.5.2/jackrabbit-jcr-commons-1.5.2.jar"/>
- <pathelement location="${maven.repo.local}/org/slf4j/slf4j-api/1.5.3/slf4j-api-1.5.3.jar"/>
- <pathelement location="${maven.repo.local}/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar"/>
- <pathelement location="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-api/1.4/maven-scm-api-1.4.jar"/>
- <pathelement location="${maven.repo.local}/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-provider-svnexe/1.4/maven-scm-provider-svnexe-1.4.jar"/>
- <pathelement location="${maven.repo.local}/org/apache/maven/scm/maven-scm-provider-svn-commons/1.4/maven-scm-provider-svn-commons-1.4.jar"/>
- <pathelement location="${maven.repo.local}/regexp/regexp/1.3/regexp-1.3.jar"/>
- </path>
-
- <!-- ====================================================================== -->
- <!-- Cleaning up target -->
- <!-- ====================================================================== -->
-
- <target name="clean" description="Clean the output directory">
- <delete dir="${maven.build.dir}"/>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Compilation target -->
- <!-- ====================================================================== -->
-
- <target name="compile" depends="get-deps" description="Compile the code">
- <mkdir dir="${maven.build.outputDir}"/>
- <javac destdir="${maven.build.outputDir}"
- encoding="iso-8859-1"
- nowarn="false"
- debug="true"
- optimize="false"
- deprecation="true"
- target="1.5"
- verbose="false"
- fork="false"
- source="1.5">
- <src>
- <pathelement location="${maven.build.srcDir.0}"/>
- </src>
- <classpath refid="build.classpath"/>
- </javac>
- <copy todir="${maven.build.outputDir}">
- <fileset dir="${maven.build.resourceDir.0}">
- <exclude name="**/*.java"/>
- </fileset>
- </copy>
- <mkdir dir="${maven.build.outputDir}/META-INF"/>
- <copy todir="${maven.build.outputDir}/META-INF">
- <fileset dir="${maven.build.resourceDir.1}">
- <include name="NOTICE.txt"/>
- <include name="LICENSE.txt"/>
- </fileset>
- </copy>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Test-compilation target -->
- <!-- ====================================================================== -->
-
- <target name="compile-tests"
- depends="compile"
- description="Compile the test code"
- unless="maven.test.skip">
- <mkdir dir="${maven.build.testOutputDir}"/>
- <javac destdir="${maven.build.testOutputDir}"
- encoding="iso-8859-1"
- nowarn="false"
- debug="true"
- optimize="false"
- deprecation="true"
- target="1.5"
- verbose="false"
- fork="false"
- source="1.5">
- <src>
- <pathelement location="${maven.build.testDir.0}"/>
- </src>
- <classpath>
- <path refid="build.test.classpath"/>
- <pathelement location="${maven.build.outputDir}"/>
- </classpath>
- </javac>
- <copy todir="${maven.build.testOutputDir}">
- <fileset dir="${maven.build.testResourceDir.0}"/>
- </copy>
- <mkdir dir="${maven.build.testOutputDir}/META-INF"/>
- <copy todir="${maven.build.testOutputDir}/META-INF">
- <fileset dir="${maven.build.testResourceDir.1}">
- <include name="NOTICE.txt"/>
- <include name="LICENSE.txt"/>
- </fileset>
- </copy>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Run all tests -->
- <!-- ====================================================================== -->
-
- <target name="test"
- depends="compile-tests, junit-missing"
- unless="junit.skipped"
- description="Run the test cases">
- <mkdir dir="${maven.test.reports}"/>
- <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
- <sysproperty key="basedir" value="."/>
- <formatter type="xml"/>
- <formatter type="plain" usefile="false"/>
- <classpath>
- <path refid="build.test.classpath"/>
- <pathelement location="${maven.build.outputDir}"/>
- <pathelement location="${maven.build.testOutputDir}"/>
- </classpath>
- <batchtest todir="${maven.test.reports}" unless="test">
- <fileset dir="${maven.build.testDir.0}">
- <include name="**/Test*.java"/>
- <include name="**/*Test.java"/>
- <include name="**/*TestCase.java"/>
- <exclude name="**/RunTest.java"/>
- <exclude name="**/*$*"/>
- </fileset>
- </batchtest>
- <batchtest todir="${maven.test.reports}" if="test">
- <fileset dir="${maven.build.testDir.0}">
- <include name="**/${test}.java"/>
- <exclude name="**/RunTest.java"/>
- <exclude name="**/*$*"/>
- </fileset>
- </batchtest>
- </junit>
- </target>
-
- <target name="test-junit-present">
- <available classname="junit.framework.Test" property="junit.present"/>
- </target>
-
- <target name="test-junit-status"
- depends="test-junit-present">
- <condition property="junit.missing">
- <and>
- <isfalse value="${junit.present}"/>
- <isfalse value="${maven.test.skip}"/>
- </and>
- </condition>
- <condition property="junit.skipped">
- <or>
- <isfalse value="${junit.present}"/>
- <istrue value="${maven.test.skip}"/>
- </or>
- </condition>
- </target>
-
- <target name="junit-missing"
- depends="test-junit-status"
- if="junit.missing">
- <echo>=================================== WARNING ===================================</echo>
- <echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
- <echo>===============================================================================</echo>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Javadoc target -->
- <!-- ====================================================================== -->
-
- <target name="javadoc" description="Generates the Javadoc of the application">
- <javadoc sourcepath="${maven.build.srcDir.0}"
- packagenames="*"
- destdir="${maven.reporting.outputDirectory}/apidocs"
- access="protected"
- old="false"
- verbose="false"
- encoding="iso-8859-1"
- version="true"
- use="true"
- author="true"
- splitindex="false"
- nodeprecated="false"
- nodeprecatedlist="false"
- notree="false"
- noindex="false"
- nohelp="false"
- nonavbar="false"
- serialwarn="false"
- charset="ISO-8859-1"
- source="1.5"
- linksource="true"
- breakiterator="false">
- <link href="http://download.oracle.com/javase/6/docs/api/"/>
- </javadoc>
- </target>
-
- <!-- ====================================================================== -->
- <!-- Package target -->
- <!-- ====================================================================== -->
-
- <target name="package" depends="compile,test" description="Package the application">
- <jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
- compress="true"
- index="false"
- basedir="${maven.build.outputDir}"
- excludes="**/package.html">
- </jar>
- </target>
-
- <!-- ====================================================================== -->
- <!-- A dummy target for the package named after the type it creates -->
- <!-- ====================================================================== -->
-
- <target name="jar" depends="package" description="Builds the jar for the application"/>
-
- <!-- ====================================================================== -->
- <!-- Download dependencies target -->
- <!-- ====================================================================== -->
-
- <target name="test-offline">
- <condition property="maven.mode.offline">
- <equals arg1="${maven.settings.offline}" arg2="true"/>
- </condition>
- </target>
-
- <target name="get-deps"
- depends="test-offline"
- description="Download all dependencies"
- unless="maven.mode.offline">
- </target>
-
-</project>
diff --git a/dev-java/gson/gson-2.10.2_pre20231128.ebuild b/dev-java/gson/gson-2.10.2_pre20231128-r1.ebuild
index 4247c08c2190..4247c08c2190 100644
--- a/dev-java/gson/gson-2.10.2_pre20231128.ebuild
+++ b/dev-java/gson/gson-2.10.2_pre20231128-r1.ebuild
diff --git a/dev-java/javacup/Manifest b/dev-java/javacup/Manifest
index e86cdb7e2e96..5bb555f43821 100644
--- a/dev-java/javacup/Manifest
+++ b/dev-java/javacup/Manifest
@@ -1 +1,2 @@
DIST java-cup-src-11b-20151001.tar.gz 313405 BLAKE2B 126944916d120dd2150e4a665fea6d216f3d55e002a72b581621df726e4bf0e0664f9ff925189c97162582277c08a4f121e056299ea5a3f5c10cc31d7c0feb9c SHA512 70bb6a0e13fe52694980040205fcf5b3e904c4a07e50c7740c55cc3bb481496c5c071377757b94f59807b936b8c4fdde5423d78cc2d12a7ada1870f71cd9f47e
+DIST java-cup-src-11b-20160615.tar.gz 313847 BLAKE2B 0031cdb73471512162f69fff6ed47e91d78769c5162f37d4fdcef1c4b4be17ec9e950eda973a8842ae95423840be6c43a335180584b81c4618ea43cbfa926972 SHA512 532a8169f8e1ed2c637c66e7e21cc90eea363732870fbf4e3d66acbff03de3ba0583cefb7b4e7b8f8cb0c9bf1ca92dd5a59111860612bc7544e8beab87f5fbda
diff --git a/dev-java/javacup/javacup-11b_p20160615.ebuild b/dev-java/javacup/javacup-11b_p20160615.ebuild
new file mode 100644
index 000000000000..a66896a46441
--- /dev/null
+++ b/dev-java/javacup/javacup-11b_p20160615.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="CUP Parser Generator for Java"
+HOMEPAGE="https://www2.cs.tum.edu/projects/cup/"
+SRC_URI="https://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${PV/_p/-}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ant-task"
+
+DEPEND="${CP_DEPEND}
+ >=dev-java/jflex-1.6.1-r3:0
+ >=virtual/jdk-1.8:*
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )"
+RDEPEND="${CP_DEPEND}
+ >=virtual/jre-1.8:*
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )"
+
+DOCS=( changelog.txt )
+HTML_DOCS=( manual.html )
+
+JAVA_MAIN_CLASS="java_cup/Main"
+JAVA_SRC_DIR=( "src" "java" )
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ if use ant-task; then
+ JAVA_GENTOO_CLASSPATH+="ant"
+ else
+ rm src/java_cup/anttask/CUPTask.java || die
+ fi
+}
+
+src_compile() {
+ if has_version \>=${CATEGORY}/${PN}-11b:${SLOT}; then
+ einfo "Get path of installed JAVACUP"
+ CP_CUP="$(java-pkg_getjar --build-only javacup javacup.jar)"
+ else
+ einfo "Get path of bundled JAVACUP"
+ CP_CUP="$(echo bin/java-cup-*.jar)"
+ fi
+ einfo "Path to JAVACUP is ${CP_CUP}"
+
+ einfo "Get path to jflex"
+ CP_FLEX="$(java-pkg_getjars --build-only jflex)"
+ einfo "Path to jflex is ${CP_FLEX}"
+
+ einfo "Generate parser with: ${CP_CUP}"
+ "$(java-config -J)" -jar "${CP_CUP}" \
+ -interface -destdir "java" -parser "parser" -symbols "sym" \
+ cup/parser.cup || die
+
+ einfo "Generate lexer"
+ # https://jflex.de/manual.html#running-jflex
+ $(java-config -J) -cp "${CP_CUP}:${CP_FLEX}" jflex.Main \
+ flex/Lexer.jflex -d java/javacup || die
+
+ einfo "Build intermediate jar"
+ JAVA_JAR_FILENAME="seco.jar"
+ java-pkg-simple_src_compile
+
+ einfo "Remove classes and generated code"
+ rm -rv java/* target/classes/ || die
+
+ einfo "Regenerate parser with intermediate jar file"
+ "$(java-config -J)" -jar ./seco.jar \
+ -interface -destdir "java" -parser "parser" -symbols "sym" \
+ cup/parser.cup || die
+
+ einfo "Regenerate lexer with intermediate jar file"
+ $(java-config -J) -cp "$(echo ./seco.jar):${CP_FLEX}" jflex.Main \
+ flex/Lexer.jflex -d java/javacup || die
+
+ einfo "Build final jar with regenerated parser and lexer"
+ JAVA_JAR_FILENAME="${PN}.jar"
+ java-pkg-simple_src_compile
+ "$(java-config --jar)" cvf "${PN}-runtime.jar" -C target/classes java_cup/runtime || die
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ java-pkg_dojar "${PN}.jar" "${PN}-runtime.jar"
+ use ant-task && java-pkg_register-ant-task
+}
diff --git a/dev-java/javacup/metadata.xml b/dev-java/javacup/metadata.xml
index e25b5c52aab3..15d291fa1282 100644
--- a/dev-java/javacup/metadata.xml
+++ b/dev-java/javacup/metadata.xml
@@ -6,5 +6,8 @@
<name>Java</name>
</maintainer>
+ <use>
+ <flag name="ant-task">Build and register the ant-task</flag>
+ </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/jflex/jflex-1.6.1-r3.ebuild b/dev-java/jflex/jflex-1.6.1-r3.ebuild
new file mode 100644
index 000000000000..ae329e176675
--- /dev/null
+++ b/dev-java/jflex/jflex-1.6.1-r3.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="JFlex is a lexical analyzer generator for Java"
+HOMEPAGE="https://www.jflex.de/"
+SRC_URI="https://${PN}.de/${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~ppc-macos ~x64-macos"
+IUSE="ant-task examples test vim-syntax"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( ant-task )"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )
+ vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
+"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )
+ test? ( dev-java/junit:4 )
+"
+
+PDEPEND=">=dev-java/javacup-11b_p20160615:0"
+
+JAVA_SRC_DIR="src/main/java"
+
+src_prepare() {
+ eapply_user
+ java-pkg-2_src_prepare
+
+ # See below for details.
+ eapply "${FILESDIR}/icedtea-arm.patch"
+
+ # We need the bundled jflex.jar.
+ rm -rv ${JAVA_SRC_DIR}/java_cup examples/pom.xml || die
+
+ # Remove the bundled java-cup.jar if unneeded.
+ if has_version ${PDEPEND}; then
+ rm -v lib/java-cup-*.jar || die
+ fi
+}
+
+src_configure() {
+ # javacup is a cyclic dependency. Use the package if we have it,
+ # otherwise use the bundled version and install the package later.
+ if has_version ${PDEPEND}; then
+ # Use PORTAGE_QUIET to suppress a QA warning that is spurious
+ # thanks to has_version above. This is Portage-specific but
+ # showing the warning elsewhere isn't the end of the world.
+ JAVACUP=$(PORTAGE_QUIET=1 java-pkg_getjar --build-only javacup javacup.jar)
+ else
+ JAVACUP=$(echo lib/java-cup-*.jar)
+ fi
+
+ JAVA_GENTOO_CLASSPATH_EXTRA="${JAVACUP}"
+ if use ant-task; then
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjar --build-only ant ant.jar)"
+ else
+ rm src/main/java/jflex/anttask/JFlexTask.java || die
+ fi
+}
+
+jflex_compile() {
+ java "${@}" jflex.Main -d ${JAVA_SRC_DIR}/${PN} \
+ --skel src/main/${PN}/skeleton.nested src/main/${PN}/LexScan.flex || die
+ java-pkg-simple_src_compile
+ java-pkg_addres ${PN}.jar src/main/resources
+}
+
+src_compile() {
+ java -jar "${JAVACUP}" -destdir ${JAVA_SRC_DIR}/${PN} -package ${PN} \
+ -parser LexParse -interface src/main/cup/LexParse.cup || die
+
+ # The IcedTea ARM HotSpot port (as of 2.6.1) hangs when running
+ # jflex. We have patched jflex to fix it but we have to run the
+ # bundled version first. -Xint works around the problem. See
+ # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2678.
+ use arm && local JFLEX_ARGS="-Xint"
+
+ # First compile using the bundled jflex.
+ jflex_compile -cp "lib/${P}.jar:${JAVACUP}" ${JFLEX_ARGS}
+
+ # Then recompile using the fresh jflex.
+ jflex_compile -cp "${PN}.jar:${JAVACUP}"
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ java-pkg_dolauncher ${PN} --main ${PN}.Main
+
+ java-pkg_register-dependency javacup javacup-runtime.jar
+ use ant-task && java-pkg_register-ant-task
+
+ use examples && java-pkg_doexamples examples
+ dodoc {changelog,README}.md
+
+ if use doc; then
+ dodoc doc/*.pdf
+ docinto html
+ dodoc doc/*.{css,html,png} doc/COPYRIGHT
+ fi
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles/syntax
+ doins lib/${PN}.vim
+ fi
+}
+
+src_test() {
+ if use arm && java-pkg_current-vm-matches oracle-jdk-bin-1.8; then
+ # This results in a StackOverflowError as of 1.8.0.65 but works
+ # fine on icedtea:7. Don't know about icedtea:8 yet.
+ rm -v src/test/java/jflex/EmitterTest.java || die
+ fi
+
+ local CP="src/test/java:${PN}.jar:${JAVA_GENTOO_CLASSPATH_EXTRA}:$(java-pkg_getjars junit-4)"
+
+ local TESTS=$(find src/test/java -name "*Test*.java" -printf "%P\n")
+ TESTS="${TESTS//.java}"
+ TESTS="${TESTS//\//.}"
+
+ ejavac -classpath "${CP}" $(find src/test/java -name "*.java")
+ ejunit4 -classpath "${CP}" ${TESTS}
+}
diff --git a/dev-java/jflex/metadata.xml b/dev-java/jflex/metadata.xml
index e25b5c52aab3..15d291fa1282 100644
--- a/dev-java/jflex/metadata.xml
+++ b/dev-java/jflex/metadata.xml
@@ -6,5 +6,8 @@
<name>Java</name>
</maintainer>
+ <use>
+ <flag name="ant-task">Build and register the ant-task</flag>
+ </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/qdox/metadata.xml b/dev-java/qdox/metadata.xml
index aed5d40d09e7..8efe2fc79933 100644
--- a/dev-java/qdox/metadata.xml
+++ b/dev-java/qdox/metadata.xml
@@ -10,5 +10,8 @@
definitions from source files complete with JavaDoc @tags.
</longdescription>
+ <use>
+ <flag name="ant-task">Build the ant-task</flag>
+ </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/qdox/qdox-1.12.1-r4.ebuild b/dev-java/qdox/qdox-1.12.1-r5.ebuild
index cf1dc1eeb7d5..a4419f6cf68e 100644
--- a/dev-java/qdox/qdox-1.12.1-r4.ebuild
+++ b/dev-java/qdox/qdox-1.12.1-r5.ebuild
@@ -11,31 +11,35 @@ inherit java-pkg-2
DESCRIPTION="Parser for extracting class/interface/method definitions"
HOMEPAGE="https://github.com/codehaus/qdox"
SRC_URI="https://github.com/codehaus/qdox/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${PN}-${PV}"
LICENSE="Apache-2.0"
SLOT="1.12"
KEYWORDS="amd64 ~arm arm64 ppc64 x86 ~ppc-macos ~x64-macos"
+IUSE="ant-task"
+REQUIRED_USE="test? ( ant-task )"
-S="${WORKDIR}/${PN}-${PN}-${PV}"
-
-CDEPEND=">=dev-java/ant-1.10.14-r3:0"
-
-DEPEND=">=virtual/jdk-1.8:*
+DEPEND="
+ >=virtual/jdk-1.8:*
dev-java/byaccj:0
- >=dev-java/jflex-1.6.1:0
+ dev-java/jflex:0
dev-java/jmock:1.0
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )
test? ( dev-java/junit:0 )
- ${CDEPEND}"
+"
-RDEPEND=">=virtual/jre-1.8:*
- ${CDEPEND}"
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ant-task? ( >=dev-java/ant-1.10.14-r3:0 )
+"
PATCHES=(
"${FILESDIR}/jflex-1.6.1.patch"
)
src_prepare() {
- default
+ default #780585
+ java-pkg-2_src_prepare
if ! use test ; then
rm src/java/com/thoughtworks/qdox/tools/QDoxTester.java
@@ -52,12 +56,18 @@ src_compile() {
# create jar
mkdir -p build/classes || die
- local cp="$(java-pkg_getjars --build-only ant,jmock-1.0)"
+ local cp="$(java-pkg_getjars --build-only jmock-1.0)"
if use test ; then
cp="${cp}:$(java-pkg_getjars --build-only junit)"
fi
+ if use ant-task ; then
+ cp="${cp}:$(java-pkg_getjars --build-only ant)"
+ else
+ rm src/java/com/thoughtworks/qdox/ant/AbstractQdoxTask.java || die
+ fi
+
ejavac -sourcepath . -d build/classes -classpath "${cp}" \
$(find . -name "*.java") || die "Cannot compile sources"