Skip to content

Commit 0907fc7

Browse files
committed
switch to maven (still with the old lib version; poc)
1 parent 778f270 commit 0907fc7

8 files changed

Lines changed: 619 additions & 173 deletions

File tree

build.xml

Lines changed: 211 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1,167 +1,237 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project default="clean" basedir="." name="ehcache-extension">
3-
<description>
3+
<description>
44
Build EHCache Extension
55
</description>
66
<!-- set global properties for this build -->
7+
8+
<property name="lib" location="source/java/libs"/>
9+
<property name="src" location="source/java/src"/>
10+
<property name="srcImg" location="source/images"/>
11+
<property name="srcContext" location="source/CFML/src/context"/>
12+
<property name="temp" location="temp"/>
13+
<property name="build" location="build"/>
14+
<property name="dist" location="target"/>
15+
<path id="classpath">
16+
<fileset dir="${lib}">
17+
<include name="**/*.jar" />
18+
</fileset>
19+
</path>
20+
21+
22+
23+
24+
<target name="init">
25+
<!-- Create the time stamp -->
26+
<tstamp/>
27+
28+
<delete dir="${temp}"/>
29+
<delete dir="${dist}"/>
30+
<!-- Create the build directory structure used by compile -->
31+
<mkdir dir="${temp}"/>
32+
<mkdir dir="${build}"/>
33+
<mkdir dir="${dist}/"/>
34+
</target>
35+
36+
<target name="maven-build">
37+
38+
<condition property="is.deploy" value="true" else="false">
39+
<equals arg1="${maven.goal}" arg2="deploy"/>
40+
</condition>
41+
42+
<!-- Check if artifact already exists in Maven Central -->
43+
<condition property="artifact.exists">
44+
<and>
45+
<equals arg1="${is.deploy}" arg2="true"/>
46+
<http url="https://repo1.maven.org/maven2/${jarGroupPath}/${jarArtifactId}/${version}/${jarArtifactId}-${version}.pom"/>
47+
</and>
48+
</condition>
49+
50+
<!-- Set effective goal based on whether artifact exists -->
51+
<condition property="effective.goal" value="install" else="${maven.goal}">
52+
<equals arg1="${artifact.exists}" arg2="true"/>
53+
</condition>
54+
55+
56+
<echo>goal:${maven.goal}</echo>
57+
<echo>effective.goal:${effective.goal}</echo>
58+
<echo>performRelease:${is.deploy}</echo>
59+
<echo>groupId:${jarGroupId}</echo>
60+
<echo>groupPath:${jarGroupPath}</echo>
61+
<echo>artifactId:${jarArtifactId}</echo>
62+
<echo>version:${version}</echo>
63+
64+
<exec dir="source/java" executable="mvn" failonerror="true">
65+
<arg value="clean"/>
66+
<arg value="${effective.goal}"/>
67+
<arg value="-Drevision=${version}"/>
68+
<arg value="-DperformRelease=${is.deploy}"/>
69+
<!-- <arg value="-X"/> Debug output -->
70+
<arg value="-e"/> <!-- Error details -->
71+
<arg value="--settings"/>
72+
<arg value="maven-settings.xml"/>
73+
<!-- Add credentials as system properties -->
74+
<arg value="-Dmaven.username=${maven.username}"/>
75+
<arg value="-Dmaven.password=${maven.password}"/>
76+
<arg value="-Dgpg.passphrase=${gpg.passphrase}"/>
77+
</exec>
78+
79+
<echo message="Maven output: ${maven.output}"/>
80+
<echo message="Maven error: ${maven.error}"/>
81+
82+
<!-- Now copy dependencies -->
83+
<exec dir="source/java" executable="mvn" failonerror="true">
84+
<arg value="-DoutputDirectory=${temp}/dependency"/>
85+
<arg value="-Dmdep.copyPom=true"/>
86+
<arg value="-Dmdep.useRepositoryLayout=true"/>
87+
<arg value="-DexcludeScope=provided"/>
88+
<arg value="-Drevision=${version}"/>
89+
<arg value="dependency:copy-dependencies"/>
90+
</exec>
91+
92+
<!-- Copy parent POMs automatically -->
93+
<exec executable="bash" failonerror="true">
94+
<arg value="${basedir}/copy-parent-poms.sh"/>
95+
<arg value="${temp}/dependency"/>
96+
</exec>
97+
98+
</target>
99+
100+
101+
<target name="copy-dependencies" depends="maven-build">
102+
<!-- Create maven directory in extension folder -->
103+
<mkdir dir="${dist}/extension/maven"/>
104+
105+
<!-- Copy the Maven-built JAR -->
106+
<copy todir="${dist}/extension/maven">
107+
<fileset dir="source/java/target">
108+
<include name="*.jar"/>
109+
<include name="*.pom"/>
110+
<exclude name="*-sources.jar"/>
111+
<exclude name="*-javadoc.jar"/>
112+
</fileset>
113+
</copy>
7114

