Commits

Jan Lahoda committed 166349f

Adding configurationFile to the configuration, adding showgui goal.

Comments (0)

Files changed (3)

cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/RunJackpot30.java

 package org.netbeans.modules.jackpot30.maven;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
             String sourceLevel = "1.5";
-            for (Object o : project.getBuild().getPlugins()) {
-                if (!(o instanceof Plugin)) continue;
-                Plugin p = (Plugin) o;
-                if (!"org.apache.maven.plugins".equals(p.getGroupId())) continue;
-                if (!"maven-compiler-plugin".equals(p.getArtifactId())) continue;
-                if (p.getConfiguration() instanceof Xpp3Dom) {
-                    Xpp3Dom configuration = (Xpp3Dom) p.getConfiguration();
-                    Xpp3Dom source = configuration.getChild("source");
+            Xpp3Dom sourceLevelConfiguration = Utils.getPluginConfiguration(project, "org.apache.maven.plugins", "maven-compiler-plugin");
 
-                    if (source != null) {
-                        sourceLevel = source.getValue();
-                    }
+            if (sourceLevelConfiguration != null) {
+                Xpp3Dom source = sourceLevelConfiguration.getChild("source");
+
+                if (source != null) {
+                    sourceLevel = source.getValue();
                 }
             }
+
+            String configurationFile = Utils.getJackpotConfigurationFile(project);
+
             List<String> cmdLine = new ArrayList<String>();
-            cmdLine.add("-no-apply");
-            cmdLine.add("-sourcepath");
+            cmdLine.add("--no-apply");
+            cmdLine.add("--sourcepath");
             cmdLine.add(toClassPathString((List<String>) project.getCompileSourceRoots()));
-            cmdLine.add("-classpath");
+            cmdLine.add("--classpath");
             cmdLine.add(toClassPathString((List<String>) project.getCompileClasspathElements()));
-            cmdLine.add("-source");
+            cmdLine.add("--source");
             cmdLine.add(sourceLevel);
 
+            if (configurationFile != null) {
+                cmdLine.add("--config-file");
+                cmdLine.add(configurationFile);
+            }
+
             for (String sr : (List<String>) project.getCompileSourceRoots()) {
                 cmdLine.add(sr);
             }

cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/ShowGuiJackpot30.java

+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2012 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.  When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2012 Sun Microsystems, Inc.
+ */
+package org.netbeans.modules.jackpot30.maven;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.netbeans.modules.jackpot30.cmdline.Main;
+
+/**
+ * @goal showgui
+ * @author Jan Lahoda
+ */
+public class ShowGuiJackpot30 extends AbstractMojo {
+
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        try {
+            String configurationFile = Utils.getJackpotConfigurationFile(project);
+
+            if (configurationFile == null)
+                throw new MojoExecutionException("No configuration file specified, cannot show configuration GUI");
+
+            List<String> cmdLine = new ArrayList<String>();
+
+            cmdLine.add("--config-file");
+            cmdLine.add(configurationFile);
+            cmdLine.add("--show-gui");
+
+            Main.compile(cmdLine.toArray(new String[0]));
+        } catch (IOException ex) {
+            throw new MojoExecutionException(ex.getMessage(), ex);
+        } catch (ClassNotFoundException ex) {
+            throw new MojoExecutionException(ex.getMessage(), ex);
+        }
+    }
+
+}

cmdline/maven/src/main/java/org/netbeans/modules/jackpot30/maven/Utils.java

+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2012 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.  When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2012 Sun Microsystems, Inc.
+ */
+package org.netbeans.modules.jackpot30.maven;
+
+import org.apache.maven.model.Plugin;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/**
+ *
+ * @author lahvac
+ */
+public class Utils {
+
+    public static Xpp3Dom getPluginConfiguration(MavenProject project, String groupId, String artifactId) {
+        for (Object o : project.getBuild().getPlugins()) {
+            if (!(o instanceof Plugin)) continue;
+
+            Plugin p = (Plugin) o;
+
+            if (   groupId.equals(p.getGroupId())
+                && artifactId.equals(p.getArtifactId())) {
+                if (p.getConfiguration() instanceof Xpp3Dom) {
+                    return (Xpp3Dom) p.getConfiguration();
+                }
+                break;
+            }
+        }
+
+        return null;
+    }
+
+    public static String getJackpotConfigurationFile(MavenProject project) {
+        Xpp3Dom configuration = getPluginConfiguration(project, "org.netbeans.modules.jackpot30", "jackpot30-maven-plugin");
+        
+        if (configuration != null) {
+            Xpp3Dom configurationFileElement = configuration.getChild("configurationFile");
+
+            if (configurationFileElement != null) {
+                return configurationFileElement.getValue();
+            }
+        }
+
+        return null;
+    }
+}