You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by ap...@apache.org on 2011/02/18 17:04:56 UTC
svn commit: r1072064 -
/incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java
Author: apadilla
Date: Fri Feb 18 17:04:55 2011
New Revision: 1072064
URL: http://svn.apache.org/viewvc?rev=1072064&view=rev
Log:
[NPanday-362]
* check first if project's frameworkVersion is present in the existing npanday-settings.xml before overwriting
Modified:
incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java
Modified: incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java?rev=1072064&r1=1072063&r2=1072064&view=diff
==============================================================================
--- incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java (original)
+++ incubator/npanday/trunk/plugins/netplugins/NPanday.Plugin.Settings/javabinding/src/main/java/NPanday/Plugin/Settings/SettingsGeneratorMojo.java Fri Feb 18 17:04:55 2011
@@ -23,7 +23,21 @@ import npanday.plugin.FieldAnnotation;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.FileReader;
+
import java.io.File;
+import java.util.List;
+import java.util.Iterator;
+import org.apache.maven.model.Plugin;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import java.io.BufferedReader;
+import java.io.FileReader;
+
/**
* @phase validate
@@ -32,6 +46,7 @@ import java.io.File;
public class SettingsGeneratorMojo
extends npanday.plugin.AbstractMojo
{
+
/**
* @parameter expression = "${project}"
*/
@@ -132,7 +147,88 @@ public class SettingsGeneratorMojo
{
return false;
}
+
+ Plugin compilePlugin = lookupCompilePlugin();
+
+ if ( compilePlugin != null )
+ {
+ frameworkVersion = getProjectFrameworkVersion( (Xpp3Dom) compilePlugin.getConfiguration() );
+ if ( isFrameworkVersionExisting( frameworkVersion ) )
+ {
+ return false;
+ }
+ }
return true;
}
+
+ public boolean isFrameworkVersionExisting(String frameworkVersion)
+ throws MojoExecutionException
+ {
+
+ String npandaySettings = System.getProperty( "user.home" ) + File.separator + ".m2" + File.separator + "npanday-settings.xml";
+ File file = new File( npandaySettings );
+
+ if ( !file.exists() )
+ {
+ return false;
+ }
+
+ try
+ {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.parse( file );
+ doc.getDocumentElement().normalize();
+
+ NodeList nodeList = doc.getElementsByTagName( "frameworkVersion" );
+ for ( int i = 0; i < nodeList.getLength(); i++ )
+ {
+ Node currentNode = nodeList.item( i );
+
+ if ( frameworkVersion.equals( currentNode.getFirstChild().getNodeValue() ) )
+ {
+ return true;
+ }
+ }
+ }
+ catch ( Exception ex )
+ {
+ }
+ return false;
+ }
+
+ private Plugin lookupCompilePlugin()
+ {
+
+ List plugins = project.getBuildPlugins();
+
+ if ( plugins != null )
+ {
+ for ( Iterator iterator = plugins.iterator(); iterator.hasNext(); )
+ {
+ Plugin plugin = (Plugin) iterator.next();
+ if ( "npanday.plugin:maven-compile-plugin".equalsIgnoreCase( plugin.getKey() ) );
+ {
+ return plugin;
+ }
+ }
+ }
+ return null;
+ }
+
+ private String getProjectFrameworkVersion( Xpp3Dom config )
+ {
+ if ( config != null && config.getChildCount() > 0 )
+ {
+ final Xpp3Dom subelement = config.getChild( "frameworkVersion" );
+
+ if ( subelement != null )
+ {
+ return subelement.getValue();
+ }
+ }
+ return null;
+ }
+
}