Am 22.04.11 17:53, schrieb [email protected]:

I again get the settings-repository is null-Exception with this fix.

See below for other comments.
Author: apadilla
Date: Fri Apr 22 15:53:58 2011
New Revision: 1095951

URL: http://svn.apache.org/viewvc?rev=1095951&view=rev
Log:
[NPANDAY-377] - fixed hardcoded path for registry-config by using 
${npanday.settings} property

Modified:
     
incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/npanday/registry-config.xml
     
incubator/npanday/trunk/plugins/maven-aspx-plugin/src/main/java/npanday/plugin/aspx/AspxCompilerMojo.java
     
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java

Modified: 
incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/npanday/registry-config.xml
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/npanday/registry-config.xml?rev=1095951&r1=1095950&r2=1095951&view=diff
==============================================================================
--- 
incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/npanday/registry-config.xml
 (original)
+++ 
incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/npanday/registry-config.xml
 Fri Apr 22 15:53:58 2011
@@ -22,7 +22,7 @@ under the License.
      <repository>
        <repository-name>npanday-settings</repository-name>
        
<repository-class>npanday.vendor.impl.SettingsRepository</repository-class>
-<repository-config>${user.home}/.m2/npanday-settings.xml</repository-config>
+<repository-config>${npanday.settings}</repository-config>
        <init-param>
          <param-name>optional</param-name>
          <param-value>true</param-value>

Modified: 
incubator/npanday/trunk/plugins/maven-aspx-plugin/src/main/java/npanday/plugin/aspx/AspxCompilerMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-aspx-plugin/src/main/java/npanday/plugin/aspx/AspxCompilerMojo.java?rev=1095951&r1=1095950&r2=1095951&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/maven-aspx-plugin/src/main/java/npanday/plugin/aspx/AspxCompilerMojo.java
 (original)
+++ 
incubator/npanday/trunk/plugins/maven-aspx-plugin/src/main/java/npanday/plugin/aspx/AspxCompilerMojo.java
 Fri Apr 22 15:53:58 2011
@@ -22,6 +22,7 @@ package npanday.plugin.aspx;
  import java.io.File;
  import java.io.IOException;
  import java.util.ArrayList;
+import java.util.Hashtable;
  import java.util.List;

  import npanday.ArtifactType;
@@ -30,7 +31,10 @@ import npanday.executable.ExecutionExcep
  import npanday.executable.compiler.CompilerConfig;
  import npanday.executable.compiler.CompilerExecutable;
  import npanday.executable.compiler.CompilerRequirement;
+import npanday.registry.RepositoryRegistry;
+import npanday.registry.impl.StandardRepositoryLoader;
  import npanday.vendor.VendorFactory;
+import npanday.vendor.impl.SettingsRepository;
  import org.apache.maven.plugin.AbstractMojo;
  import org.apache.maven.plugin.MojoExecutionException;
  import org.apache.maven.project.MavenProject;
@@ -52,6 +56,11 @@ public class AspxCompilerMojo
      private static final String DEFAULT_EXCLUDES = "obj/**, target/**, **/*.pdb, 
**/*.csproj, **/*.vbproj, **/*.suo, **/*.user,pom.xml, 
**/*.sln,build.log,PrecompiledApp.config,csproj.user,Properties/**,**.releaseBackup,^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:\\.\\d+)?$/**";

      /**
+     * @parameter expression ="${npanday.settings}"
+     */
+    private String settingsPath;
+
+    /**
       * The maven project.
       *
       * @parameter expression="${project}"
@@ -142,11 +151,18 @@ public class AspxCompilerMojo

      private File webSourceDirectory;

+    /**
+     * @component
+     */
+    private RepositoryRegistry repositoryRegistry;
+
      public void execute()
          throws MojoExecutionException
      {
          long startTime = System.currentTimeMillis();

+        getNPandaySettingsPath();
+
          webSourceDirectory = new File( 
project.getBuild().getSourceDirectory() );

          if ( profileAssemblyPath != null&&  !profileAssemblyPath.exists() )
@@ -398,4 +414,39 @@ public class AspxCompilerMojo
          }
      }

