Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / org.gvsig.mkmvnproject / src / main / resources / scripts / mkmvnproject.xml @ 38075

History | View | Annotate | Download (11.5 KB)

1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<project name="gvSIG-make-maven-project" default="mkproject" basedir=".">
3

    
4
        <!-- Get current file location folder -->
5
        <dirname property="gvSIG-make-maven-project.basedir" file="${ant.file.gvSIG-make-maven-project}" />
6

    
7
        <!-- Libraries folder in the gvSIG extension -->
8
        <property name="lib.folder" location="${gvSIG-make-maven-project.basedir}/../lib" />
9
        <!-- Templates folder in the gvSIG extension -->
10
        <property name="templates.folder" location="${gvSIG-make-maven-project.basedir}/../templates" />
11

    
12
        <property name="gvsiglogo" location="${basedir}/../gvSIG.png" />
13

    
14
        <!-- Load some ant external utility tasks -->
15
        <property name="antform.lib" location="${lib.folder}/antform-2.0.jar" />
16
        <property name="antcontrib.lib" location="${lib.folder}/ant-contrib-1.0b3.jar" />
17
        <property name="antelope.lib" location="${lib.folder}/antelopetasks-3.2.10.jar" />
18

    
19
        <property name="form.width" value="700" />
20
        <property name="form.height" value="550" />
21
        <property name="form.columns" value="40" />
22

    
23

    
24
        <taskdef resource="net/sf/antcontrib/antlib.xml">
25
                <classpath>
26
                        <pathelement location="${antcontrib.lib}" />
27
                </classpath>
28
        </taskdef>
29

    
30
        <taskdef name="antform" classname="com.sardak.antform.AntForm" classpath="${antform.lib}" />
31

    
32
        <taskdef name="antmenu" classname="com.sardak.antform.AntMenu" classpath="${antform.lib}" />
33

    
34
        <taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" classpath="${antelope.lib}" />
35

    
36

    
37
        <!-- 
38
        ================ begin specific code of templates ================= 
39
        -->
40
        <property name="template.fortunecookies-basic.option" value="1 - General project based on Fortune cookies basic example project" />
41
        <property name="template.fortunecookies-basic.description1" value="Create a general pourpose project with the multimodule" />
42
        <property name="template.fortunecookies-basic.description2" value="structure. It has no GEO logic and is based on a basic" />
43
        <property name="template.fortunecookies-basic.description3" value="API/implementation separation" />
44

    
45
    <property name="template.fortunecookies-provider.option" value="2 - General project based on Fortune cookies example project" />
46
    <property name="template.fortunecookies-provider.description1" value="Create a general pourpose project with the multimodule" />
47
    <property name="template.fortunecookies-provider.description2" value="structure. It has no GEO logic and is based on" />
48
    <property name="template.fortunecookies-provider.description3" value="API/SPI/implementation separation and providers"  />
49

    
50
        <property name="template.landregistryviewer.option" value="3 - Basic plugin with spatial support" />
51
        <property name="template.landregistryviewer.description1" value="Create a project based in the LandRegistryViewer example." />
52
        <property name="template.landregistryviewer.description2" value="Uses access to View, MapControl and datasources." />
53
        <property name="template.landregistryviewer.description3" value="" />
54

    
55
        <property name="templates" value="fortunecookies-basic,fortunecookies-provider,landregistryviewer" />
56
        <!-- 
57
        ================ End specific code of templates ================= 
58
        -->
59

    
60
        <target name="mkproject" depends="mkproject-prompt-basic-data">
61
                <description>Creates a new gvSIG project</description>
62
        </target>
63

    
64
        <target name="mkproject-prompt-basic-data">
65

    
66
                <property name="project.group.id" value="org.gvsig" />
67

    
68
                <antform title="Create project" width="${form.width}" image="${gvsiglogo}">
69
                        <textProperty label="" editable="false" columns="${form.columns}" property="form.title" />
70
                        <textProperty label="Name : " property="project.name" required="true" />
71
                        <label>                               For the project name, use the java class naming rules. 
72
                               Ex: FortuneCookie or LandRegistryViewer</label>
73
                        <textProperty label="Group Id : " property="project.group.id" required="true" />
