1
1
package org .utplsql .maven .plugin ;
2
2
3
- import java .io .File ;
4
- import java .sql .Connection ;
5
- import java .sql .SQLException ;
6
- import java .util .ArrayList ;
7
- import java .util .LinkedHashSet ;
8
- import java .util .List ;
9
- import java .util .Set ;
10
-
3
+ import oracle .jdbc .pool .OracleDataSource ;
11
4
import org .apache .commons .lang3 .StringUtils ;
12
5
import org .apache .maven .model .Resource ;
13
6
import org .apache .maven .plugin .AbstractMojo ;
34
27
import org .utplsql .maven .plugin .model .ReporterParameter ;
35
28
import org .utplsql .maven .plugin .reporter .ReporterWriter ;
36
29
37
- import oracle .jdbc .pool .OracleDataSource ;
30
+ import java .io .File ;
31
+ import java .sql .Connection ;
32
+ import java .sql .SQLException ;
33
+ import java .util .ArrayList ;
34
+ import java .util .LinkedHashSet ;
35
+ import java .util .List ;
36
+ import java .util .Set ;
38
37
39
38
/**
40
39
* This class expose the {@link TestRunner} interface to Maven.
41
- *
40
+ *
42
41
* @author Alberto Hernández
42
+ * @author Simon Martinelli
43
43
*/
44
44
@ Mojo (name = "test" , defaultPhase = LifecyclePhase .TEST )
45
45
public class UtPLSQLMojo extends AbstractMojo {
@@ -116,7 +116,7 @@ public class UtPLSQLMojo extends AbstractMojo {
116
116
private List <CustomTypeMapping > testsCustomTypeMapping ;
117
117
118
118
@ Parameter
119
- private Set <String > tags = new LinkedHashSet <>();
119
+ private final Set <String > tags = new LinkedHashSet <>();
120
120
121
121
@ Parameter
122
122
private boolean randomTestOrder ;
@@ -130,74 +130,80 @@ public class UtPLSQLMojo extends AbstractMojo {
130
130
@ Parameter (defaultValue = "${maven.test.failure.ignore}" )
131
131
protected boolean ignoreFailure ;
132
132
133
+ @ Parameter (defaultValue = "${skipUtplsqlTests}" )
134
+ protected boolean skipUtplsqlTests ;
135
+
133
136
// Color in the console, bases on Maven logging configuration.
134
- private boolean colorConsole = MessageUtils .isColorEnabled ();
137
+ private final boolean colorConsole = MessageUtils .isColorEnabled ();
135
138
136
139
private ReporterWriter reporterWriter ;
137
140
138
- private DatabaseInformation databaseInformation = new DefaultDatabaseInformation ();
141
+ private final DatabaseInformation databaseInformation = new DefaultDatabaseInformation ();
139
142
140
143
/**
141
144
* Executes the plugin.
142
145
*/
143
146
@ Override
144
147
public void execute () throws MojoExecutionException {
148
+ if (skipUtplsqlTests ) {
149
+ getLog ().debug ("utPLSQLTests are skipped." );
150
+ } else {
151
+ getLog ().debug ("Java Api Version = " + JavaApiVersionInfo .getVersion ());
152
+ loadConfFromEnvironment ();
145
153
146
- getLog ().debug ("Java Api Version = " + JavaApiVersionInfo .getVersion ());
147
- loadConfFromEnvironment ();
148
-
149
- Connection connection = null ;
150
- try {
151
- FileMapperOptions sourceMappingOptions = buildSourcesOptions ();
152
- FileMapperOptions testMappingOptions = buildTestsOptions ();
153
- OracleDataSource ds = new OracleDataSource ();
154
- ds .setURL (url );
155
- ds .setUser (user );
156
- ds .setPassword (password );
157
- connection = ds .getConnection ();
158
-
159
- Version utlVersion = this .databaseInformation .getUtPlsqlFrameworkVersion (connection );
160
- getLog ().info ("utPLSQL Version = " + utlVersion );
161
-
162
- List <Reporter > reporterList = initReporters (connection , utlVersion , ReporterFactory .createEmpty ());
163
-
164
- logParameters (sourceMappingOptions , testMappingOptions , reporterList );
165
-
166
- TestRunner runner = new TestRunner ()
167
- .addPathList (paths )
168
- .addReporterList (reporterList )
169
- .sourceMappingOptions (sourceMappingOptions )
170
- .testMappingOptions (testMappingOptions )
171
- .skipCompatibilityCheck (skipCompatibilityCheck )
172
- .colorConsole (colorConsole )
173
- .addTags (tags )
174
- .randomTestOrder (randomTestOrder )
175
- .randomTestOrderSeed (randomTestOrderSeed )
176
- .failOnErrors (!ignoreFailure );
177
-
178
- if (StringUtils .isNotBlank (excludeObject )) {
179
- runner .excludeObject (excludeObject );
180
- }
181
- if (StringUtils .isNotBlank (includeObject )) {
182
- runner .includeObject (includeObject );
183
- }
154
+ Connection connection = null ;
155
+ try {
156
+ FileMapperOptions sourceMappingOptions = buildSourcesOptions ();
157
+ FileMapperOptions testMappingOptions = buildTestsOptions ();
158
+ OracleDataSource ds = new OracleDataSource ();
159
+ ds .setURL (url );
160
+ ds .setUser (user );
161
+ ds .setPassword (password );
162
+ connection = ds .getConnection ();
163
+
164
+ Version utlVersion = this .databaseInformation .getUtPlsqlFrameworkVersion (connection );
165
+ getLog ().info ("utPLSQL Version = " + utlVersion );
166
+
167
+ List <Reporter > reporterList = initReporters (connection , utlVersion , ReporterFactory .createEmpty ());
168
+
169
+ logParameters (sourceMappingOptions , testMappingOptions , reporterList );
170
+
171
+ TestRunner runner = new TestRunner ()
172
+ .addPathList (paths )
173
+ .addReporterList (reporterList )
174
+ .sourceMappingOptions (sourceMappingOptions )
175
+ .testMappingOptions (testMappingOptions )
176
+ .skipCompatibilityCheck (skipCompatibilityCheck )
177
+ .colorConsole (colorConsole )
178
+ .addTags (tags )
179
+ .randomTestOrder (randomTestOrder )
180
+ .randomTestOrderSeed (randomTestOrderSeed )
181
+ .failOnErrors (!ignoreFailure );
182
+
183
+ if (StringUtils .isNotBlank (excludeObject )) {
184
+ runner .excludeObject (excludeObject );
185
+ }
186
+ if (StringUtils .isNotBlank (includeObject )) {
187
+ runner .includeObject (includeObject );
188
+ }
184
189
185
- runner .run (connection );
190
+ runner .run (connection );
186
191
187
- } catch (SomeTestsFailedException e ) {
188
- if (!this .ignoreFailure ) {
192
+ } catch (SomeTestsFailedException e ) {
193
+ if (!this .ignoreFailure ) {
194
+ throw new MojoExecutionException (e .getMessage (), e );
195
+ }
196
+ } catch (SQLException e ) {
189
197
throw new MojoExecutionException (e .getMessage (), e );
190
- }
191
- } catch ( SQLException e ) {
192
- throw new MojoExecutionException ( e . getMessage (), e );
193
- } finally {
194
- try {
195
- if ( null != connection ) {
196
- reporterWriter . writeReporters ( connection );
197
- connection . close ( );
198
+ } finally {
199
+ try {
200
+ if ( null != connection ) {
201
+ reporterWriter . writeReporters ( connection );
202
+ connection . close ();
203
+ }
204
+ } catch ( Exception e ) {
205
+ getLog (). error ( e . getMessage (), e );
198
206
}
199
- } catch (Exception e ) {
200
- getLog ().error (e .getMessage (), e );
201
207
}
202
208
}
203
209
}
@@ -206,11 +212,9 @@ private void loadConfFromEnvironment() {
206
212
if (StringUtils .isEmpty (url )) {
207
213
url = System .getProperty ("dbUrl" );
208
214
}
209
-
210
215
if (StringUtils .isEmpty (user )) {
211
216
user = System .getProperty ("dbUser" );
212
217
}
213
-
214
218
if (StringUtils .isEmpty (password )) {
215
219
password = System .getProperty ("dbPass" );
216
220
}
@@ -223,7 +227,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
223
227
if (defaultSourceDirectory .exists ()) {
224
228
sources .add (PluginDefault .buildDefaultSource ());
225
229
} else {
226
- return new FileMapperOptions (new ArrayList <String >());
230
+ return new FileMapperOptions (new ArrayList <>());
227
231
}
228
232
}
229
233
@@ -252,7 +256,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
252
256
}
253
257
254
258
if (sourcesCustomTypeMapping != null && !sourcesCustomTypeMapping .isEmpty ()) {
255
- fileMapperOptions .setTypeMappings (new ArrayList <KeyValuePair >());
259
+ fileMapperOptions .setTypeMappings (new ArrayList <>());
256
260
for (CustomTypeMapping typeMapping : sourcesCustomTypeMapping ) {
257
261
fileMapperOptions .getTypeMappings ()
258
262
.add (new KeyValuePair (typeMapping .getCustomMapping (), typeMapping .getType ()));
@@ -274,7 +278,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
274
278
if (defaultTestDirectory .exists ()) {
275
279
tests .add (PluginDefault .buildDefaultTest ());
276
280
} else {
277
- return new FileMapperOptions (new ArrayList <String >());
281
+ return new FileMapperOptions (new ArrayList <>());
278
282
}
279
283
}
280
284
@@ -303,7 +307,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
303
307
}
304
308
305
309
if (testsCustomTypeMapping != null && !testsCustomTypeMapping .isEmpty ()) {
306
- fileMapperOptions .setTypeMappings (new ArrayList <KeyValuePair >());
310
+ fileMapperOptions .setTypeMappings (new ArrayList <>());
307
311
for (CustomTypeMapping typeMapping : testsCustomTypeMapping ) {
308
312
fileMapperOptions .getTypeMappings ()
309
313
.add (new KeyValuePair (typeMapping .getCustomMapping (), typeMapping .getType ()));
@@ -336,8 +340,7 @@ private List<Reporter> initReporters(Connection connection, Version utlVersion,
336
340
reporter .init (connection );
337
341
reporterList .add (reporter );
338
342
339
- // Turns the console output on by default if both file and console output are
340
- // empty.
343
+ // Turns the console output on by default if both file and console output are empty.
341
344
if (!reporterParameter .isFileOutput () && null == reporterParameter .getConsoleOutput ()) {
342
345
reporterParameter .setConsoleOutput (true );
343
346
}
@@ -352,7 +355,7 @@ private List<Reporter> initReporters(Connection connection, Version utlVersion,
352
355
}
353
356
354
357
private void logParameters (FileMapperOptions sourceMappingOptions , FileMapperOptions testMappingOptions ,
355
- List <Reporter > reporterList ) {
358
+ List <Reporter > reporterList ) {
356
359
Log log = getLog ();
357
360
log .info ("Invoking TestRunner with: " + targetDir );
358
361
@@ -361,11 +364,14 @@ private void logParameters(FileMapperOptions sourceMappingOptions, FileMapperOpt
361
364
}
362
365
363
366
log .debug ("Invoking TestRunner with: " );
367
+
364
368
log .debug ("reporters=" );
365
369
reporterList .forEach ((Reporter r ) -> log .debug (r .getTypeName ()));
370
+
366
371
log .debug ("sources=" );
367
372
sourceMappingOptions .getFilePaths ().forEach (log ::debug );
373
+
368
374
log .debug ("tests=" );
369
375
testMappingOptions .getFilePaths ().forEach (log ::debug );
370
376
}
371
- }
377
+ }
0 commit comments