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
52150Built-Date: ${ NOW }
53- version: "${ bundleversion } "
151+ version: "${ version } "
54152id: "${ id } "
55153groupId: "${ groupId } "
56154artifactId: "${ artifactId } "
57155name: "${ label } "
58156description: "${ description } "
59- lucee-core-version: "5.0.0.230 "
157+ lucee-core-version: "${ luceeCoreVersion } "
60158start-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