74

    
75
                        <fileSelectionProperty label="Create project in : " property="project.folder" directoryChooser="true" editable="false" required="true" />
76
                        <separator />
77
                        <label>Select the template to use:</label>
78

    
79
                        <!-- 
80
                        ================ begin specific code of templates ================= 
81
                        -->
82
                        <checkSelectionProperty property="template.landregistryviewer.check" values="${template.landregistryviewer.option}" label="" />
83
                        <label>                                         ${template.landregistryviewer.description1}
84
                                         ${template.landregistryviewer.description2}
85
                                         ${template.landregistryviewer.description3}</label>
86

    
87
                        <checkSelectionProperty property="template.fortunecookies-basic.check" values="${template.fortunecookies-basic.option}" label="" />
88
                        <label>                                         ${template.fortunecookies-basic.description1}
89
                                         ${template.fortunecookies-basic.description2}
90
                                         ${template.fortunecookies-basic.description3}</label>
91
            <checkSelectionProperty property="template.fortunecookies-provider.check" values="${template.fortunecookies-provider.option}" label="" />
92
            <label>                                         ${template.fortunecookies-provider.description1}
93
                                         ${template.fortunecookies-provider.description2}
94
                                         ${template.fortunecookies-provider.description3}</label>
95
                        <!-- 
96
                        ================ End specific code of templates ================= 
97
                        -->
98
                        <separator />
99
                        <controlbar>
100
                                <button type="cancel" label=" Cancel " target="mkproject-build-cancelled" />
101
                                <button type="ok" label=" Next " target="mkproject-fixnames" />
102
                        </controlbar>
103
                </antform>
104
        </target>
105

    
106
        <target name="mkproject-fixnames">
107

    
108
                <!-- Trim project name and group id -->
109
                <stringutil string="${project.name}" property="project.name">
110
                        <trim />
111
                </stringutil>
112
                <stringutil string="${project.group.id}" property="project.group.id">
113
                        <trim />
114
                </stringutil>
115

    
116
                <!-- Lower case project name -->
117
                <stringutil string="${project.name}" property="project.name.lowercase">
118
                        <lowercase />
119
                </stringutil>
120

    
121
                <!-- Capitalize project name, just in case -->
122
                <stringutil string="${project.name}" property="project.name.capitalized.end">
123
                        <substring beginindex="1" />
124
                </stringutil>
125
                <stringutil string="${project.name}" property="project.name.capitalized.beginning">
126
                        <substring endindex="1" />
127
                        <uppercase />
128
                </stringutil>
129
                <property name="project.name.capitalized" value="${project.name.capitalized.beginning}${project.name.capitalized.end}" />
130

    
131
                <!-- Create artifactID with project.group.id + . + project.name.lowercase -->
132
                <property name="project.artifact.id" value="${project.group.id}.${project.name.lowercase}" />
133

    
134
                <for list="${templates}" param="template">
135
                        <sequential>
136
                                <var name="template.name" value="@{template}" />
137
                                <var name="check.name" value="template.${template.name}.check" />
138
                                <propertycopy override="true" name="arg1" from="${check.name}" />
139
                                <propertycopy override="true" name="arg2" from="template.${template.name}.option" />
140
                                <if>
141
                                        <and>
142
                                                <isset property="selected.template" />
143
                                                <equals arg1="${arg1}" arg2="${arg2}" />
144
                                        </and>
145
                                        <then>
146
                                                <antcall target="fail">
147
                                                        <param name="message" value="Only one template can be selected" />
148
                                                </antcall>
149
                                        </then>
150
                                </if>
151
                                <if>
152
                                        <equals arg1="${arg1}" arg2="${arg2}" />
153
                                        <then>
154
                                                <echo>selected.template = "${template.name}"</echo>
155
                                                <property name="selected.template" value="${template.name}" />
156
                                        </then>
157
                                </if>
158
                        </sequential>
159
                </for>
160
                <antcall target="mkproject-confirm" inheritall="true" />
161
        </target>
162

    
163
        <target name="mkproject-confirm">
164
                <antform title="Confirm the creation" width="${form.width}" image="${gvsiglogo}">
165
                        <textProperty label="" editable="false" columns="${form.columns}" property="form.title" />
166
                        <label>The data used for the creation of project are:</label>
167
                        <textProperty label="Project" editable="false" property="project.name" />
