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.
-
+
}