summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/jdtls-bin/Manifest1
-rw-r--r--dev-java/jdtls-bin/files/wrapper31
-rw-r--r--dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild53
-rw-r--r--dev-java/jdtls-bin/metadata.xml13
4 files changed, 98 insertions, 0 deletions
diff --git a/dev-java/jdtls-bin/Manifest b/dev-java/jdtls-bin/Manifest
new file mode 100644
index 000000000000..c79af1f22f78
--- /dev/null
+++ b/dev-java/jdtls-bin/Manifest
@@ -0,0 +1 @@
+DIST jdtls-1.49.0_p202507030451.tar.gz 49052555 BLAKE2B 62bfc716129584fe1e9d1178b2627f3f3459a11824662ae4536aacaaf74b7dcb1f550fe37d3c358ec752926de46ee94c111757322cc05b9147bfacc2394c3397 SHA512 501e628c3bae38fa18ce9c0e88fa4c8d9cd82f2d5de9bf6586bd6efd537d1343ab7f00f05af4c200208bc6446435ce4ba02d84591d21734534092f6e37b85a38
diff --git a/dev-java/jdtls-bin/files/wrapper b/dev-java/jdtls-bin/files/wrapper
new file mode 100644
index 000000000000..152f48520bba
--- /dev/null
+++ b/dev-java/jdtls-bin/files/wrapper
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+share_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/@PKGNAME@"
+state_dir="${XDG_STATE_HOME:-${HOME}/.local/state}/@PKGNAME@"
+
+workspace_dir="${state_dir}/$(pwd | sha1sum | cut -d' ' -f1)"
+
+mkdir -p "${workspace_dir}"
+
+if [ ! -d "${share_dir}" ]; then
+ cp -R /usr/share/@PKGNAME@/config_linux "${share_dir}"
+fi
+
+cd "/usr/libexec/@PKGNAME@"
+
+exec java \
+ -Declipse.application=org.eclipse.jdt.ls.core.id1 \
+ -Dosgi.bundles.defaultStartLevel=4 \
+ -Declipse.product=org.eclipse.jdt.ls.core.product \
+ -Dlog.protocol=true \
+ -Dlog.level=ALL \
+ -Dfile.encoding=utf-8 \
+ -Xmx1G \
+ --add-modules=ALL-SYSTEM \
+ --add-opens java.base/java.util=ALL-UNNAMED \
+ --add-opens java.base/java.lang=ALL-UNNAMED \
+ -jar ./plugins/org.eclipse.equinox.launcher_*.jar \
+ -configuration ${share_dir} \
+ -data "${workspace_dir}" \
+ "$@"
+
diff --git a/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild b/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild
new file mode 100644
index 000000000000..883f10b72c2e
--- /dev/null
+++ b/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2023 Gabriel Sanches
+# Distributed under the terms of the Zero-Clause BSD License
+
+EAPI=8
+
+inherit java-pkg-2
+
+MY_PV=${PV/_p/-}
+MY_PN=${PN%%-bin}
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Java language server"
+SRC_URI="https://download.eclipse.org/jdtls/snapshots/jdt-language-server-${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/eclipse/eclipse.jdt.ls"
+
+LICENSE="EPL"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND=">=virtual/jre-1.8:*"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+JDTLS_LIBEXEC="/usr/libexec/${MY_PN}"
+JDTLS_SHARE="/usr/share/${MY_PN}"
+
+JDTLS_WRAPPER="${FILESDIR}/wrapper"
+
+src_install() {
+ dodir "${JDTLS_LIBEXEC}/bin"
+ dodir "${JDTLS_SHARE}"
+
+ cp -Rp plugins features "${ED}/${JDTLS_LIBEXEC}" || die "failed to copy"
+ cp -Rp bin/${MY_PN} "${ED}/${JDTLS_LIBEXEC}/bin" || die "failed to copy"
+ cp -Rp config_linux "${ED}/${JDTLS_SHARE}" || die "failed to copy"
+
+ sed ${JDTLS_WRAPPER} -e "s;@PKGNAME@;${MY_PN};g" > wrapper
+ dodir /usr/bin
+ newbin wrapper ${MY_PN}
+}
+
+pkg_postinst() {
+ elog "If the JDT Language Server fails to start (e.g. ClassNotFoundException),"
+ elog "you may be running into stale Eclipse OSGi cache issues."
+ elog
+ elog "To fix this, remove the following directories:"
+ elog " rm -rf \"\${XDG_DATA_HOME}/jdtls\" or rm -rf \"~/.local/share/jdtls\""
+ elog " rm -rf \"\${XDG_STATE_HOME}/jdtls\" or rm -rf \"~/.local/state/jdtls\""
+ elog
+ elog "They will be recreated cleanly on the next launch."
+}
+
diff --git a/dev-java/jdtls-bin/metadata.xml b/dev-java/jdtls-bin/metadata.xml
new file mode 100644
index 000000000000..170145138c6c
--- /dev/null
+++ b/dev-java/jdtls-bin/metadata.xml
@@ -0,0 +1,13 @@
+<?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>
+ <maintainer type="person">
+ <email>dangduong31205@gmail.com</email>
+ <name>Nguyen Dinh Dang Duong</name>
+ </maintainer>
+
+ <origin>gentoo-guru-overlay</origin>
+</pkgmetadata> \ No newline at end of file