+    protected void getNPandaySettingsPath()
+    {
+        if ( settingsPath == null )
+        {
+            settingsPath = System.getProperty( "user.home" ) + "/.m2";
+        }
+
+        File settingsFile = new File( settingsPath, "npanday-settings.xml" );
+
+        try
+        {
+            SettingsRepository settingsRepository = (SettingsRepository) 
repositoryRegistry.find( "npanday-settings" );
+
+            if ( settingsRepository != null )
+            {
+                repositoryRegistry.removeRepository( "npanday-settings" );
+            }
+            try
+            {
+                StandardRepositoryLoader repoLoader = new 
StandardRepositoryLoader();
+                repoLoader.setRepositoryRegistry( repositoryRegistry );
+                settingsRepository = (SettingsRepository) 
repoLoader.loadRepository( settingsFile.getAbsolutePath(), 
SettingsRepository.class.getName(), new Hashtable() );
+                repositoryRegistry.addRepository( "npanday-settings", 
settingsRepository );
+            }
+            catch ( IOException e )
+            {
+                getLog().error( e.getMessage(), e );
+            }
+        }
+        catch ( Exception ex )
+        {
+            getLog().error( ex.getMessage(), ex );
+        }
+    }
+
  }

Modified: 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java?rev=1095951&r1=1095950&r2=1095951&view=diff
==============================================================================
--- 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
 (original)
+++ 
incubator/npanday/trunk/plugins/maven-compile-plugin/src/main/java/npanday/plugin/compile/AbstractCompilerMojo.java
 Fri Apr 22 15:53:58 2011
@@ -26,6 +26,7 @@ import npanday.executable.ExecutionExcep
  import npanday.executable.compiler.CompilerConfig;
  import npanday.executable.compiler.CompilerExecutable;
  import npanday.executable.compiler.CompilerRequirement;
+import npanday.registry.impl.StandardRepositoryLoader;
  import npanday.registry.RepositoryRegistry;
  import npanday.vendor.impl.SettingsRepository;
  import org.apache.maven.plugin.AbstractMojo;
@@ -1247,6 +1248,11 @@ public abstract class AbstractCompilerMo

          File settingsFile = new File( settingsPath, "npanday-settings.xml" );

+        if (!settingsFile.exists())
+        {
+            return;
+        }
+
          try
          {
              SettingsRepository settingsRepository = ( SettingsRepository) 
repositoryRegistry.find( "npanday-settings" );
@@ -1255,19 +1261,23 @@ public abstract class AbstractCompilerMo
              {
                  repositoryRegistry.removeRepository( "npanday-settings" );
              }
-            Hashtable props = new Hashtable();
-            InputStream stream = new FileInputStream( settingsFile );
-            settingsRepository = new SettingsRepository();
-            settingsRepository.setSourceUri( settingsFile.getAbsolutePath() );
-            settingsRepository.setRepositoryRegistry( repositoryRegistry );
-            settingsRepository.load( stream, props );
-            repositoryRegistry.addRepository( "npanday-settings", 
settingsRepository );
-        }
+            try
+            {
+                StandardRepositoryLoader repoLoader = new 
StandardRepositoryLoader();
+                repoLoader.setRepositoryRegistry( repositoryRegistry );
+                settingsRepository = (SettingsRepository) 
repoLoader.loadRepository( settingsFile.getAbsolutePath(), 
SettingsRepository.class.getName(), new Hashtable() );
+                repositoryRegistry.addRepository( "npanday-settings", 
settingsRepository );
+            }
+            catch ( IOException e )
+            {
+                getLog().error( e.getMessage(), e );
+            }
+        }
          catch ( Exception ex )
          {
-            ex.printStackTrace();
-        }
+            getLog().error( ex.getMessage(), ex );
+        }
      }

I don't think how you catch exceptions here is a good idea. One of the try catches can be removed.
Also you should add a NPANDAY-XXXXX friendly error message.

But I also can't really find the originating error (The one were there should be a NPANDAY-XXX :-)) in my build log.

I do not think just logging the error is sufficient here. When the settings file exist, it should fail, if loading makes any trouble.

-
+
  }



Reply via email to