summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/bnd-ant/Manifest1
-rw-r--r--dev-java/bnd-ant/bnd-ant-7.0.0.ebuild46
-rw-r--r--dev-java/bnd-ant/metadata.xml9
-rw-r--r--dev-java/bnd/Manifest1
-rw-r--r--dev-java/bnd/bnd-7.0.0.ebuild100
-rw-r--r--dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch21
-rw-r--r--dev-java/bnd/metadata.xml9
-rw-r--r--dev-java/eclipse-ecj/Manifest1
-rw-r--r--dev-java/eclipse-ecj/eclipse-ecj-4.20.ebuild64
-rw-r--r--dev-java/eclipse-ecj/files/ecj-4.207
-rw-r--r--dev-java/eclipse-ecj/metadata.xml3
-rw-r--r--dev-java/javacc/Manifest1
-rw-r--r--dev-java/javacc/javacc-7.0.4.ebuild66
-rw-r--r--dev-java/javaparser-core/Manifest1
-rw-r--r--dev-java/javaparser-core/javaparser-core-3.13.10.ebuild45
-rw-r--r--dev-java/javaparser-core/metadata.xml9
16 files changed, 381 insertions, 3 deletions
diff --git a/dev-java/bnd-ant/Manifest b/dev-java/bnd-ant/Manifest
new file mode 100644
index 000000000000..a890570b45c8
--- /dev/null
+++ b/dev-java/bnd-ant/Manifest
@@ -0,0 +1 @@
+DIST aQute.bnd-7.0.0.tar.gz 172496438 BLAKE2B a2e443b0e4a2eb278a8e1df86456fea22ffb8147adc00c9f300cbd32b226218bb64ccca3da3bcd0d79b07567a7b4cf4456b96224d6abf59486fa08ca6170d0ba SHA512 11d34a7d1a9b2fb2e8c112d414a06c281ccde9a7b06c62043e19d83e85ea64fdf022dd4493a14dd2dcf6adee392a1e9bf1ab05a6d690a328f29d7019045bca8c
diff --git a/dev-java/bnd-ant/bnd-ant-7.0.0.ebuild b/dev-java/bnd-ant/bnd-ant-7.0.0.ebuild
new file mode 100644
index 000000000000..31d39dcbde50
--- /dev/null
+++ b/dev-java/bnd-ant/bnd-ant-7.0.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="biz.aQute.bnd:biz.aQute.bnd.ant:${PV}"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Bnd Ant Tasks"
+HOMEPAGE="https://bnd.bndtools.org/"
+SRC_URI="https://github.com/bndtools/bnd/archive/${PV}.tar.gz -> aQute.bnd-${PV}.tar.gz"
+S="${WORKDIR}/bnd-${PV}"
+
+LICENSE="Apache-2.0 EPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-java/ant:0
+ dev-java/bnd:0
+ >=virtual/jdk-17:*"
+RDEPEND=">=virtual/jre-17:*"
+
+JAVA_AUTOMATIC_MODULE_NAME="biz.aQute.bnd.ant"
+JAVA_CLASSPATH_EXTRA="
+ ant
+ bnd
+"
+
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR="biz.aQute.bnd.ant/src"
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+ mkdir res || die
+
+ # java-pkg-simple wants resources in JAVA_RESOURCE_DIRS
+ pushd biz.aQute.bnd.ant/src > /dev/null || die
+ find -type f \
+ ! -name '*.java' \
+ | xargs cp --parent -t ../../res || die
+ popd > /dev/null || die
+}
diff --git a/dev-java/bnd-ant/metadata.xml b/dev-java/bnd-ant/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/bnd-ant/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/bnd/Manifest b/dev-java/bnd/Manifest
new file mode 100644
index 000000000000..a890570b45c8
--- /dev/null
+++ b/dev-java/bnd/Manifest
@@ -0,0 +1 @@
+DIST aQute.bnd-7.0.0.tar.gz 172496438 BLAKE2B a2e443b0e4a2eb278a8e1df86456fea22ffb8147adc00c9f300cbd32b226218bb64ccca3da3bcd0d79b07567a7b4cf4456b96224d6abf59486fa08ca6170d0ba SHA512 11d34a7d1a9b2fb2e8c112d414a06c281ccde9a7b06c62043e19d83e85ea64fdf022dd4493a14dd2dcf6adee392a1e9bf1ab05a6d690a328f29d7019045bca8c
diff --git a/dev-java/bnd/bnd-7.0.0.ebuild b/dev-java/bnd/bnd-7.0.0.ebuild
new file mode 100644
index 000000000000..b847142719c7
--- /dev/null
+++ b/dev-java/bnd/bnd-7.0.0.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="biz.aQute.bnd:biz.aQute.bnd:${PV}"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="bndlib: A Swiss Army Knife for OSGi"
+HOMEPAGE="https://bnd.bndtools.org/"
+SRC_URI="https://github.com/bndtools/bnd/archive/${PV}.tar.gz -> aQute.bnd-${PV}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="Apache-2.0 EPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="app-arch/zip"
+
+CP_DEPEND="
+ ~dev-java/bndlib-${PV}:0
+ dev-java/felix-resolver:0
+ dev-java/guava:0
+ dev-java/javaparser-core:0
+ dev-java/jline:2
+ dev-java/jtwig-core:0
+ dev-java/osgi-annotation:0
+ dev-java/osgi-cmpn:8
+ dev-java/osgi-core:0
+ dev-java/slf4j-simple:0
+ dev-java/snakeyaml:0
+ dev-java/xz-java:0
+"
+
+DEPEND="${CP_DEPEND}
+ dev-java/commons-lang:3.6
+ dev-java/eclipse-jdt-annotation:0
+ dev-java/felix-gogo-runtime:0
+ dev-java/slf4j-api:0
+ dev-java/jtwig-reflection:0
+ dev-java/osgi-service-log:0
+ dev-java/osgi-service-subsystem:0
+ >=virtual/jdk-17:*"
+
+RDEPEND="${CP_DEPEND}
+ >=virtual/jre-17:*"
+
+PATCHES=(
+ "${FILESDIR}/bnd-7.0.0-aQute.bnd.main.bnd.patch"
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="biz.aQute.bnd"
+JAVA_CLASSPATH_EXTRA="
+ commons-lang-3.6
+ eclipse-jdt-annotation
+ jtwig-reflection
+ felix-gogo-runtime
+ osgi-service-subsystem
+ slf4j-api
+"
+JAVA_MAIN_CLASS="aQute.bnd.main.bnd"
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR=(
+ "biz.aQute.bnd.exporters/src"
+ "biz.aQute.bnd.reporter/src"
+ "biz.aQute.bnd/src"
+ "biz.aQute.remote/src"
+ "biz.aQute.repository/src"
+ "biz.aQute.resolve/src"
+)
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+ mkdir res || die
+
+ # java-pkg-simple wants resources in JAVA_RESOURCE_DIRS
+ pushd biz.aQute.bnd/src > /dev/null || die
+ find -type f \
+ ! -name '*.java' \
+ | xargs cp --parent -t ../../res || die
+ popd > /dev/null || die
+}
+
+src_compile() {
+ # There is another version of osgi-service-log in osgi-core-0
+ JAVA_GENTOO_CLASSPATH_EXTRA=":$(java-pkg_getjars --build-only osgi-service-log)"
+ java-pkg-simple_src_compile
+
+ # remove classes which are not in upstream's jar file
+ zip -d ${PN}.jar \
+ "*/remote/agent/*" \
+ "*/remote/embedded/*" \
+ "*/remote/main/*" \
+ "*/remote/plugin/*" \
+ "*/remote/test/*" \
+ || die
+}
diff --git a/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch b/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch
new file mode 100644
index 000000000000..6d37cbc9f7d6
--- /dev/null
+++ b/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch
@@ -0,0 +1,21 @@
+Upstream uses an older version of slf4j-simple
+--- a/biz.aQute.bnd/src/aQute/bnd/main/bnd.java
++++ b/biz.aQute.bnd/src/aQute/bnd/main/bnd.java
+@@ -486,14 +486,14 @@ public class bnd extends Processor {
+ System.setProperty(DEFAULT_LOG_LEVEL_KEY, "warn");
+ level = org.slf4j.spi.LocationAwareLogger.WARN_INT;
+ }
+- Field field = org.slf4j.impl.SimpleLogger.class.getDeclaredField("CONFIG_PARAMS");
++ Field field = org.slf4j.simple.SimpleLogger.class.getDeclaredField("CONFIG_PARAMS");
+ field.setAccessible(true);
+ Object CONFIG_PARAMS = field.get(null);
+- field = org.slf4j.impl.SimpleLoggerConfiguration.class.getDeclaredField("defaultLogLevel");
++ field = org.slf4j.simple.SimpleLoggerConfiguration.class.getDeclaredField("defaultLogLevel");
+ field.setAccessible(true);
+ field.set(CONFIG_PARAMS, level);
+
+- field = org.slf4j.impl.SimpleLogger.class.getDeclaredField("currentLogLevel");
++ field = org.slf4j.simple.SimpleLogger.class.getDeclaredField("currentLogLevel");
+ field.setAccessible(true);
+ field.set(logger, level);
+ } catch (Exception e) {
diff --git a/dev-java/bnd/metadata.xml b/dev-java/bnd/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/bnd/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/eclipse-ecj/Manifest b/dev-java/eclipse-ecj/Manifest
index b68a29378f06..81bfdcd45d4d 100644
--- a/dev-java/eclipse-ecj/Manifest
+++ b/dev-java/eclipse-ecj/Manifest
@@ -1,3 +1,4 @@
DIST ecjsrc-4.15.jar 2166228 BLAKE2B 794e0ba1a19b325e2dd8ad0b288ccbe04866627670b50d39dd327c13fe1fac56200eb3a6c1c3d1af043cad795508b9b714a5243049671414b5a62a97725d3297 SHA512 ada55b2522cf26570f0cd43f415eb5cf20e6840f83dadc72e1ae474ebf10eadca73f9fa3d1db51e13fd2762c38cd3e3567db3c7840d43ae3d8665ebe35e1889d
+DIST ecjsrc-4.20.jar 2255761 BLAKE2B 42e16e1bd3d90b8d9bf3e57f83b3e06f2857a20db3e3ac065ce39e95fc47e75de33186115c36dede691bc37fd55fa8123f2220d13f3d5819404f5de702b10fd2 SHA512 fb27c0a37ed5cdfdcdbc904d067bfdd0477ddfd873a6cd8477d3b473734fd0e37329f0e9ab85dc5f89994d68d9886a488bd88568bc00e25f54c1a5a468dc1384
DIST ecjsrc-4.26.jar 2347137 BLAKE2B 22e627178fe35f34cee7ba63e740ef2699bca691d460c81e97c2f18c197042cc0d901eea988331b3fa2ac7daa87daef9ee90bc1e62901935a6f2f3fe5f1e8534 SHA512 e53534160e6a2cdc8c5db7caec617d5671eb59954a86b9dcb36a514024c3205167c8416560796ce61d1aa188f551660f3bfd8eab46fefe9111c8f0b7a977342f
DIST ecjsrc-4.30.jar 2330181 BLAKE2B 7f3ba7f8dbfcaea9f8bbcdb8161ae8f164e2bf3469cf2242b6b7df5d375c98322f810b9c6de7209f622740a2cc61704915d255559bd376bf158b114e30a17d40 SHA512 ddc1569082fad0dcf91a9d41d5ef5f2f694f007e1378af5f5f28893aeb91e99acef91af59c762010eba071fa8b8b8a9d367b08e23f91b8c73ceacc6e6150bb23
diff --git a/dev-java/eclipse-ecj/eclipse-ecj-4.20.ebuild b/dev-java/eclipse-ecj/eclipse-ecj-4.20.ebuild
new file mode 100644
index 000000000000..81da64f7b218
--- /dev/null
+++ b/dev-java/eclipse-ecj/eclipse-ecj-4.20.ebuild
@@ -0,0 +1,64 @@
+# 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 prefix
+
+DMF="R-${PV/_rc/RC}-202106111600"
+
+DESCRIPTION="Eclipse Compiler for Java"
+HOMEPAGE="https://www.eclipse.org/"
+SRC_URI="https://archive.eclipse.org/eclipse/downloads/drops4/${DMF}/ecjsrc-${PV/_rc/RC}.jar"
+
+LICENSE="EPL-1.0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+SLOT="4.20"
+
+BDEPEND="app-arch/unzip"
+COMMON_DEP="app-eselect/eselect-java"
+DEPEND="${COMMON_DEP}
+ dev-java/ant:0
+ >=virtual/jdk-11:*"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.8:*"
+
+HTML_DOCS=( about.html )
+
+JAVA_AUTOMATIC_MODULE_NAME="org.eclipse.jdt.core.compiler.batch"
+JAVA_CLASSPATH_EXTRA="ant"
+JAVA_JAR_FILENAME="ecj.jar"
+JAVA_LAUNCHER_FILENAME="ecj-${SLOT}"
+JAVA_MAIN_CLASS="org.eclipse.jdt.internal.compiler.batch.Main"
+JAVA_RESOURCE_DIRS="res"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ # Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
+ rm META-INF/ECLIPSE_* || die
+ mkdir "${JAVA_RESOURCE_DIRS}" || die
+ find -type f \
+ ! -name '*.java' \
+ | xargs cp --parent -t "${JAVA_RESOURCE_DIRS}" || die
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ insinto /usr/share/java-config-2/compiler
+ doins "${FILESDIR}/ecj-${SLOT}"
+ eprefixify "${ED}"/usr/share/java-config-2/compiler/ecj-${SLOT}
+}
+
+pkg_postinst() {
+ einfo "To select between slots of ECJ..."
+ einfo " # eselect ecj"
+
+ eselect ecj update ecj-${SLOT}
+}
+
+pkg_postrm() {
+ eselect ecj update
+}
diff --git a/dev-java/eclipse-ecj/files/ecj-4.20 b/dev-java/eclipse-ecj/files/ecj-4.20
new file mode 100644
index 000000000000..c6ecf2c0deeb
--- /dev/null
+++ b/dev-java/eclipse-ecj/files/ecj-4.20
@@ -0,0 +1,7 @@
+JAVAC="@GENTOO_PORTAGE_EPREFIX@/usr/bin/ecj-4.20"
+PACKAGE="=dev-java/eclipse-ecj-4.20*"
+SUPPORTED_TARGET="1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 9 10 11 12 13 14 15 16 17 18 19"
+SUPPORTED_SOURCE="1.3 1.4 1.5 1.6 1.7 1.8 9 10 11 12 13 14 15 16 17 18 19"
+ANT_BUILD_COMPILER="org.eclipse.jdt.core.JDTCompilerAdapter"
+ANT_BUILD_COMPILER_DEPS="eclipse-ecj-4.20"
+GENERATION="2"
diff --git a/dev-java/eclipse-ecj/metadata.xml b/dev-java/eclipse-ecj/metadata.xml
index 3d45985650d0..5da6f010ea77 100644
--- a/dev-java/eclipse-ecj/metadata.xml
+++ b/dev-java/eclipse-ecj/metadata.xml
@@ -13,8 +13,5 @@ used with Ant by using the -lib option to and and setting
-Dbuild.compiler=ecj
</longdescription>
- <use>
- <flag name="ant">Support using ecj in Ant builds via <pkg>dev-java/ant-eclipse-ecj</pkg></flag>
- </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-java/javacc/Manifest b/dev-java/javacc/Manifest
index 274566ef1c7d..40170f014cc9 100644
--- a/dev-java/javacc/Manifest
+++ b/dev-java/javacc/Manifest
@@ -1,2 +1,3 @@
DIST javacc-4.1.tar.gz 769476 BLAKE2B c2a22fa78ff4dcf1e36221a23ca1e3cd1eecb473a59ea94ce52e298673f6bd18c0ea0cf757dd68885696ebc8cc724d271c69c923a21ffa433d03c1062b1201ee SHA512 911e5e9f062561ade1748dcef3596e0f25c399c4d52dd174773783dadf24a4ceea8d3feab9ab08880370677959051d8557aed815d4c4184f5ecd5789ee8a5754
DIST javacc-5.0src.tar.gz 810123 BLAKE2B 6833e79a33c7ae8b28902d1c372162a2f9e326629f0d4c1936a8c3638d3aa3f6bd5713aca8398ba5f1ff963fe585eb683fcd3009602ee592ba79692c8ba0f3d6 SHA512 91896a0affac1c4fd00a093a731dfd02bda548d1a4d83e1077ed36a67f4f9deab0ce9f2d0212fd4c08ab00065d3029533adbafbc026a22ca071285093bd3bba6
+DIST javacc-7.0.4.tar.gz 2842349 BLAKE2B e5a2e24c99e5e3883270cf0e3931d7667e5b5b49a11c1d9b79b98767f74f4addf2dc7d3d620550bc1b5bb0bfbef8bf07af48a40d250d0902d97c8215f6cb8e01 SHA512 b93c93e8490aae9a26b0de948896ec6d7a044c205d09584c3908988e24a3ea63a1147365115b17a15c6fb311c44f53ddff7c11f092731cbd05d3ec1950ef57f1
diff --git a/dev-java/javacc/javacc-7.0.4.ebuild b/dev-java/javacc/javacc-7.0.4.ebuild
new file mode 100644
index 000000000000..12b83bfddd3d
--- /dev/null
+++ b/dev-java/javacc/javacc-7.0.4.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc examples source test"
+MAVAN_ID="net.java.dev.javacc:javacc:${PV}"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="Java Compiler Compiler - The Java Parser Generator"
+HOMEPAGE="https://javacc.github.io/javacc/"
+SRC_URI="https://github.com/javacc/javacc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="7.0.4"
+KEYWORDS="~amd64"
+
+DEPEND="
+ >=virtual/jdk-1.8:*
+ test? ( >=dev-java/ant-1.10.14:0[junit] )"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=(
+ README
+ javacc-releases.notes
+ jjdoc-releases.notes
+ jjtree-releases.notes
+ release.notes
+)
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ java-pkg_clean ! -path "./bootstrap/*"
+}
+
+src_test() {
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_dojar "target/${PN}.jar"
+
+ if use doc; then
+ java-pkg_dohtml -r www/*
+ java-pkg_dojavadoc target/javadoc
+ fi
+
+ use examples && java-pkg_doexamples examples
+ use source && java-pkg_dosrc src/*
+
+ echo "JAVACC_HOME=${EPREFIX}/usr/share/javacc/" > "${T}"/22javacc-${SLOT} || die
+ doenvd "${T}"/22javacc-${SLOT}
+
+ echo "export VERSION=${PV}" > "${T}"/pre || die
+
+ local launcher
+ for launcher in javacc jjdoc jjtree; do
+ java-pkg_dolauncher ${launcher}-${SLOT} -pre "${T}"/pre --main ${launcher}
+ done
+
+ einstalldocs
+}
diff --git a/dev-java/javaparser-core/Manifest b/dev-java/javaparser-core/Manifest
new file mode 100644
index 000000000000..44d5620a8988
--- /dev/null
+++ b/dev-java/javaparser-core/Manifest
@@ -0,0 +1 @@
+DIST javaparser-3.13.10.tar.gz 7043664 BLAKE2B 5d2e35cfa22dbcb425365e2e7806c46b989b92a84472fbd80d42716fbb2a5ddcad2daec6214be689b1dcc6541890527e422953c083e713e9f1d22ce5b3035e90 SHA512 b90a6b7b2fbb6a13cc36cdd17acd09a22adb9e62311862c2a67a9ea339b98e245c93ba371645e3c695e76966b21e3bc01accf040482e30b2b6882a5569db5806
diff --git a/dev-java/javaparser-core/javaparser-core-3.13.10.ebuild b/dev-java/javaparser-core/javaparser-core-3.13.10.ebuild
new file mode 100644
index 000000000000..a1b31fd5fcca
--- /dev/null
+++ b/dev-java/javaparser-core/javaparser-core-3.13.10.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="com.github.javaparser:javaparser-core:3.13.10"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Java 1-17 Parser and Abstract Syntax Tree for Java"
+HOMEPAGE="https://javaparser.org/"
+SRC_URI="https://github.com/javaparser/javaparser/archive/v${PV}.tar.gz -> javaparser-${PV}.tar.gz"
+S="${WORKDIR}/javaparser-${PV}"
+
+LICENSE="Apache-2.0 LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+JAVACC_SLOT="7.0.4"
+
+BDEPEND="dev-java/javacc:7.0.4"
+# Does not compile with Java 21
+DEPEND="<=virtual/jdk-17:*"
+RDEPEND=">=virtual/jre-1.8:*"
+
+DOCS=( CONTRIBUTING.md changelog.md readme.md )
+
+JAVA_AUTOMATIC_MODULE_NAME="com.github.javaparser.core"
+JAVA_SRC_DIR=(
+ "${PN}/src/main/java"
+ "${PN}/src/main/java-templates"
+ "${PN}/src/main/javacc-support"
+)
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ mkdir -p "${PN}/src/main/java/com/github/javaparser"
+ javacc-${JAVACC_SLOT} -GRAMMAR_ENCODING=UTF-8 \
+ -JDK_VERSION=1.8 \
+ -OUTPUT_DIRECTORY="${PN}/src/main/java/com/github/javaparser" \
+ "javaparser-core/src/main/javacc/java.jj" \
+ || die "Code generation with java.jj failed"
+}
diff --git a/dev-java/javaparser-core/metadata.xml b/dev-java/javaparser-core/metadata.xml
new file mode 100644
index 000000000000..a63267abaf71
--- /dev/null
+++ b/dev-java/javaparser-core/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file