Author: brett
Date: Tue Dec  6 05:32:22 2011
New Revision: 1210787

URL: http://svn.apache.org/viewvc?rev=1210787&view=rev
Log:
[NPANDAY-410] artifact context needs to be loaded manually from the container

Modified:
    
incubator/npanday/trunk/components/dotnet-plugin/src/main/java/npanday/plugin/AbstractMojo.java

Modified: 
incubator/npanday/trunk/components/dotnet-plugin/src/main/java/npanday/plugin/AbstractMojo.java
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-plugin/src/main/java/npanday/plugin/AbstractMojo.java?rev=1210787&r1=1210786&r2=1210787&view=diff
==============================================================================
--- 
incubator/npanday/trunk/components/dotnet-plugin/src/main/java/npanday/plugin/AbstractMojo.java
 (original)
+++ 
incubator/npanday/trunk/components/dotnet-plugin/src/main/java/npanday/plugin/AbstractMojo.java
 Tue Dec  6 05:32:22 2011
@@ -18,18 +18,16 @@
  */
 package npanday.plugin;
 
-import npanday.artifact.NPandayArtifactResolutionException;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import npanday.PlatformUnsupportedException;
 import npanday.PathUtil;
+import npanday.PlatformUnsupportedException;
 import npanday.artifact.ArtifactContext;
 import npanday.artifact.AssemblyResolver;
+import npanday.artifact.NPandayArtifactResolutionException;
 import npanday.executable.ExecutionException;
 import npanday.executable.NetExecutableFactory;
-import npanday.registry.DataAccessObjectRegistry;
 import npanday.vendor.VendorFactory;
 import npanday.vendor.VendorInfo;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -44,6 +42,13 @@ import org.codehaus.plexus.personality.p
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -53,11 +58,6 @@ import javax.xml.transform.TransformerEx
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.util.*;
 
 /**
  * The base class for plugins that execute a .NET plugin. Classes that extend 
this class are only expected to provide
@@ -70,17 +70,6 @@ public abstract class AbstractMojo
     implements DotNetMojo, Contextualizable
 {
     protected PlexusContainer container;
-    
-     /**
-     * Output directory
-     *
-     * @parameter expression = "${outputDirectory}" 
default-value="${project.build.directory}/build-sources"
-     * @required
-     */
-    private String outputDirectory;
-
-    /** @component */
-    private ArtifactContext artifactContext;
 
     public void contextualize(Context context) throws ContextException {
         container = (PlexusContainer) context.get(PlexusConstants.PLEXUS_KEY);
@@ -156,6 +145,7 @@ public abstract class AbstractMojo
         // TODO: should be configurable, but relies on it being passed into 
everywhere
         File targetDir = PathUtil.getPrivateApplicationBaseDirectory( project 
);
 
+        ArtifactContext artifactContext = null;
         try
         {
             VendorInfo vendorInfo = 
VendorInfo.Factory.createDefaultVendorInfo();
@@ -167,7 +157,10 @@ public abstract class AbstractMojo
             vendorInfo.setVendorVersion( getVendorVersion() );
 
             String localRepository = getLocalRepository();
+
+            artifactContext = (ArtifactContext) 
container.lookup(ArtifactContext.ROLE);
             artifactContext.init( project, 
project.getRemoteArtifactRepositories(), new File( localRepository ) );
+
             Artifact artifact = 
getNetExecutableFactory().getArtifactFor(getMojoGroupId(), getMojoArtifactId());
             resolveArtifact(artifact, targetDir );
             getNetExecutableFactory().getPluginLoaderFor( artifact, 
vendorInfo, localRepository, paramFile,
@@ -183,6 +176,10 @@ public abstract class AbstractMojo
         } catch (ComponentLookupException e) {
             throw new MojoExecutionException( "NPANDAY-xxx-000", e );
         }
+        finally
+        {
+            release(artifactContext);
+        }
 
         postExecute();
     }
@@ -195,15 +192,9 @@ public abstract class AbstractMojo
             return;
         }
 
-        ArtifactContext artifactContext = null;
         AssemblyResolver assemblyResolver = null;
-        ArtifactFactory artifactFactory = null;
-        DataAccessObjectRegistry daoRegistry = null;
         try {
-            artifactContext = (ArtifactContext) 
container.lookup(ArtifactContext.ROLE);
             assemblyResolver = (AssemblyResolver) 
container.lookup(AssemblyResolver.ROLE);
-            artifactFactory = (ArtifactFactory) 
container.lookup(ArtifactFactory.ROLE);
-            daoRegistry = (DataAccessObjectRegistry) 
container.lookup(DataAccessObjectRegistry.ROLE);
 
             Dependency dependency = new Dependency();
             dependency.setGroupId(artifact.getGroupId());
@@ -221,38 +212,12 @@ public abstract class AbstractMojo
             {
                 throw new MojoExecutionException( e.getMessage(), e );
             }
-
-//            ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
-//            dao.openConnection();
-//            Project project;
-//
-//            try
-//            {
-//                project = dao.getProjectFor(dependency.getGroupId(), 
dependency.getArtifactId(),
-//                    dependency.getVersion(), dependency.getType(),
-//                    dependency.getClassifier());
-//            }
-//            catch( ProjectDaoException e )
-//            {
-//                 throw new MojoExecutionException( e.getMessage(), e );
-//            }
-//
-//            List<Dependency> sourceArtifactDependencies = new 
ArrayList<Dependency>();
-//            for (ProjectDependency projectDependency : 
project.getProjectDependencies()) {
-//                
sourceArtifactDependencies.add(ProjectFactory.createDependencyFrom(projectDependency));
-//            }
-//            
artifactContext.getArtifactInstaller().installArtifactAndDependenciesIntoPrivateApplicationBase(localRepository,
 artifact,
-//                    sourceArtifactDependencies);
-//            dao.closeConnection();
         }
         catch (IOException e) {
             throw new MojoExecutionException(e.getMessage(), e);
         }
         finally {
-            release(artifactContext);
             release(assemblyResolver);
-            release(artifactFactory);
-            release(daoRegistry);
         }
     }
 


Reply via email to