summaryrefslogtreecommitdiff
path: root/dev-java/velocity/velocity-2.3_p20240314.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/velocity/velocity-2.3_p20240314.ebuild')
-rw-r--r--dev-java/velocity/velocity-2.3_p20240314.ebuild108
1 files changed, 108 insertions, 0 deletions
diff --git a/dev-java/velocity/velocity-2.3_p20240314.ebuild b/dev-java/velocity/velocity-2.3_p20240314.ebuild
new file mode 100644
index 000000000000..9fc3d0f5f420
--- /dev/null
+++ b/dev-java/velocity/velocity-2.3_p20240314.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2024 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.velocity:velocity-engine-core:2.3"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Apache Velocity is a general purpose template engine"
+HOMEPAGE="https://velocity.apache.org"
+MY_COMMIT="86cfcf41105f8a25db11ca6483e33c20fc0804d9"
+SRC_URI="https://github.com/apache/${PN}-engine/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-engine-${MY_COMMIT}/${PN}-engine-core"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64"
+
+CP_DEPEND="
+ >=dev-java/commons-io-2.8.0:1
+ >=dev-java/commons-lang-3.11:3.6
+ >=dev-java/slf4j-api-1.7.30:0
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+ ${CP_DEPEND}
+ test? (
+ dev-db/hsqldb:0
+ >=dev-java/slf4j-simple-1.7.30:0
+ )
+"
+RDEPEND="
+ >=virtual/jre-1.8:*
+ ${CP_DEPEND}
+"
+JAVACC_SLOT="7.0.13"
+BDEPEND="dev-java/javacc:${JAVACC_SLOT}"
+
+JAVA_RESOURCE_DIRS="src/main/resources"
+JAVA_SRC_DIR="src/main/java"
+JAVA_TEST_EXTRA_ARGS="-Dtest.compare.dir=target/test-classes -Dtest.result.dir=results"
+JAVA_TEST_GENTOO_CLASSPATH="junit-4,hsqldb,slf4j-simple"
+JAVA_TEST_RESOURCE_DIRS="src/test/resources"
+JAVA_TEST_SRC_DIR="src/test/java"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ sed -e "s/\${project.version}/${PV}/" \
+ src/main/java-templates/org/apache/velocity/runtime/VelocityEngineVersion.java > \
+ src/main/java/org/apache/velocity/runtime/VelocityEngineVersion.java || die
+
+ sed -i \
+ -e 's/\${parser.basename}/Standard/g' \
+ -e 's/\${parser.package}/org.apache.velocity.runtime.parser/g' \
+ -e 's/\${parser.char.asterisk}/\*/g' \
+ -e 's/\${parser.char.at}/\@/g' \
+ -e 's/\${parser.char.dollar}/\$/g' \
+ -e 's/\${parser.char.hash}/\#/g' \
+ "${S}/src/main/parser/Parser.jjt" || die
+
+ # File "StandardParserTreeConstants.java" does not exist. Will create one.
+ # File "StandardParserVisitor.java" does not exist. Will create one.
+ # File "JJTStandardParserState.java" does not exist. Will create one.
+ "jjtree-${JAVACC_SLOT}" -GRAMMAR_ENCODING=UTF-8 \
+ -JDK_VERSION=1.8 \
+ -BUILD_NODE_FILES=false \
+ -MULTI=true \
+ -NODE_PACKAGE=org.apache.velocity.runtime.parser.node \
+ -NODE_USES_PARSER=true \
+ -STATIC=false \
+ -OUTPUT_DIRECTORY="${JAVA_SRC_DIR}/org/apache/velocity/runtime/parser/node" \
+ "${S}/src/main/parser/Parser.jjt" \
+ || die "Code generation via jjtree failed"
+
+ "javacc-${JAVACC_SLOT}" -GRAMMAR_ENCODING=UTF-8 \
+ -JDK_VERSION=1.8 \
+ -STATIC=false \
+ -DEBUG_PARSER=false \
+ -DEBUG_LOOKAHEAD=false \
+ -DEBUG_TOKEN_MANAGER=false \
+ -BUILD_PARSER=true \
+ -TOKEN_MANAGER_USES_PARSER=true \
+ -OUTPUT_DIRECTORY="${JAVA_SRC_DIR}" \
+ "${JAVA_SRC_DIR}/org/apache/velocity/runtime/parser/node/Parser.jj" \
+ || die "Parser.java code generation via javacc failed"
+
+ # Avoid "error: duplicate class: org.apache.velocity.runtime.parser...."
+ rm -v "${JAVA_SRC_DIR}/CharStream.java" || die "cannot remove 'CharStream.java'"
+ rm -v "${JAVA_SRC_DIR}/ParseException.java" || die "cannot remove 'ParseException.java'"
+}
+
+src_test() {
+ pushd src/test/java || die
+ # DataSourceResourceLoaderTestCase.java requires configured jdbc
+ local JAVA_TEST_RUN_ONLY=$(find * \
+ -name "*TestCase.java" \
+ ! -name "BaseTestCase.java" \
+ ! -name "DataSourceResourceLoaderTestCase.java" \
+ )
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
+ JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
+ popd
+ java-pkg-simple_src_test
+}