You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.4 KiB
109 lines
3.4 KiB
2 months ago
|
# 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
|
||
|
}
|