11package org .utplsql .maven .plugin ;
22
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 ;
114import org .apache .commons .lang3 .StringUtils ;
125import org .apache .maven .model .Resource ;
136import org .apache .maven .plugin .AbstractMojo ;
3427import org .utplsql .maven .plugin .model .ReporterParameter ;
3528import org .utplsql .maven .plugin .reporter .ReporterWriter ;
3629
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 ;
3837
3938/**
4039 * This class expose the {@link TestRunner} interface to Maven.
41- *
40+ *
4241 * @author Alberto Hernández
4342 */
4443@ Mojo (name = "test" , defaultPhase = LifecyclePhase .TEST )
@@ -130,6 +129,9 @@ public class UtPLSQLMojo extends AbstractMojo {
130129 @ Parameter (defaultValue = "${maven.test.failure.ignore}" )
131130 protected boolean ignoreFailure ;
132131
132+ @ Parameter (defaultValue = "${skiptUtplsqlTests}" )
133+ protected boolean skiptUtplsqlTests ;
134+
133135 // Color in the console, bases on Maven logging configuration.
134136 private boolean colorConsole = MessageUtils .isColorEnabled ();
135137
@@ -142,62 +144,65 @@ public class UtPLSQLMojo extends AbstractMojo {
142144 */
143145 @ Override
144146 public void execute () throws MojoExecutionException {
147+ if (skiptUtplsqlTests ) {
148+ getLog ().debug ("utPLSQLTests are skipped." );
149+ } else {
150+ getLog ().debug ("Java Api Version = " + JavaApiVersionInfo .getVersion ());
151+ loadConfFromEnvironment ();
145152
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- }
153+ Connection connection = null ;
154+ try {
155+ FileMapperOptions sourceMappingOptions = buildSourcesOptions ();
156+ FileMapperOptions testMappingOptions = buildTestsOptions ();
157+ OracleDataSource ds = new OracleDataSource ();
158+ ds .setURL (url );
159+ ds .setUser (user );
160+ ds .setPassword (password );
161+ connection = ds .getConnection ();
162+
163+ Version utlVersion = this .databaseInformation .getUtPlsqlFrameworkVersion (connection );
164+ getLog ().info ("utPLSQL Version = " + utlVersion );
165+
166+ List <Reporter > reporterList = initReporters (connection , utlVersion , ReporterFactory .createEmpty ());
167+
168+ logParameters (sourceMappingOptions , testMappingOptions , reporterList );
169+
170+ TestRunner runner = new TestRunner ()
171+ .addPathList (paths )
172+ .addReporterList (reporterList )
173+ .sourceMappingOptions (sourceMappingOptions )
174+ .testMappingOptions (testMappingOptions )
175+ .skipCompatibilityCheck (skipCompatibilityCheck )
176+ .colorConsole (colorConsole )
177+ .addTags (tags )
178+ .randomTestOrder (randomTestOrder )
179+ .randomTestOrderSeed (randomTestOrderSeed )
180+ .failOnErrors (!ignoreFailure );
181+
182+ if (StringUtils .isNotBlank (excludeObject )) {
183+ runner .excludeObject (excludeObject );
184+ }
185+ if (StringUtils .isNotBlank (includeObject )) {
186+ runner .includeObject (includeObject );
187+ }
184188
185- runner .run (connection );
189+ runner .run (connection );
186190
187- } catch (SomeTestsFailedException e ) {
188- if (!this .ignoreFailure ) {
191+ } catch (SomeTestsFailedException e ) {
192+ if (!this .ignoreFailure ) {
193+ throw new MojoExecutionException (e .getMessage (), e );
194+ }
195+ } catch (SQLException e ) {
189196 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 ( );
197+ } finally {
198+ try {
199+ if ( null != connection ) {
200+ reporterWriter . writeReporters ( connection );
201+ connection . close ();
202+ }
203+ } catch ( Exception e ) {
204+ getLog (). error ( e . getMessage (), e );
198205 }
199- } catch (Exception e ) {
200- getLog ().error (e .getMessage (), e );
201206 }
202207 }
203208 }
@@ -223,7 +228,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
223228 if (defaultSourceDirectory .exists ()) {
224229 sources .add (PluginDefault .buildDefaultSource ());
225230 } else {
226- return new FileMapperOptions (new ArrayList <String >());
231+ return new FileMapperOptions (new ArrayList <>());
227232 }
228233 }
229234
@@ -252,7 +257,7 @@ private FileMapperOptions buildSourcesOptions() throws MojoExecutionException {
252257 }
253258
254259 if (sourcesCustomTypeMapping != null && !sourcesCustomTypeMapping .isEmpty ()) {
255- fileMapperOptions .setTypeMappings (new ArrayList <KeyValuePair >());
260+ fileMapperOptions .setTypeMappings (new ArrayList <>());
256261 for (CustomTypeMapping typeMapping : sourcesCustomTypeMapping ) {
257262 fileMapperOptions .getTypeMappings ()
258263 .add (new KeyValuePair (typeMapping .getCustomMapping (), typeMapping .getType ()));
@@ -274,7 +279,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
274279 if (defaultTestDirectory .exists ()) {
275280 tests .add (PluginDefault .buildDefaultTest ());
276281 } else {
277- return new FileMapperOptions (new ArrayList <String >());
282+ return new FileMapperOptions (new ArrayList <>());
278283 }
279284 }
280285
@@ -303,7 +308,7 @@ private FileMapperOptions buildTestsOptions() throws MojoExecutionException {
303308 }
304309
305310 if (testsCustomTypeMapping != null && !testsCustomTypeMapping .isEmpty ()) {
306- fileMapperOptions .setTypeMappings (new ArrayList <KeyValuePair >());
311+ fileMapperOptions .setTypeMappings (new ArrayList <>());
307312 for (CustomTypeMapping typeMapping : testsCustomTypeMapping ) {
308313 fileMapperOptions .getTypeMappings ()
309314 .add (new KeyValuePair (typeMapping .getCustomMapping (), typeMapping .getType ()));
@@ -352,7 +357,7 @@ private List<Reporter> initReporters(Connection connection, Version utlVersion,
352357 }
353358
354359 private void logParameters (FileMapperOptions sourceMappingOptions , FileMapperOptions testMappingOptions ,
355- List <Reporter > reporterList ) {
360+ List <Reporter > reporterList ) {
356361 Log log = getLog ();
357362 log .info ("Invoking TestRunner with: " + targetDir );
358363
@@ -368,4 +373,4 @@ private void logParameters(FileMapperOptions sourceMappingOptions, FileMapperOpt
368373 log .debug ("tests=" );
369374 testMappingOptions .getFilePaths ().forEach (log ::debug );
370375 }
371- }
376+ }
0 commit comments