You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/12/19 09:07:30 UTC

[07/11] isis git commit: ISIS-284: use injected @Parameter for configuration rather than reading directly.

ISIS-284: use injected @Parameter for configuration rather than reading directly.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/2520b007
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/2520b007
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/2520b007

Branch: refs/heads/master
Commit: 2520b007e12eca32fde39cb82fe95e1422a554b4
Parents: a5b728f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Dec 19 07:55:55 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Dec 19 07:55:55 2014 +0000

----------------------------------------------------------------------
 .../isis/tool/mavenplugin/IsisMojoAbstract.java | 33 ++++++++++----------
 1 file changed, 16 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/2520b007/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
----------------------------------------------------------------------
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
index 09de280..7e9d958 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
@@ -27,8 +27,8 @@ import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationBuilderDefault;
 import org.apache.isis.core.metamodel.app.IsisMetaModel;
@@ -40,7 +40,6 @@ import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
 import org.apache.isis.tool.mavenplugin.util.IsisMetaModels;
 import org.apache.isis.tool.mavenplugin.util.MavenProjects;
-import org.apache.isis.tool.mavenplugin.util.Xpp3Doms;
 
 public abstract class IsisMojoAbstract extends AbstractMojo {
 
@@ -49,6 +48,9 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
     @Component
     private MavenProject mavenProject;
 
+    @Parameter(required = true, readonly = false, property = "isisConfigDir")
+    private String isisConfigDir;
+
     private final MetaModelProcessor metaModelProcessor;
     private final ContextForMojo context;
 
@@ -83,7 +85,7 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
     }
 
     private List<Object> serviceListFor(Plugin plugin) throws MojoFailureException {
-        IsisConfiguration isisConfiguration = isisConfigurationFor(plugin);
+        IsisConfiguration isisConfiguration = getIsisConfiguration();
 
         final ServicesInstaller servicesInstaller;
         if(isisConfiguration == null) {
@@ -100,20 +102,8 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
         return servicesInstaller.getServices(DeploymentType.SERVER_PROTOTYPE);
     }
 
-    private IsisConfiguration isisConfigurationFor(final Plugin plugin) throws MojoFailureException {
-        final Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration();
-        if (configuration == null) {
-            context.throwFailureException("Configuration error", "No <configuration> element found");
-        }
-
-        final Xpp3Dom servicesEl = configuration.getChild("isisConfigDir");
-        if (servicesEl == null) {
-            context.throwFailureException("Configuration error", "No <configuration>/<isisConfigDir> element found");
-        }
-        final String isisConfigDir = Xpp3Doms.GET_VALUE.apply(servicesEl);
-
-        final File basedir = mavenProject.getBasedir();
-        final File file = new File(basedir, isisConfigDir);
+    private IsisConfiguration getIsisConfiguration() throws MojoFailureException {
+        final File file = getIsisConfigDir();
         final String absoluteConfigDir = file.getAbsolutePath();
         if(!file.exists() || !file.isDirectory()) {
             context.throwFailureException("Configuration error",
@@ -124,6 +114,15 @@ public abstract class IsisMojoAbstract extends AbstractMojo {
         return configBuilder.getConfiguration();
     }
 
+    private File getIsisConfigDir() {
+        File file = new File(isisConfigDir);
+        if(!file.isAbsolute()) {
+            final File basedir = mavenProject.getBasedir();
+            file = new File(basedir, isisConfigDir);
+        }
+        return file;
+    }
+
     private static IsisMetaModel bootstrapIsis(List<Object> serviceList) {
         IsisMetaModel isisMetaModel = new IsisMetaModel(
                                             new RuntimeContextNoRuntime(),