You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by si...@apache.org on 2007/07/25 12:06:17 UTC
svn commit: r559413 - in /incubator/nmaven/branches/SI_GAC: ./
components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/
components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/
components/dotnet-dao/project/src/ma...
Author: sisbell
Date: Wed Jul 25 05:06:16 2007
New Revision: 559413
URL: http://svn.apache.org/viewvc?view=rev&rev=559413
Log:
Optimized artifact resolving.
Modified:
incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java
incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java
incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java
incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/test/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImplTest.java
incubator/nmaven/branches/SI_GAC/components/dotnet-jetty/src/main/java/org/apache/maven/dotnet/jetty/JettyStarter.java
incubator/nmaven/branches/SI_GAC/plugins/maven-embedder-plugin/src/main/java/org/apache/maven/dotnet/plugin/embedder/EmbedderStarterMojo.java
incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java
incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java
incubator/nmaven/branches/SI_GAC/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java
incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/resources/template/NMaven.VisualStudio.AddIn
incubator/nmaven/branches/SI_GAC/pom.xml
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java Wed Jul 25 05:06:16 2007
@@ -305,7 +305,6 @@
( ( artifact.getFile() != null ) ? artifact.getFile().getAbsolutePath() : "" ), e );
}
- ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model;
try
@@ -320,7 +319,10 @@
{
throw new ArtifactInstallationException( "NMAVEN-002-013: Unable to read pom file" );
}
-
+ //TODO: Add this back in: since this is already done in the resolve phase, don't redo it for perf reasons.
+ /*
+ ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
+ dao.openConnection();
try
{
dao.storeModelAndResolveDependencies( model, pomFile.getParentFile(), null,
@@ -330,6 +332,11 @@
{
throw new ArtifactInstallationException( e.getMessage() );
}
+ finally
+ {
+ dao.closeConnection();
+ }
+ */
}
/**
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/AssemblyResolverImpl.java Wed Jul 25 05:06:16 2007
@@ -158,8 +158,7 @@
{
//Check that the list of dependencies matches the first level RDF Repo
//If not, resolve missing dependencies and add to repo or delete additional dependencies from repo
- ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
- dao.init( artifactFactory, wagonManager );
+
Project project = new Project();
project.setGroupId( mavenProject.getGroupId() );
@@ -202,6 +201,9 @@
dependencies ) ) );
pd.addAll( subtractProjectDependencies( dependencies, projectDependencies ) );
*/
+ ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
+ dao.init( artifactFactory, wagonManager );
+ dao.openConnection();
Set<Artifact> artifactDependencies = new HashSet<Artifact>();
try
@@ -212,6 +214,10 @@
catch ( java.io.IOException e )
{
e.printStackTrace();
+ }
+ finally
+ {
+ dao.closeConnection();
}
//Resolve content
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/ProjectDao.java Wed Jul 25 05:06:16 2007
@@ -43,4 +43,8 @@
void init( ArtifactFactory artifactFactory, WagonManager wagonManager );
+ boolean openConnection();
+
+ boolean closeConnection();
+
}
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/main/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImpl.java Wed Jul 25 05:06:16 2007
@@ -46,6 +46,8 @@
import java.io.FileReader;
import java.net.URISyntaxException;
+import info.aduna.iteration.Iterations;
+
public final class ProjectDaoImpl
implements ProjectDao
{
@@ -69,27 +71,76 @@
private int storeCounter = 0;
+ private RepositoryConnection repositoryConnection;
+
+ private String dependencyQuery;
+
+ private String projectQuery;
+
public void init( ArtifactFactory artifactFactory, WagonManager wagonManager )
{
this.artifactFactory = artifactFactory;
this.wagonManager = wagonManager;
+
+ List<ProjectUri> projectUris = new ArrayList<ProjectUri>();
+ projectUris.add( ProjectUri.GROUP_ID );
+ projectUris.add( ProjectUri.ARTIFACT_ID );
+ projectUris.add( ProjectUri.VERSION );
+ projectUris.add( ProjectUri.ARTIFACT_TYPE );
+ projectUris.add( ProjectUri.IS_RESOLVED );
+ projectUris.add( ProjectUri.DEPENDENCY );
+
+ dependencyQuery = "SELECT * FROM " + this.constructQueryFragmentFor( "{x}", projectUris );
+
+ projectUris = new ArrayList<ProjectUri>();
+ projectUris.add( ProjectUri.GROUP_ID );
+ projectUris.add( ProjectUri.ARTIFACT_ID );
+ projectUris.add( ProjectUri.VERSION );
+ projectUris.add( ProjectUri.ARTIFACT_TYPE );
+ projectUris.add( ProjectUri.IS_RESOLVED );
+ projectUris.add( ProjectUri.DEPENDENCY );
+ projectUris.add( ProjectUri.CLASSIFIER );
+ projectUris.add( ProjectUri.PARENT );
+
+ projectQuery = "SELECT * FROM " + this.constructQueryFragmentFor( "{x}", projectUris );
}
- public Project getProjectFor( String groupId, String artifactId, String version, String artifactType,
- String publicKeyTokenId )
- throws IOException
+ public boolean openConnection()
{
- long startTime = System.currentTimeMillis();
-
- RepositoryConnection repositoryConnection;
try
{
repositoryConnection = rdfRepository.getConnection();
+ repositoryConnection.setAutoCommit( false );
}
catch ( RepositoryException e )
{
- throw new IOException( e.getMessage() );
+ return false;
}
+ return true;
+ }
+
+ public boolean closeConnection()
+ {
+ if ( repositoryConnection != null )
+ {
+ try
+ {
+ repositoryConnection.close();
+ }
+ catch ( RepositoryException e )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public Project getProjectFor( String groupId, String artifactId, String version, String artifactType,
+ String publicKeyTokenId )
+ throws IOException
+ {
+ long startTime = System.currentTimeMillis();
+
ValueFactory valueFactory = rdfRepository.getValueFactory();
Project project = new ProjectDependency();
@@ -99,30 +150,17 @@
project.setArtifactType( artifactType );
project.setPublicKeyTokenId( publicKeyTokenId );
+ TupleQueryResult result = null;
+
try
{
- List<ProjectUri> projectUris = new ArrayList<ProjectUri>();
- projectUris.add( ProjectUri.GROUP_ID );
- projectUris.add( ProjectUri.ARTIFACT_ID );
- projectUris.add( ProjectUri.VERSION );
- projectUris.add( ProjectUri.ARTIFACT_TYPE );
- projectUris.add( ProjectUri.IS_RESOLVED );
- projectUris.add( ProjectUri.DEPENDENCY );
- projectUris.add( ProjectUri.CLASSIFIER );
- projectUris.add( ProjectUri.PARENT );
-
- String query = "SELECT * FROM " + this.constructQueryFragmentFor( "{x}", projectUris );
- // System.out.println( query );
- // "SELECT * FROM {x} <http://maven.apache.org/artifact/groupId> {groupIdValue}; <http://maven.apache.org/artifact/artifactId> {artifactIdValue}; <http://maven.apache.org/artifact/version> {versionValue}; [<http://maven.apache.org/artifact/dependency> {dependency}]";
- TupleQuery tupleQuery = repositoryConnection.prepareTupleQuery( QueryLanguage.SERQL, query );
-
+ TupleQuery tupleQuery = repositoryConnection.prepareTupleQuery( QueryLanguage.SERQL, projectQuery );
tupleQuery.setBinding( ProjectUri.GROUP_ID.getObjectBinding(), valueFactory.createLiteral( groupId ) );
tupleQuery.setBinding( ProjectUri.ARTIFACT_ID.getObjectBinding(),
valueFactory.createLiteral( artifactId ) );
tupleQuery.setBinding( ProjectUri.VERSION.getObjectBinding(), valueFactory.createLiteral( version ) );
- //long startQueryTime = System.currentTimeMillis();
- TupleQueryResult result = tupleQuery.evaluate();
- //logger.info( "Get Project Query: Time = " + ( System.currentTimeMillis() - startQueryTime ) );
+ result = tupleQuery.evaluate();
+
if ( !result.hasNext() )
{
if ( artifactType != null && artifactType.startsWith( "gac" ) )
@@ -146,12 +184,13 @@
while ( result.hasNext() )
{
BindingSet set = result.next();
+ /*
for ( Iterator<Binding> i = set.iterator(); i.hasNext(); )
{
Binding b = i.next();
//System.out.println( b.getName() + ":" + b.getValue() );
}
-
+ */
if ( set.getBinding( ProjectUri.IS_RESOLVED.getObjectBinding() ).getValue().toString().equalsIgnoreCase(
"true" ) )
{
@@ -196,17 +235,21 @@
}
finally
{
- try
- {
- repositoryConnection.close();
- }
- catch ( RepositoryException e )
+ if ( result != null )
{
- e.printStackTrace();
+ try
+ {
+ result.close();
+ }
+ catch ( QueryEvaluationException e )
+ {
+
+ }
}
}
+
//TODO: If has parent, then need to modify dependencies, etc of returned project
- logger.info( "ProjectDao.GetProjectFor - Artifact Id = " + project.getArtifactId() + ", Time = " +
+ logger.finest( "ProjectDao.GetProjectFor - Artifact Id = " + project.getArtifactId() + ", Time = " +
( System.currentTimeMillis() - startTime ) + ", Count = " + getProjectForCounter++ );
return project;
}
@@ -262,156 +305,158 @@
Set<Model> modelDependencies = new HashSet<Model>();
try
{
- RepositoryConnection repositoryConnection = rdfRepository.getConnection();
- try
- {
- repositoryConnection.add( id, RDF.TYPE, artifact );
- repositoryConnection.add( id, groupId, valueFactory.createLiteral( project.getGroupId() ) );
- repositoryConnection.add( id, artifactId, valueFactory.createLiteral( project.getArtifactId() ) );
- repositoryConnection.add( id, version, valueFactory.createLiteral( project.getVersion() ) );
- repositoryConnection.add( id, artifactType, valueFactory.createLiteral( project.getArtifactType() ) );
+ repositoryConnection.add( id, RDF.TYPE, artifact );
+ repositoryConnection.add( id, groupId, valueFactory.createLiteral( project.getGroupId() ) );
+ repositoryConnection.add( id, artifactId, valueFactory.createLiteral( project.getArtifactId() ) );
+ repositoryConnection.add( id, version, valueFactory.createLiteral( project.getVersion() ) );
+ repositoryConnection.add( id, artifactType, valueFactory.createLiteral( project.getArtifactType() ) );
- BNode classifierNode = valueFactory.createBNode();
- for ( Requirement requirement : project.getRequirements() )
- {
- //System.out.println( "Add requirement: " + requirement.getUri() );
- URI uri = valueFactory.createURI( requirement.getUri().toString() );
- repositoryConnection.add( classifierNode, uri,
- valueFactory.createLiteral( requirement.getValue() ) );
- }
+ BNode classifierNode = valueFactory.createBNode();
+ for ( Requirement requirement : project.getRequirements() )
+ {
+ //System.out.println( "Add requirement: " + requirement.getUri() );
+ URI uri = valueFactory.createURI( requirement.getUri().toString() );
+ repositoryConnection.add( classifierNode, uri, valueFactory.createLiteral( requirement.getValue() ) );
+ }
- repositoryConnection.add( id, classifier, classifierNode );
+ repositoryConnection.add( id, classifier, classifierNode );
- if ( project.getParentProject() != null )
- {
- Project parentProject = project.getParentProject();
- URI pid = valueFactory.createURI( parentProject.getGroupId() + ":" + parentProject.getArtifactId() +
- ":" + parentProject.getVersion() );
- repositoryConnection.add( id, parent, pid );
- artifactDependencies.addAll(
- storeProjectAndResolveDependencies( parentProject, null, artifactRepositories ) );
- }
+ if ( project.getParentProject() != null )
+ {
+ Project parentProject = project.getParentProject();
+ URI pid = valueFactory.createURI( parentProject.getGroupId() + ":" + parentProject.getArtifactId() +
+ ":" + parentProject.getVersion() );
+ repositoryConnection.add( id, parent, pid );
+ artifactDependencies.addAll(
+ storeProjectAndResolveDependencies( parentProject, null, artifactRepositories ) );
+ }
- for ( ProjectDependency projectDependency : project.getProjectDependencies() )
+ for ( ProjectDependency projectDependency : project.getProjectDependencies() )
+ {
+ logger.finest( "Project Dependency: Artifact ID = " + projectDependency.getArtifactId() +
+ ", Group ID = " + projectDependency.getGroupId() + ", Version = " + projectDependency.getVersion() +
+ ", Artifact Type = " + projectDependency.getArtifactType() );
+ if ( !projectDependency.isResolved() )
{
- System.out.println( "Project Dependency: Artifact ID = " + projectDependency.getArtifactId() +
- ", Group ID = " + projectDependency.getGroupId() + ", Version = " +
- projectDependency.getVersion() + ", Artifact Type = " + projectDependency.getArtifactType() );
- if ( !projectDependency.isResolved() )
+ if ( projectDependency.getArtifactType().startsWith( "gac" ) )
{
- if ( projectDependency.getArtifactType().startsWith( "gac" ) )
- {
- projectDependency.setResolved( true );
- artifactDependencies.add(
- ProjectFactory.createArtifactFrom( projectDependency, artifactFactory ) );
- }
- else
+ projectDependency.setResolved( true );
+ artifactDependencies.add(
+ ProjectFactory.createArtifactFrom( projectDependency, artifactFactory ) );
+ }
+ else
+ {
+ try
{
- try
- {
- Project dep = this.getProjectFor( projectDependency.getGroupId(),
- projectDependency.getArtifactId(),
- projectDependency.getVersion(),
- projectDependency.getArtifactType(),
- projectDependency.getPublicKeyTokenId() );
- if ( dep.isResolved() )
- {
- projectDependency = (ProjectDependency) dep;
- Artifact assembly =
- ProjectFactory.createArtifactFrom( projectDependency, artifactFactory );
- artifactDependencies.add( assembly );
- artifactDependencies.addAll( this.storeProjectAndResolveDependencies(
- projectDependency, null, artifactRepositories ) );
- }
- }
- catch ( IOException e )
+ Project dep = this.getProjectFor( projectDependency.getGroupId(),
+ projectDependency.getArtifactId(),
+ projectDependency.getVersion(),
+ projectDependency.getArtifactType(),
+ projectDependency.getPublicKeyTokenId() );
+ if ( dep.isResolved() )
{
- //e.printStackTrace();
- //safe to ignore: dependency not found
+ projectDependency = (ProjectDependency) dep;
+ Artifact assembly =
+ ProjectFactory.createArtifactFrom( projectDependency, artifactFactory );
+ artifactDependencies.add( assembly );
+
+ //repositoryConnection.commit();
+ artifactDependencies.addAll( this.storeProjectAndResolveDependencies( projectDependency,
+ null,
+ artifactRepositories ) );
}
}
+ catch ( IOException e )
+ {
+ //e.printStackTrace();
+ //safe to ignore: dependency not found
+ }
}
+ }
- if ( !projectDependency.isResolved() )
- {
+ if ( !projectDependency.isResolved() )
+ {
- Artifact assembly = ProjectFactory.createArtifactFrom( projectDependency, artifactFactory );
- Artifact pomArtifact = artifactFactory.createProjectArtifact( projectDependency.getGroupId(),
- projectDependency.getArtifactId(),
- projectDependency.getVersion() );
+ Artifact assembly = ProjectFactory.createArtifactFrom( projectDependency, artifactFactory );
+ Artifact pomArtifact = artifactFactory.createProjectArtifact( projectDependency.getGroupId(),
+ projectDependency.getArtifactId(),
+ projectDependency.getVersion() );
- pomArtifact.setFile( File.createTempFile( "pomFile", "pom.xml" ) );
+ pomArtifact.setFile( File.createTempFile( "pomFile", "pom.xml" ) );
- try
- {
- logger.info( "NMAVEN-000-000: Retrieving artifact: Artifact ID = " +
- projectDependency.getArtifactId() );
- wagonManager.getArtifact( pomArtifact, artifactRepositories );
- wagonManager.getArtifact( assembly, artifactRepositories );
- }
- catch ( TransferFailedException e )
- {
- throw new IOException(
- "NMAVEN-000-000: Problem in resolving artifact: Assembly Artifact Id = " +
- assembly.getArtifactId() + ", Message = " + e.getMessage() );
- }
- catch ( ResourceDoesNotExistException e )
- {
- throw new IOException(
- "NMAVEN-000-000: Problem in resolving artifact: Assembly Artifact Id = " +
- assembly.getArtifactId() + ", Message = " + e.getMessage() );
- }
+ try
+ {
+ logger.info( "NMAVEN-000-000: Retrieving artifact: Artifact ID = " +
+ projectDependency.getArtifactId() );
+ wagonManager.getArtifact( pomArtifact, artifactRepositories );
+ wagonManager.getArtifact( assembly, artifactRepositories );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new IOException(
+ "NMAVEN-000-000: Problem in resolving artifact: Assembly Artifact Id = " +
+ assembly.getArtifactId() + ", Message = " + e.getMessage() );
+ }
+ catch ( ResourceDoesNotExistException e )
+ {
+ throw new IOException(
+ "NMAVEN-000-000: Problem in resolving artifact: Assembly Artifact Id = " +
+ assembly.getArtifactId() + ", Message = " + e.getMessage() );
+ }
- File pomArtifactFile = pomArtifact.getFile();
- FileReader fileReader = new FileReader( pomArtifactFile );
+ File pomArtifactFile = pomArtifact.getFile();
+ FileReader fileReader = new FileReader( pomArtifactFile );
- MavenXpp3Reader reader = new MavenXpp3Reader();
- Model model;
- try
- {
- model = reader.read( fileReader );
- }
- catch ( XmlPullParserException e )
- {
- throw new IOException(
- "NMAVEN-000-000: Unable to read model: Message = " + e.getMessage() );
+ MavenXpp3Reader reader = new MavenXpp3Reader();
+ Model model;
+ try
+ {
+ model = reader.read( fileReader );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new IOException( "NMAVEN-000-000: Unable to read model: Message = " + e.getMessage() );
- }
- if ( !( model.getGroupId().equals( projectDependency.getGroupId() ) &&
- model.getArtifactId().equals( projectDependency.getArtifactId() ) &&
- model.getVersion().equals( projectDependency.getVersion() ) ) )
- {
- throw new IOException( "Model parameters do not match project dependencies parameters" );
- }
- modelDependencies.add( model );
- artifactDependencies.add( assembly );
- }//end if dependency not resolved
- // BNode did = valueFactory.createBNode();
- URI did = valueFactory.createURI( projectDependency.getGroupId() + ":" +
- projectDependency.getArtifactId() + ":" + projectDependency.getVersion() );
- repositoryConnection.add( did, RDF.TYPE, artifact );
- repositoryConnection.add( did, groupId,
- valueFactory.createLiteral( projectDependency.getGroupId() ) );
- repositoryConnection.add( did, artifactId,
- valueFactory.createLiteral( projectDependency.getArtifactId() ) );
- repositoryConnection.add( did, version,
- valueFactory.createLiteral( projectDependency.getVersion() ) );
- repositoryConnection.add( did, artifactType,
- valueFactory.createLiteral( projectDependency.getArtifactType() ) );
- repositoryConnection.add( id, dependency, did );
-
- }//end for
- repositoryConnection.add( id, isResolved, valueFactory.createLiteral( true ) );
- repositoryConnection.commit();
- }
- finally
- {
- repositoryConnection.close();
- }
+ }
+ if ( !( model.getGroupId().equals( projectDependency.getGroupId() ) &&
+ model.getArtifactId().equals( projectDependency.getArtifactId() ) &&
+ model.getVersion().equals( projectDependency.getVersion() ) ) )
+ {
+ throw new IOException( "Model parameters do not match project dependencies parameters" );
+ }
+ modelDependencies.add( model );
+ artifactDependencies.add( assembly );
+ }//end if dependency not resolved
+ // BNode did = valueFactory.createBNode();
+ URI did = valueFactory.createURI( projectDependency.getGroupId() + ":" +
+ projectDependency.getArtifactId() + ":" + projectDependency.getVersion() );
+ repositoryConnection.add( did, RDF.TYPE, artifact );
+ repositoryConnection.add( did, groupId, valueFactory.createLiteral( projectDependency.getGroupId() ) );
+ repositoryConnection.add( did, artifactId,
+ valueFactory.createLiteral( projectDependency.getArtifactId() ) );
+ repositoryConnection.add( did, version, valueFactory.createLiteral( projectDependency.getVersion() ) );
+ repositoryConnection.add( did, artifactType,
+ valueFactory.createLiteral( projectDependency.getArtifactType() ) );
+ repositoryConnection.add( id, dependency, did );
+
+ }//end for
+ repositoryConnection.add( id, isResolved, valueFactory.createLiteral( true ) );
+ repositoryConnection.commit();
}
catch ( OpenRDFException e )
{
+ if ( repositoryConnection != null )
+ {
+ try
+ {
+ repositoryConnection.rollback();
+ }
+ catch ( RepositoryException e1 )
+ {
+
+ }
+ }
throw new IOException( "NMAVEN-000-000: Could not open RDF Repository: Message =" + e.getMessage() );
}
@@ -421,7 +466,7 @@
artifactDependencies.addAll( storeProjectAndResolveDependencies(
ProjectFactory.createProjectFrom( model, null ), localRepository, artifactRepositories ) );
}
- logger.info( "ProjectDao.storeProjectAndResolveDependencies - Artifact Id = " + project.getArtifactId() +
+ logger.finest( "ProjectDao.storeProjectAndResolveDependencies - Artifact Id = " + project.getArtifactId() +
", Time = " + ( System.currentTimeMillis() - startTime ) + ", Count = " + storeCounter++ );
return artifactDependencies;
}
@@ -468,8 +513,7 @@
ArtifactFactory artifactFactory )
{
this.init( dataStoreObject, id, className );
- this.wagonManager = wagonManager;
- this.artifactFactory = artifactFactory;
+ init(artifactFactory, wagonManager);
}
@@ -510,41 +554,37 @@
Value dependencyUri )
throws RepositoryException, MalformedQueryException, QueryEvaluationException
{
- List<ProjectUri> projectUris = new ArrayList<ProjectUri>();
- projectUris.add( ProjectUri.GROUP_ID );
- projectUris.add( ProjectUri.ARTIFACT_ID );
- projectUris.add( ProjectUri.VERSION );
- projectUris.add( ProjectUri.ARTIFACT_TYPE );
- projectUris.add( ProjectUri.IS_RESOLVED );
- projectUris.add( ProjectUri.DEPENDENCY );
-
- String query = "SELECT * FROM " + this.constructQueryFragmentFor( "{x}", projectUris );
-
Set<ProjectDependency> projectDependencies = new HashSet<ProjectDependency>();
- TupleQuery tq = repositoryConnection.prepareTupleQuery( QueryLanguage.SERQL, query );
+ TupleQuery tq = repositoryConnection.prepareTupleQuery( QueryLanguage.SERQL, dependencyQuery );
tq.setBinding( "x", dependencyUri );
- //long startQueryTime = System.currentTimeMillis();
+
TupleQueryResult dependencyResult = tq.evaluate();
- //logger.info( "Query Dependencies: Time = " + ( System.currentTimeMillis() - startQueryTime ) );
- while ( dependencyResult.hasNext() )
+ try
{
- ProjectDependency projectDependency = new ProjectDependency();
- BindingSet bs = dependencyResult.next();
- projectDependency.setGroupId(
- bs.getBinding( ProjectUri.GROUP_ID.getObjectBinding() ).getValue().toString() );
- projectDependency.setArtifactId(
- bs.getBinding( ProjectUri.ARTIFACT_ID.getObjectBinding() ).getValue().toString() );
- projectDependency.setVersion(
- bs.getBinding( ProjectUri.VERSION.getObjectBinding() ).getValue().toString() );
-
- projectDependencies.add( projectDependency );
- if ( bs.hasBinding( ProjectUri.DEPENDENCY.getObjectBinding() ) )
+ while ( dependencyResult.hasNext() )
{
- addDependenciesToProject( projectDependency, repositoryConnection,
- bs.getValue( ProjectUri.DEPENDENCY.getObjectBinding() ) );
+ ProjectDependency projectDependency = new ProjectDependency();
+ BindingSet bs = dependencyResult.next();
+ projectDependency.setGroupId(
+ bs.getBinding( ProjectUri.GROUP_ID.getObjectBinding() ).getValue().toString() );
+ projectDependency.setArtifactId(
+ bs.getBinding( ProjectUri.ARTIFACT_ID.getObjectBinding() ).getValue().toString() );
+ projectDependency.setVersion(
+ bs.getBinding( ProjectUri.VERSION.getObjectBinding() ).getValue().toString() );
+
+ projectDependencies.add( projectDependency );
+ if ( bs.hasBinding( ProjectUri.DEPENDENCY.getObjectBinding() ) )
+ {
+ addDependenciesToProject( projectDependency, repositoryConnection,
+ bs.getValue( ProjectUri.DEPENDENCY.getObjectBinding() ) );
+ }
}
+ project.setProjectDependencies( projectDependencies );
+ }
+ finally
+ {
+ dependencyResult.close();
}
- project.setProjectDependencies( projectDependencies );
}
private String constructQueryFragmentFor( String subject, List<ProjectUri> projectUris )
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/test/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImplTest.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/test/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImplTest.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/test/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImplTest.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-dao/project/src/test/java/org/apache/maven/dotnet/dao/impl/ProjectDaoImplTest.java Wed Jul 25 05:06:16 2007
@@ -78,6 +78,7 @@
hasRequirement( ProjectUri.FRAMEWORK_VERSION.getPredicate(), "2.0", requirements ) );
assertTrue( "Could not find vendor requirement",
hasRequirement( ProjectUri.VENDOR.getPredicate(), "MICROSOFT", requirements ) );
+ dao.closeConnection();
}
private boolean hasRequirement( String uri, String value, Set<Requirement> requirements )
@@ -153,6 +154,7 @@
assertTrue( "Could not find required dependency. Found Dependency: GroupId = " +
projectDependency.getGroupId() + ", Artifact Id = " + projectDependency.getArtifactId(),
this.hasDependency( "NMaven", "NMaven.Test4", "1.0.0", projectDependencies ) );
+ dao.closeConnection();
}
public void testStoreTransitiveDependency()
@@ -198,6 +200,7 @@
assertTrue( "Could not find required dependency. Found Dependency: GroupId = " +
projectDependency.getGroupId() + ", Artifact Id = " + projectDependency.getArtifactId(),
this.hasDependency( "NMaven", "NMaven.Test3", "1.0.0", projectDependencies ) );
+ dao.closeConnection();
}
public void testSingleStore()
@@ -235,6 +238,7 @@
assertEquals( "Versions do not match", project.getVersion(), proj.getVersion() );
assertEquals( "Found dependency when there should be none", 0, artifacts.size() );
+ dao.closeConnection();
}
public void testSingleStore_WithIncorrectVersion()
@@ -248,6 +252,7 @@
try
{
dao.storeProjectAndResolveDependencies( project, null, new ArrayList<ArtifactRepository>() );
+
}
catch ( java.io.IOException e )
{
@@ -264,6 +269,7 @@
return;
}
+ dao.closeConnection();
fail( "Found project when none should exist." );
}
/*
@@ -369,10 +375,11 @@
{
return null;
}
- ProjectDaoImpl dao = new ProjectDaoImpl();
+ ProjectDaoImpl dao = new ProjectDaoImpl();
WagonManagerTestStub stub = new WagonManagerTestStub();
stub.setBaseDir( basedir );
dao.initForUnitTest( rdfRepository, "", "", stub, new ArtifactFactoryTestStub() );
+ dao.openConnection();
return dao;
}
}
Modified: incubator/nmaven/branches/SI_GAC/components/dotnet-jetty/src/main/java/org/apache/maven/dotnet/jetty/JettyStarter.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/components/dotnet-jetty/src/main/java/org/apache/maven/dotnet/jetty/JettyStarter.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/components/dotnet-jetty/src/main/java/org/apache/maven/dotnet/jetty/JettyStarter.java (original)
+++ incubator/nmaven/branches/SI_GAC/components/dotnet-jetty/src/main/java/org/apache/maven/dotnet/jetty/JettyStarter.java Wed Jul 25 05:06:16 2007
@@ -20,7 +20,7 @@
{
try
{
- logger.addHandler( new FileHandler(System.getProperty( "user.home" ) + "\\.m2\\jetty-log.xml" ) );
+ logger.addHandler( new FileHandler(System.getProperty( "user.home" ) + "\\.m2\\embedder-logs\\jetty-log.xml" ) );
}
catch ( IOException e )
{
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-embedder-plugin/src/main/java/org/apache/maven/dotnet/plugin/embedder/EmbedderStarterMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-embedder-plugin/src/main/java/org/apache/maven/dotnet/plugin/embedder/EmbedderStarterMojo.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-embedder-plugin/src/main/java/org/apache/maven/dotnet/plugin/embedder/EmbedderStarterMojo.java (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-embedder-plugin/src/main/java/org/apache/maven/dotnet/plugin/embedder/EmbedderStarterMojo.java Wed Jul 25 05:06:16 2007
@@ -132,7 +132,7 @@
try
{
logger.addHandler(
- new FileHandler( System.getProperty( "user.home" ) + "\\.m2\\nmaven-embedder-log.xml" ) );
+ new FileHandler( System.getProperty( "user.home" ) + "\\.m2\\embedder-logs\\nmaven-embedder-log.xml" ) );
}
catch ( IOException e )
{
@@ -178,7 +178,7 @@
Set<Artifact> artifactDependencies = new HashSet<Artifact>();
Artifact artifact = artifactFactory.createDependencyArtifact( "org.mortbay.jetty", "jetty-embedded",
- VersionRange.createFromVersion( "6.1.3" ), "jar",
+ VersionRange.createFromVersion( "6.1.5" ), "jar",
null, "runtime", null );
logger.info( "NMAVEN-000-000: Dependency: Type = " + artifact.getType() + ", Artifact ID = " +
artifact.getArtifactId() );
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/FileInstallerMojo.java Wed Jul 25 05:06:16 2007
@@ -121,6 +121,7 @@
{
ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
dao.init( artifactFactory, wagonManager );
+ dao.openConnection();
artifactContext.init( project, project.getRemoteArtifactRepositories(), localRepository );
if ( pomFile != null && !pomFile.exists() )
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-install-plugin/src/main/java/org/apache/maven/dotnet/plugin/install/InstallerMojo.java Wed Jul 25 05:06:16 2007
@@ -139,6 +139,7 @@
ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
dao.init( artifactFactory, wagonManager );
+ dao.openConnection();
artifactContext.init( project, project.getRemoteArtifactRepositories(), localRepository );
if ( project.getPackaging().equals( "pom" ) )
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java Wed Jul 25 05:06:16 2007
@@ -31,6 +31,8 @@
import java.io.File;
import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.util.List;
import java.util.ArrayList;
@@ -42,6 +44,7 @@
import org.apache.maven.dotnet.executable.NetExecutable;
import org.apache.maven.dotnet.executable.ExecutionException;
import org.apache.maven.dotnet.PlatformUnsupportedException;
+import org.codehaus.plexus.util.FileUtils;
/**
* @author Shane Isbell
@@ -163,22 +166,54 @@
}
artifactContext.init( project, project.getRemoteArtifactRepositories(), new File( localRepository ) );
- try
- {
- artifactContext.getArtifactInstaller().resolveAndInstallNetDependenciesForProfile( profile,
- dependencies );
- }
- catch ( ArtifactResolutionException e )
- {
- throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
- }
- catch ( ArtifactNotFoundException e )
- {
- throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
- }
- catch ( ArtifactInstallationException e )
+ if ( !new File( localRepository, "nmaven.artifacts.resolved" ).exists() ) //performance optimization
{
- throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
+ try
+ {
+ artifactContext.getArtifactInstaller().resolveAndInstallNetDependenciesForProfile( profile,
+ dependencies );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
+ }
+ catch ( ArtifactInstallationException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
+ }
+
+ new File( localRepository, "nmaven.artifacts.resolved" ).mkdir();
+ /*
+ FileOutputStream fos = null;
+ try
+ {
+ new File( localRepository, "nmaven.artifacts.resolved" ).mkdir();
+ //fos = new FileOutputStream( new File( localRepository, "nmaven.artifacts.resolved" ) );
+ //fos.write( 0 );
+ }
+ catch ( IOException e )
+ {
+
+ }
+ finally
+ {
+ if ( fos != null )
+ {
+ try
+ {
+ fos.close();
+ }
+ catch ( IOException e )
+ {
+
+ }
+ }
+ }
+ */
}
//Do GAC Install, if needed
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/java/org/apache/maven/dotnet/plugin/vsinstaller/VsInstallerMojo.java Wed Jul 25 05:06:16 2007
@@ -191,8 +191,9 @@
outputFile.getParentFile().mkdir();
}
writer = new OutputStreamWriter( new FileOutputStream( outputFile ), "Unicode" );
+ String pab = new File(localRepository).getParent() + "\\pab";
writer.write(
- addin.replaceAll( "\\$\\{localRepository\\}", localRepository.replaceAll( "\\\\", "\\\\\\\\" ) ) );
+ addin.replaceAll( "\\$\\{localRepository\\}", pab.replaceAll( "\\\\", "\\\\\\\\" ) ) );
}
catch ( IOException e )
Modified: incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/resources/template/NMaven.VisualStudio.AddIn
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/resources/template/NMaven.VisualStudio.AddIn?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/resources/template/NMaven.VisualStudio.AddIn (original)
+++ incubator/nmaven/branches/SI_GAC/plugins/maven-vsinstaller-plugin/src/main/resources/template/NMaven.VisualStudio.AddIn Wed Jul 25 05:06:16 2007
@@ -5,7 +5,7 @@
<Version>8.0</Version>
</HostApplication>
<Addin>
- <Assembly>${localRepository}\NMaven\VisualStudio\NMaven.VisualStudio.Addin\0.14\NMaven.VisualStudio.Addin.dll</Assembly>
+ <Assembly>${localRepository}\gac_msil\NMaven.VisualStudio.Addin\0.14__NMaven.VisualStudio\NMaven.VisualStudio.Addin.dll</Assembly>
<FullClassName>NMaven.VisualStudio.Addin.Connect</FullClassName>
<FriendlyName>NMaven.VisualStudio.Addin</FriendlyName>
<Description>NMaven provides Maven 2.x plugins to support building of .NET applications</Description>
Modified: incubator/nmaven/branches/SI_GAC/pom.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_GAC/pom.xml?view=diff&rev=559413&r1=559412&r2=559413
==============================================================================
--- incubator/nmaven/branches/SI_GAC/pom.xml (original)
+++ incubator/nmaven/branches/SI_GAC/pom.xml Wed Jul 25 05:06:16 2007
@@ -226,7 +226,7 @@
</dependencies>
<properties>
<mavenVersion>2.1-SNAPSHOT</mavenVersion>
- <jettyVersion>6.1.3</jettyVersion>
+ <jettyVersion>6.1.5</jettyVersion>
<xfireVersion>1.2.5</xfireVersion>
</properties>
<dependencyManagement>