View Javadoc
1   /*
2    *   Copyright (C) Christian Schulte <cs@schulte.it>, 2005-206
3    *   All rights reserved.
4    *
5    *   Redistribution and use in source and binary forms, with or without
6    *   modification, are permitted provided that the following conditions
7    *   are met:
8    *
9    *     o Redistributions of source code must retain the above copyright
10   *       notice, this list of conditions and the following disclaimer.
11   *
12   *     o Redistributions in binary form must reproduce the above copyright
13   *       notice, this list of conditions and the following disclaimer in
14   *       the documentation and/or other materials provided with the
15   *       distribution.
16   *
17   *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18   *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19   *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20   *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21   *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22   *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23   *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24   *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25   *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26   *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27   *
28   *   $JOMC: TestClassesValidateMojo.java 5043 2015-05-27 07:03:39Z schulte $
29   *
30   */
31  package org.jomc.mojo;
32  
33  import java.io.File;
34  import org.apache.maven.plugin.MojoExecutionException;
35  
36  /**
37   * Validates a projects' test class file model objects.
38   *
39   * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
40   * @version $JOMC: TestClassesValidateMojo.java 5043 2015-05-27 07:03:39Z schulte $
41   *
42   * @phase process-test-classes
43   * @goal validate-test-classes
44   * @threadSafe
45   * @requiresDependencyResolution test
46   */
47  public final class TestClassesValidateMojo extends AbstractClassesValidateMojo
48  {
49  
50      /**
51       * Execution strategy of the goal ({@code always} or {@code once-per-session}).
52       *
53       * @parameter default-value="once-per-session" expression="${jomc.validateTestClassesExecutionStrategy}"
54       * @since 1.1
55       */
56      private String validateTestClassesExecutionStrategy;
57  
58      /**
59       * Creates a new {@code TestClassesValidateMojo} instance.
60       */
61      public TestClassesValidateMojo()
62      {
63          super();
64      }
65  
66      @Override
67      protected String getClassesModuleName() throws MojoExecutionException
68      {
69          return this.getTestModuleName();
70      }
71  
72      @Override
73      protected ClassLoader getClassesClassLoader() throws MojoExecutionException
74      {
75          return this.getTestClassLoader();
76      }
77  
78      @Override
79      protected File getClassesDirectory() throws MojoExecutionException
80      {
81          return this.getTestOutputDirectory();
82      }
83  
84      @Override
85      protected String getGoal() throws MojoExecutionException
86      {
87          return "validate-test-classes";
88      }
89  
90      @Override
91      protected String getExecutionStrategy() throws MojoExecutionException
92      {
93          return this.validateTestClassesExecutionStrategy;
94      }
95  
96  }