8-
<property name="lib" location="source/java/libs"/>
9-
<property name="src" location="source/java/src"/>
10-
<property name="srcCFML" location="source/CFML/src"/>
11-
<property name="srcImg" location="source/images"/>
12-
<property name="temp" location="temp"/>
13-
<property name="build" location="build"/>
14-
<property name="dist" location="target"/>
15-
16-
<path id="classpath">
17-
<fileset dir="${lib}">
18-
<include name="**/*.jar" />
19-
</fileset>
20-
</path>
21-
22-
<target name="init">
23-
<!-- Create the time stamp -->
24-
<tstamp/>
115+
<!-- Copy POM from source location -->
116+
<copy file="source/java/pom.xml" tofile="${dist}/extension/maven/${jarArtifactId}-${version}.pom"/>
117+
118+
<!-- Ensure the target directory exists -->
119+
<mkdir dir="${dist}/extension/maven/org/lucee/${jarArtifactId}/${version}/" />
120+
121+
<!-- Move the files -->
122+
<move file="${dist}/extension/maven/${jarArtifactId}-${version}.jar"
123+
tofile="${dist}/extension/maven/org/lucee/${jarArtifactId}/${version}/${jarArtifactId}-${version}.jar" />
124+
<move file="${dist}/extension/maven/${jarArtifactId}-${version}.pom"
125+
tofile="${dist}/extension/maven/org/lucee/${jarArtifactId}/${version}/${jarArtifactId}-${version}.pom" />
25126

26-
<delete dir="${temp}"/>
27-
<delete dir="${dist}"/>
28127

29-
<!-- Create the build directory structure used by compile -->
30-
<mkdir dir="${temp}"/>
31-
<mkdir dir="${build}"/>
32-
<mkdir dir="${dist}/"/>
33128

34129

35-
</target>
36130

37131

38-
<target name="copy" depends="init" description="copy source file to temp" >
39-
<!-- copy the source -->
40-
<copy todir="${temp}">
41-
<fileset dir="${src}">
42-
<include name="**/*.java"/>
43-
</fileset>
132+
<!-- Copy all dependencies -->
133+
<copy todir="${dist}/extension/maven">
134+
<fileset dir="${temp}/dependency">
135+
<include name="**/*.jar"/>
136+
<include name="**/*.pom"/>
137+
</fileset>
44138
</copy>
139+
</target>
140+
45141

46142

47-
<tstamp>
48-
<format property="NOW" pattern="yyyy-MM-dd HH:mm:ss" />
49-
</tstamp>
50143

51-
<echo file="${dist}/extension/META-INF/MANIFEST.MF">Manifest-Version: 1.0
144+
145+
<target name="createManifest" depends="copy-dependencies" description="create MANIFEST.MF file" >
146+
<tstamp>
147+
<format property="NOW" pattern="yyyy-MM-dd HH:mm:ss" />
148+
</tstamp>
149+
<echo file="${dist}/extension/META-INF/MANIFEST.MF">Manifest-Version: 1.0
52150
Built-Date: ${NOW}
53-
version: "${bundleversion}"
151+
version: "${version}"
54152
id: "${id}"
55153
groupId: "${groupId}"
56154
artifactId: "${artifactId}"
57155
name: "${label}"
58156
description: "${description}"
59-
lucee-core-version: "5.0.0.230"
157+
lucee-core-version: "${luceeCoreVersion}"
60158
start-bundles: false
61-
release-type: server
62-
cache: "[{'class':'${class}','bundleName':'${bundlename}','bundleVersion':'${bundleversion}'}]"
159+
cache: "[{'class':'${class}','maven':'${jarGroupId}:${jarArtifactId}:${version}'}]"
63160
</echo>
64-
</target>
161+
</target>
65162