168
                        <textProperty label="Project name capitalized" editable="false" property="project.name.capitalized" />
169
                        <textProperty label="Project name lowercase" editable="false" property="project.name.lowercase" />
170
                        <textProperty label="Group Id" editable="false" property="project.group.id" />
171
                        <textProperty label="Artifact Id" editable="false" property="project.artifact.id" />
172
                        <textProperty label="Folder" editable="false" property="project.folder" />
173
                        <textProperty label="Template" editable="false" property="selected.template" />
174
                        <label>Continue ?</label>
175
                        <separator />
176
                        <controlbar>
177
                                <button type="cancel" label=" Cancel " target="mkproject-build-cancelled" />
178
                                <button type="ok" label=" Previous " target="mkproject-prompt-basic-data" />
179
                                <button type="ok" label=" Next " target="mkproject-build" />
180
                        </controlbar>
181
                </antform>
182
        </target>
183

    
184
        <target name="mkproject-build">
185
                <echo>
186
  Project name: "${project.name}"
187
  Project name capitalized: "${project.name.capitalized}"
188
  Project name lowercase: ${project.name.lowercase}"
189
  Group id: "${project.group.id}"
190
  ArtifactId: "${project.artifact.id}"
191
  Project folder: "${project.folder}"
192
  Selected template: "${selected.template}"
193
        </echo>
194
                <!--  call specific code of the selected template -->
195
                <ant antfile="${selected.template}.xml" inheritall="false">
196
                        <property name="project.name" value="${project.name}" />
197
                        <property name="project.name.capitalized" value="${project.name.capitalized}" />
198
                        <property name="project.name.lowercase" value="${project.name.lowercase}" />
199
                        <property name="project.group.id" value="${project.group.id}" />
200
                        <property name="project.artifact.id" value="${project.artifact.id}" />
201
                        <property name="project.folder" value="${project.folder}" />
202
                        <property name="form.width" value="${form.width}" />
203
                        <property name="form.height" value="${form.height}" />
204
                        <property name="form.columns" value="${form.columns}" />
205
                </ant>
206
                <if>
207
                        <resourceexists>
208
                                <file file="${project.folder}/${project.artifact.id}" />
209
                        </resourceexists>
210
                        <then>
211
                                <antcall target="mkproject-prepare-workspace" inheritall="true" />
212
                                <antcall target="mkproject-build-succesfully" inheritall="true" />
213
                        </then>
214
                        <else>
215
                                <antcall target="mkproject-build-cancelled" inheritall="true" />
216
                        </else>
217
                </if>
218
        </target>
219

    
220
        <target name="mkproject-prepare-workspace">
221
                <ant dir="${project.folder}/${project.artifact.id}" antfile="prepare-workspace.xml" target="prepare-workspace" />
222
                <if>
223
                        <resourceexists>
224
                                <file file="${project.folder}/${project.artifact.id}.app" />
225
                        </resourceexists>
226
                        <then>
227
                                <ant dir="${project.folder}/${project.artifact.id}.app" antfile="../org.gvsig.maven.base.build/maven-goals.xml" target="mvn-install-and-eclipse-eclipse" />
228
                        </then>
229
                </if>
230
        </target>
231

    
232
        <target name="mkproject-build-succesfully">
233
                <antform title="Project creation" width="${form.width}" image="${gvsiglogo}">
234
                        <textProperty label="" editable="false" columns="${form.columns}" property="form.title" />
235
                        <label>Project ${project.name} was created succesfully</label>
236
                        <controlbar>
237
                                <button type="ok" label=" Close " />
238
                        </controlbar>
239
                </antform>
240
        </target>
241

    
242
        <target name="mkproject-build-cancelled">
243
                <antform title="Project creation cancelled" width="${form.width}" image="${gvsiglogo}">
244
                        <textProperty label="" editable="false" columns="40" property="form.title" />
245
                        <label>Creation cancelled.</label>
246
                        <separator />
247
                        <controlbar>
248
                                <button type="cancel" label=" Close " />
249
                        </controlbar>
250
                </antform>
251
        </target>
252

    
253
        <target name="fail">
254
                <echo>${message}</echo>
255
                <fail message="${message}" />
256
        </target>
257

    
258
</project>