@@ -25,6 +25,7 @@ package org.silverpeas.setup
25
25
26
26
27
27
import org.gradle.api.*
28
+ import org.gradle.api.tasks.TaskProvider
28
29
import org.silverpeas.setup.api.*
29
30
import org.silverpeas.setup.configuration.JBossConfigurationTask
30
31
import org.silverpeas.setup.configuration.SilverpeasConfigurationTask
@@ -72,44 +73,56 @@ class SilverpeasSetupPlugin implements Plugin<Project> {
72
73
JBossServer jBossServer = new JBossServer (extension. jbossHome. path)
73
74
initializePluginParameters(project, jBossServer)
74
75
75
- Task construction = project. tasks. create (CONSTRUCT . name, SilverpeasConstructionTask ) {
76
- it . silverpeasHome = extension. silverpeasHome
77
- it . installation = extension. installation
78
- it . settings = extension. settings
76
+ TaskProvider< Task > construction = project. tasks. register (CONSTRUCT . name, SilverpeasConstructionTask ) {
77
+ silverpeasHome = extension. silverpeasHome
78
+ installation = extension. installation
79
+ settings = extension. settings
79
80
}
80
81
81
- Task jbossConf = project. tasks. create(CONFIGURE_JBOSS . name, JBossConfigurationTask ) {
82
- it. driversDir = extension. installation. dsDriversDir. get()
83
- it. config = extension. config
84
- it. jboss = jBossServer
85
- it. settings = extension. settings
82
+ TaskProvider<JBossConfigurationTask > jbossConf =
83
+ project. tasks. register(CONFIGURE_JBOSS . name, JBossConfigurationTask ) {
84
+ driversDir = extension. installation. dsDriversDir. get()
85
+ config = extension. config
86
+ jboss = jBossServer. useLogger(log)
87
+ settings = extension. settings
86
88
}
87
89
88
- Task silverpeasConf = project. tasks. create(CONFIGURE_SILVERPEAS . name, SilverpeasConfigurationTask ) {
89
- it. silverpeasHome = extension. silverpeasHome
90
- it. config = extension. config
91
- it. settings = extension. settings
92
- }. dependsOn(construction)
93
-
94
- Task configuration = project. tasks. create(CONFIGURE . name) {
95
- it. description = ' Configures both JBoss and Silverpeas'
96
- it. group = ' Build'
97
- }. doFirst {
98
- ((JBossConfigurationTask ) jbossConf). configureJBoss()
99
- }. doLast {
100
- ((SilverpeasConfigurationTask ) silverpeasConf). configureSilverpeas()
101
- }. dependsOn(construction)
102
-
103
- Task migration = project. tasks. create(MIGRATE . name, SilverpeasMigrationTask ) {
104
- it. migration = extension. migration
105
- it. settings = extension. settings
106
- }. dependsOn(configuration)
107
-
108
- project. tasks. create(INSTALL . name, SilverpeasInstallationTask ) {
109
- it. installation = extension. installation
110
- it. settings = extension. settings
111
- it. jboss = jBossServer
112
- }. dependsOn(construction, configuration, migration)
90
+ TaskProvider<SilverpeasConfigurationTask > silverpeasConf =
91
+ project. tasks. register(CONFIGURE_SILVERPEAS . name, SilverpeasConfigurationTask ) {
92
+ dependsOn construction
93
+
94
+ silverpeasHome = extension. silverpeasHome
95
+ config = extension. config
96
+ settings = extension. settings
97
+ }
98
+
99
+ TaskProvider<Task > configuration = project. tasks. register(CONFIGURE . name) {
100
+ description = ' Configures both JBoss/Wildfly and Silverpeas'
101
+ group = ' Build'
102
+ dependsOn construction
103
+
104
+ doFirst {
105
+ jbossConf. get(). configureJBoss()
106
+ }
107
+ doLast {
108
+ silverpeasConf. get(). configureSilverpeas()
109
+ }
110
+ }
111
+
112
+ TaskProvider<Task > migration = project. tasks. register(MIGRATE . name, SilverpeasMigrationTask ) {
113
+ dependsOn configuration
114
+
115
+ migration = extension. migration
116
+ settings = extension. settings
117
+ }
118
+
119
+ project. tasks. register(INSTALL . name, SilverpeasInstallationTask ) {
120
+ dependsOn migration
121
+
122
+ installation = extension. installation
123
+ settings = extension. settings
124
+ jboss = jBossServer. useLogger(log)
125
+ }
113
126
114
127
initializePredefinedTasks(project, extension)
115
128
}
@@ -123,25 +136,28 @@ class SilverpeasSetupPlugin implements Plugin<Project> {
123
136
private static void setUpGradleAssemblingTaskForThisPlugin (Project project ,
124
137
SilverpeasSetupExtension extension ) {
125
138
try {
126
- Task assemble = project. tasks. getByName(ASSEMBLE . name). doLast {
127
- if (! extension. installation. distDir. get(). exists()) {
128
- extension. installation. distDir. get(). mkdirs()
139
+ TaskProvider<Task > assemble = project. tasks. named(ASSEMBLE . name)
140
+ assemble. configure {
141
+ description = ' Assemble all the software bundles that made Silverpeas'
142
+ onlyIf {
143
+ ! extension. installation. distDir. get(). exists() &&
144
+ ! extension. installation. dsDriversDir. get(). exists()
145
+ }
146
+ outputs. upToDateWhen {
147
+ extension. installation. distDir. get(). exists() &&
148
+ extension. installation. dsDriversDir. get(). exists()
149
+ }
150
+ doLast {
151
+ if (! extension. installation. distDir. get(). exists()) {
152
+ extension. installation. distDir. get(). mkdirs()
153
+ }
154
+ SilverpeasBuilder builder = new SilverpeasBuilder (project, FileLogger . getLogger(name))
155
+ builder. driversDir = extension. installation. dsDriversDir. get()
156
+ builder. silverpeasHome = extension. silverpeasHome
157
+ builder. settings = extension. settings
158
+ builder. extractSoftwareBundles(extension. installation. bundles,
159
+ extension. installation. distDir. get())
129
160
}
130
- SilverpeasBuilder builder = new SilverpeasBuilder (project, FileLogger . getLogger(delegate. name))
131
- builder. driversDir = extension. installation. dsDriversDir. get()
132
- builder. silverpeasHome = extension. silverpeasHome
133
- builder. settings = extension. settings
134
- builder. extractSoftwareBundles(extension. installation. bundles,
135
- extension. installation. distDir. get())
136
- }
137
- assemble. description = ' Assemble all the software bundles that made Silverpeas'
138
- assemble. onlyIf {
139
- ! extension. installation. distDir. get(). exists() &&
140
- ! extension. installation. dsDriversDir. get(). exists()
141
- }
142
- assemble. outputs. upToDateWhen {
143
- extension. installation. distDir. get(). exists() &&
144
- extension. installation. dsDriversDir. get(). exists()
145
161
}
146
162
} catch (UnknownTaskException e) {
147
163
// nothing to do
@@ -159,25 +175,28 @@ class SilverpeasSetupPlugin implements Plugin<Project> {
159
175
private static void setUpGradleBuildTaskForThisPlugin (Project project ,
160
176
SilverpeasSetupExtension extension ) {
161
177
try {
162
- Task build = project. tasks. getByName(BUILD . name). doLast {
163
- SilverpeasBuilder builder = new SilverpeasBuilder (project, FileLogger . getLogger(delegate. name))
164
- builder. silverpeasHome = extension. silverpeasHome
165
- builder. settings = extension. settings
166
- builder. developmentMode = extension. installation. developmentMode. get()
167
- builder. generateSilverpeasApplication(extension. installation. distDir. get())
168
- }
169
- build. description = ' Build the Silverpeas Collaborative Web Application'
170
- build. onlyIf {
171
- extension. installation. distDir. get(). exists()
172
- }
173
- build. outputs. upToDateWhen {
174
- boolean ok = extension. installation. distDir. get(). exists() &&
175
- Files . exists(Paths . get(extension. installation. distDir. get(). path, ' WEB-INF' , ' web.xml' ))
176
- if (! extension. installation. developmentMode. get()) {
177
- ok = ok && Files . exists(
178
- Paths . get(project. buildDir. path, SilverpeasConstructionTask . SILVERPEAS_WAR ))
178
+ TaskProvider<Task > build = project. tasks. named(BUILD . name)
179
+ build. configure {
180
+ description = ' Build the Silverpeas Collaborative Web Application'
181
+ onlyIf {
182
+ extension. installation. distDir. get(). exists()
183
+ }
184
+ outputs. upToDateWhen {
185
+ boolean ok = extension. installation. distDir. get(). exists() &&
186
+ Files . exists(Paths . get(extension. installation. distDir. get(). path, ' WEB-INF' , ' web.xml' ))
187
+ if (! extension. installation. developmentMode. get()) {
188
+ ok = ok && Files . exists(
189
+ Paths . get(project. buildDir. path, SilverpeasConstructionTask . SILVERPEAS_WAR ))
190
+ }
191
+ return ok
192
+ }
193
+ doLast {
194
+ SilverpeasBuilder builder = new SilverpeasBuilder (project, FileLogger . getLogger(name))
195
+ builder. silverpeasHome = extension. silverpeasHome
196
+ builder. settings = extension. settings
197
+ builder. developmentMode = extension. installation. developmentMode. get()
198
+ builder. generateSilverpeasApplication(extension. installation. distDir. get())
179
199
}
180
- return ok
181
200
}
182
201
} catch (UnknownTaskException e) {
183
202
// nothing to do
@@ -296,35 +315,41 @@ class SilverpeasSetupPlugin implements Plugin<Project> {
296
315
switch (settings. DB_SERVERTYPE ) {
297
316
case ' MSSQL' :
298
317
settings. DB_URL = " jdbc:jtds:sqlserver://${ settings.DB_SERVER} :${ settings.DB_PORT_MSSQL} /${ settings.DB_NAME} ;sendStringParametersAsUnicode=false"
299
- settings. JCR_URL = " jdbc:jtds:sqlserver://${ settings.DB_SERVER} :${ settings.DB_PORT_MSSQL} /${ settings.JCR_NAME} ;sendStringParametersAsUnicode=false"
318
+ if (settings. JCR_NAME ) {
319
+ settings. JCR_URL = " jdbc:jtds:sqlserver://${ settings.DB_SERVER} :${ settings.DB_PORT_MSSQL} /${ settings.JCR_NAME} ;sendStringParametersAsUnicode=false"
320
+ }
300
321
settings. DB_DRIVER = ' net.sourceforge.jtds.jdbc.Driver'
301
- settings. JACKRABBIT_PERSISTENCE_MANAGER = ' org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager'
302
322
break
303
323
case ' ORACLE' :
304
324
settings. DB_URL = " jdbc:oracle:thin:@${ settings.DB_SERVER} :${ settings.DB_PORT_ORACLE} :${ settings.DB_NAME} "
305
- settings. JCR_URL = " jdbc:oracle:thin:@${ settings.DB_SERVER} :${ settings.DB_PORT_ORACLE} :${ settings.JCR_NAME} "
325
+ if (settings. JCR_NAME ) {
326
+ settings. JCR_URL = " jdbc:oracle:thin:@${ settings.DB_SERVER} :${ settings.DB_PORT_ORACLE} :${ settings.JCR_NAME} "
327
+ }
306
328
settings. DB_DRIVER = ' oracle.jdbc.driver.OracleDriver'
307
- settings. JACKRABBIT_PERSISTENCE_MANAGER = ' org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager'
308
329
break
309
330
case ' POSTGRESQL' :
310
331
settings. DB_URL = " jdbc:postgresql://${ settings.DB_SERVER} :${ settings.DB_PORT_POSTGRESQL} /${ settings.DB_NAME} "
311
- settings. JCR_URL = " jdbc:postgresql://${ settings.DB_SERVER} :${ settings.DB_PORT_POSTGRESQL} /${ settings.JCR_NAME} "
332
+ if (settings. JCR_NAME ) {
333
+ settings. JCR_URL = " jdbc:postgresql://${ settings.DB_SERVER} :${ settings.DB_PORT_POSTGRESQL} /${ settings.JCR_NAME} "
334
+ }
312
335
settings. DB_DRIVER = ' org.postgresql.Driver'
313
- settings. JACKRABBIT_PERSISTENCE_MANAGER = ' org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager'
314
336
break
315
337
case ' H2' :
316
338
if (settings. DB_SERVER == ' :file:' ) {
317
339
Path databaseDirPath = Paths . get(settings. SILVERPEAS_HOME , ' h2' )
318
340
if (! Files . exists(databaseDirPath))
319
341
Files . createDirectory(databaseDirPath)
320
342
settings. DB_URL = " jdbc:h2:file:${ settings.SILVERPEAS_HOME} /h2/${ settings.DB_NAME} ;MV_STORE=FALSE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
321
- settings. JCR_URL = " jdbc:h2:file:${ settings.SILVERPEAS_HOME} /h2/${ settings.JCR_NAME} ;MV_STORE=FALSE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
343
+ if (settings. JCR_NAME ) {
344
+ settings. JCR_URL = " jdbc:h2:file:${ settings.SILVERPEAS_HOME} /h2/${ settings.JCR_NAME} ;MV_STORE=FALSE;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
345
+ }
322
346
} else {
323
347
settings. DB_URL = " jdbc:h2:tcp://${ settings.DB_SERVER} :${ settings.DB_PORT_H2} /${ settings.DB_NAME} "
324
- settings. JCR_URL = " jdbc:h2:tcp://${ settings.DB_SERVER} :${ settings.DB_PORT_H2} /${ settings.JCR_NAME} "
348
+ if (settings. JCR_NAME ) {
349
+ settings. JCR_URL = " jdbc:h2:tcp://${ settings.DB_SERVER} :${ settings.DB_PORT_H2} /${ settings.JCR_NAME} "
350
+ }
325
351
}
326
352
settings. DB_DRIVER = ' org.h2.Driver'
327
- settings. JACKRABBIT_PERSISTENCE_MANAGER = ' org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager'
328
353
break
329
354
default :
330
355
throw new IllegalArgumentException (" Unsupported database system: ${ settings.DB_SERVERTYPE} " )
0 commit comments