66-
67-
68-
<target name="compile" depends="copy"
69-
description="compile the source " >
70-
<!-- Compile ACF-Infinspan source -->
71-
<javac srcdir="${temp}" target="11" source="11" destdir="${build}" debug="true" debuglevel="lines,vars,source">
72-
<classpath refid="classpath" />
73-
</javac>
74-
</target>
75-
76-
<target name="dist" depends="compile"
77-
description="generate the distribution" >
78-
79-
80-
<!-- Put everything in ${build} into .jar file -->
81-
<jar
82-
jarfile="${dist}/extension/jars/${bundlename}-${bundleversion}.jar" basedir="${build}" manifest="${src}/META-INF/MANIFEST.MF">
83-
<manifest>
84-
<attribute name="Bundle-Version" value="${bundleversion}"/>
85-
<attribute name="Built-Date" value="${NOW}"/>
86-
<attribute name="Bundle-SymbolicName" value="${bundlename}"/>
87-
88-
</manifest>
89-
</jar>
90-
91-
<!-- copy EHCache.cfc -->
92-
<copy todir="${dist}/extension/context">
93-
<fileset dir="${srcCFML}/context">
94-
<include name="**/*.*"/>
95-
</fileset>
96-
</copy>
97-
98-
<copy
99-
file="${srcCFML}/context/admin/cdriver/EHCache.cfc"
100-
tofile="${dist}/extension/context/admin/cdriver/EHCache.cfc" />
101-
102-
<replaceregexp
103-
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
104-
match="\{class\}"
105-
replace="${class}"
106-
byline="true"/>
107-
<replaceregexp
108-
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
109-
match="\{label\}"
110-
replace="${label}"
111-
byline="true"/>
112-
<replaceregexp
113-
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
114-
match="\{desc\}"
115-
replace="${description}"
116-
byline="true"/>
117-
<replaceregexp
118-
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
119-
match="\{bundlename\}"
120-
replace="${bundlename}"
121-
byline="true"/>
122-
<replaceregexp
123-
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
124-
match="\{bundleversion\}"
125-
replace="${bundleversion}"
126-
byline="true"/>
127-
128-
129-
130-
131-
132-
<!-- copy the jars necessary -->
133-
<copy todir="${dist}/extension/jars">
134-
<fileset dir="${lib}">
135-
<include name="**/*.jar"/>
136-
<exclude name="**/javax.*"/>
137-
<exclude name="**/jsp-*"/>
138-
<exclude name="**/lucee.jar"/>
139-
<exclude name="**/org.apache.felix.framework-*"/>
140-
<exclude name="**/org.lucee.axis*"/>
141-
</fileset>
142-
</copy>
143-
144-
145-
<!-- copy the logo -->
146-
<copy todir="${dist}/extension/META-INF">
147-
<fileset dir="${srcImg}/">
148-
<include name="logo.png"/>
149-
</fileset>
150-
</copy>
151-
152-
153-
154-
<!-- Zip everything -->
155-
<zip destfile="${dist}/${filename}-${bundleversion}.lex">
156-
<zipfileset dir="${dist}/extension"/>
157-
</zip>
158-
159-
</target>
160-
161-
<target name="clean" depends="dist" description="clean up" >
162-
<!-- Delete the ${build} and ${dist} directory trees -->
163-
<delete dir="${build}"/>
164-
<delete dir="${temp}"/>
165-
</target>
166-
163+
<!-- Updated dist target to depend on maven-build -->
164+
<target name="dist" depends="createManifest"
165+
description="generate the distribution" >
166+
167+
<!-- Put everything in ${build} into .jar file
168+
<jar jarfile="${dist}/extension/jars/${jarArtifactId}-${version}.jar"
169+
basedir="${build}"
170+
manifest="${src}/META-INF/MANIFEST.MF">
171+
<manifest>
172+
<attribute name="Bundle-Version" value="${version}"/>
173+
<attribute name="Built-Date" value="${NOW}"/>
174+
<attribute name="Bundle-SymbolicName" value="${bundlename}"/>
175+
</manifest>
176+
</jar> -->
177+
178+
<!-- copy the logo -->
179+
<copy todir="${dist}/extension/META-INF">
180+
<fileset dir="${srcImg}/">
181+
<include name="logo.png"/>
182+
</fileset>
183+
</copy>
184+
185+
186+
<!-- copy EHCache.cfc -->
187+
<copy todir="${dist}/extension/context">
188+
<fileset dir="${srcContext}">
189+
<include name="**/*.*"/>
190+
</fileset>
191+
</copy>
192+
193+
<copy
194+
file="${srcContext}/admin/cdriver/EHCache.cfc"
195+
tofile="${dist}/extension/context/admin/cdriver/EHCache.cfc" />
196+
197+
<replaceregexp
198+
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
199+
match="\{maven\}"
200+
replace="${jarGroupId}:${jarArtifactId}:${version}"
201+
byline="true"/>
202+
<replaceregexp
203+
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
204+
match="\{class\}"
205+
replace="${class}"
206+
byline="true"/>
207+
<replaceregexp
208+
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
209+
match="\{label\}"
210+
replace="${label}"
211+
byline="true"/>
212+
<replaceregexp
213+
file="${dist}/extension/context/admin/cdriver/EHCache.cfc"
214+
match="\{desc\}"
215+
replace="${description}"
216+
byline="true"/>
217+
218+
219+
<!-- Zip everything -->
220+
<zip destfile="${dist}/${filename}-${version}.lex">
221+
<zipfileset dir="${dist}/extension"/>
222+
</zip>
223+
224+
<!-- Lite artifact: same but without bundled Maven dependencies -->
225+
<zip destfile="${dist}/${filename}-${version}.lite.lex">
226+
<zipfileset dir="${dist}/extension">
227+
<exclude name="maven/**"/>
228+
</zipfileset>
229+
</zip>
230+
</target>
231+
232+
<target name="clean" depends="dist" description="clean up" >
233+
<!-- Delete the ${build} and ${temp} directory trees
234+
<delete dir="${build}"/>
235+
<delete dir="${temp}"/> -->
236+
</target>
167237
</project>

0 commit comments

Comments
 (0)