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 jo...@apache.org on 2011/02/22 07:28:25 UTC
svn commit: r1073235 - in
/incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project:
./ src/main/java/npanday/dao/ src/main/java/npanday/dao/impl/
src/test/java/npanday/dao/impl/
Author: jocaba
Date: Tue Feb 22 07:28:25 2011
New Revision: 1073235
URL: http://svn.apache.org/viewvc?rev=1073235&view=rev
Log:
[NPANDAY-231] Remove RDF repository and model
partial modification of ProjectDao module
Modified:
incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/pom.xml
incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/ProjectDao.java
incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java
incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/test/java/npanday/dao/impl/ProjectDaoImplTest.java
Modified: incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/pom.xml
URL: http://svn.apache.org/viewvc/incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/pom.xml?rev=1073235&r1=1073234&r2=1073235&view=diff
==============================================================================
--- incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/pom.xml (original)
+++ incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/pom.xml Tue Feb 22 07:28:25 2011
@@ -36,7 +36,12 @@ under the License.
<dependency>
<groupId>npanday</groupId>
<artifactId>dotnet-core</artifactId>
- </dependency>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>3.0.1</version>
+ </dependency>
<dependency>
<groupId>org.openrdf</groupId>
<artifactId>openrdf-model</artifactId>
Modified: incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/ProjectDao.java
URL: http://svn.apache.org/viewvc/incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/ProjectDao.java?rev=1073235&r1=1073234&r2=1073235&view=diff
==============================================================================
--- incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/ProjectDao.java (original)
+++ incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/ProjectDao.java Tue Feb 22 07:28:25 2011
@@ -127,26 +127,5 @@ public interface ProjectDao
Set<Project> getAllProjects()
throws IOException;
- /**
- * Sets the repository for the data access object. This method overrides the data source object set in the
- * DataAccessObject#init
- *
- * @param repository the rdf repository
- */
- void setRdfRepository( Repository repository );
-
- /**
- * Opens the repository connection specified within ProjectDao#setRdfRepository or DataAccessObject#init method
- *
- * @return true if the rdf repository successfully opens, otherwise return false
- */
- boolean openConnection();
-
- /**
- * Closes the repository connection specified within ProjectDao#setRdfRepository or DataAccessObject#init method
- *
- * @return true if the rdf repository successfully closes, otherwise return false
- */
- boolean closeConnection();
}
Modified: incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java?rev=1073235&r1=1073234&r2=1073235&view=diff
==============================================================================
--- incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java (original)
+++ incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java Tue Feb 22 07:28:25 2011
@@ -38,6 +38,7 @@ import org.apache.maven.artifact.resolve
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Model;
+import org.apache.maven.model.Dependency;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
@@ -64,6 +65,7 @@ import org.openrdf.repository.Repository
import org.openrdf.repository.RepositoryException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
+import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.io.EOFException;
@@ -111,12 +113,27 @@ public final class ProjectDaoImpl
private String projectQuery;
private ArtifactResolver artifactResolver;
+
+ public void init( Object dataStoreObject, String id, String className )
+ throws IllegalArgumentException
+ {
+ if ( dataStoreObject == null || !( dataStoreObject instanceof org.openrdf.repository.Repository ) )
+ {
+ throw new IllegalArgumentException(
+ "NPANDAY-180-023: Must initialize with an instance of org.openrdf.repository.Repository" );
+ }
- public void init( ArtifactFactory artifactFactory, ArtifactResolver artifactResolver )
+ this.id = id;
+ this.className = className;
+ this.rdfRepository = (org.openrdf.repository.Repository) dataStoreObject;
+ }
+
+ public void init( ArtifactFactory artifactFactory, ArtifactResolver artifactResolver)
{
this.artifactFactory = artifactFactory;
this.artifactResolver = artifactResolver;
-
+ this.className = className;
+
List<ProjectUri> projectUris = new ArrayList<ProjectUri>();
projectUris.add( ProjectUri.GROUP_ID );
projectUris.add( ProjectUri.ARTIFACT_ID );
@@ -271,8 +288,48 @@ public final class ProjectDaoImpl
project.setVersion( version );
project.setArtifactType( artifactType );
project.setPublicKeyTokenId( publicKeyTokenId );
+
+
+
+ //Read default settings.xml of maven to get LocalRepository Location
+ String m2_home = System.getenv("M2_HOME");
+
+ String localRepo = getLocalRepository(m2_home+"/conf/settings.xml");
+
+ String pomFile = localRepo + groupId.replace(".","/")+"/"+artifactId+"/"+version+"/"+artifactId+"-"+version+".pom.sha1";
+
+ Model model = null;
+ FileReader reader = null;
+ MavenXpp3Reader mavenreader = new MavenXpp3Reader();
+ try
+ {
+ reader = new FileReader(pomFile);
+ model = mavenreader.read(reader);
+ model.setPomFile(new File( pomFile ) );
+ }catch(Exception ex){}
+ MavenProject mavenProject = new MavenProject(model);
- TupleQueryResult result = null;
+ List<Dependency> deps = mavenProject.getDependencies();
+
+ for(Dependency dep : deps)
+ {
+ ProjectDependency projectDep = new ProjectDependency();
+ project.setArtifactId( dep.getArtifactId() );
+ project.setGroupId( dep.getGroupId() );
+ project.setVersion( dep.getVersion() );
+ Artifact artifact = createArtifactFrom( projectDep, artifactFactory );
+
+ if ( !artifact.getFile().exists() )
+ {
+ throw new IOException( "NPANDAY-180-123: Could not find GAC assembly: Group ID = " + groupId
+ + ", Artifact ID = " + artifactId + ", Version = " + version + ", Artifact Type = "
+ + artifactType + ", File Path = " + artifact.getFile().getAbsolutePath() );
+ }
+ }
+
+
+
+ /*TupleQueryResult result = null;
try
{
@@ -292,6 +349,9 @@ public final class ProjectDaoImpl
result = tupleQuery.evaluate();
+ System.out.println(">>>> RESULT "+ result);
+ System.out.println(">>>> binding names "+ result.getBindingNames() );
+
if ( !result.hasNext() )
{
@@ -318,10 +378,7 @@ public final class ProjectDaoImpl
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.hasBinding( ProjectUri.IS_RESOLVED.getObjectBinding() )
&& set.getBinding( ProjectUri.IS_RESOLVED.getObjectBinding() ).getValue().toString().equalsIgnoreCase(
"true" ) )
@@ -330,12 +387,7 @@ public final class ProjectDaoImpl
}
project.setArtifactType( set.getBinding( ProjectUri.ARTIFACT_TYPE.getObjectBinding() ).getValue().toString() );
- /*
- * if ( set.hasBinding( ProjectUri.PARENT.getObjectBinding() ) ) { String pid = set.getBinding(
- * ProjectUri.PARENT.getObjectBinding() ).getValue().toString(); String[] tokens = pid.split( "[:]" );
- * Project parentProject = getProjectFor( tokens[0], tokens[1], tokens[2], null, null );
- * project.setParentProject( parentProject ); }
- */
+
if ( set.hasBinding( ProjectUri.DEPENDENCY.getObjectBinding() ) )
{
Binding binding = set.getBinding( ProjectUri.DEPENDENCY.getObjectBinding() );
@@ -374,7 +426,7 @@ public final class ProjectDaoImpl
}
}
- }
+ }*/
// TODO: If has parent, then need to modify dependencies, etc of returned project
logger.finest( "NPANDAY-180-008: ProjectDao.GetProjectFor - Artifact Id = " + project.getArtifactId()
@@ -900,29 +952,15 @@ public final class ProjectDaoImpl
return id;
}
- public void init( Object dataStoreObject, String id, String className )
- throws IllegalArgumentException
- {
- if ( dataStoreObject == null || !( dataStoreObject instanceof org.openrdf.repository.Repository ) )
- {
- throw new IllegalArgumentException(
- "NPANDAY-180-023: Must initialize with an instance of org.openrdf.repository.Repository" );
- }
-
- this.id = id;
- this.className = className;
- this.rdfRepository = (org.openrdf.repository.Repository) dataStoreObject;
- }
-
public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry )
{
}
- protected void initForUnitTest( Object dataStoreObject, String id, String className,
+ protected void initForUnitTest( String id, String className,
ArtifactResolver artifactResolver, ArtifactFactory artifactFactory )
{
- this.init( dataStoreObject, id, className );
+ this.className = className;
init( artifactFactory, artifactResolver );
}
@@ -1167,6 +1205,50 @@ public final class ProjectDaoImpl
return attributes;
}
+
+ /*
+ * Read Default settings from M2_HOME value of ENV Var to check if there local repository is not in default Location
+ * Related to NPanday-361
+ */
+ private String getLocalRepository( String defaultMavenSettings)
+ {
+ List<String> attributes = new ArrayList<String>();
+ String localRepo = "";
+ try
+ {
+ File file = new File( defaultMavenSettings );
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.parse( file );
+ doc.getDocumentElement().normalize();
+
+ NodeList nodeLst = doc.getElementsByTagName( "localRepository");
+
+
+ for ( int s = 0; s < nodeLst.getLength(); s++ )
+ {
+ Node currentNode = nodeLst.item( s );
+
+ NodeList childrenList = currentNode.getChildNodes();
+
+ Node child = childrenList.item( 0 );
+ localRepo = child.getNodeValue();
+ }
+
+ }
+ catch ( Exception e )
+ {
+ logger.warning( "NPANDAY-181-218: Default Maven Settings not found, localRepo is set to default " + ", Message = " + e.getMessage() );
+ }
+
+ if (localRepo == "")
+ {
+ localRepo = System.getProperty("user.home")+"/.m2/repository/";
+ }
+
+ return localRepo;
+ }
private List<String> getInteropParameters( String interopAbsolutePath, String comRerefenceAbsolutePath,
String namespace )
Modified: incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/test/java/npanday/dao/impl/ProjectDaoImplTest.java
URL: http://svn.apache.org/viewvc/incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/test/java/npanday/dao/impl/ProjectDaoImplTest.java?rev=1073235&r1=1073234&r2=1073235&view=diff
==============================================================================
--- incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/test/java/npanday/dao/impl/ProjectDaoImplTest.java (original)
+++ incubator/npanday/branches/rdf-model-removal/components/dotnet-dao-project/src/test/java/npanday/dao/impl/ProjectDaoImplTest.java Tue Feb 22 07:28:25 2011
@@ -27,14 +27,6 @@ import npanday.dao.Requirement;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolver;
-import org.openrdf.repository.RepositoryConnection;
-import org.openrdf.repository.RepositoryException;
-import org.openrdf.repository.sail.SailRepository;
-import org.openrdf.rio.RDFHandler;
-import org.openrdf.rio.RDFHandlerException;
-import org.openrdf.rio.rdfxml.RDFXMLWriter;
-import org.openrdf.sail.memory.MemoryStore;
-import org.openrdf.sail.memory.MemoryStoreRDFSInferencer;
import java.io.File;
import java.io.FileOutputStream;
@@ -54,31 +46,16 @@ public class ProjectDaoImplTest
private static File localRepository = new File( System.getProperty( "basedir" ), "/target/local-test-repo" );
- private org.openrdf.repository.Repository rdfRepository;
-
- private File dataDir;
-
public void testBogus()
{
}
private ProjectDao createProjectDao()
- {
- dataDir = new File( basedir, ( "/target/rdf-repos/rdf-repo-" + System.currentTimeMillis() ) );
- rdfRepository = new SailRepository( new MemoryStoreRDFSInferencer( new MemoryStore( dataDir ) ) );
- try
- {
- rdfRepository.initialize();
- }
- catch ( RepositoryException e )
- {
- return null;
- }
+ {
ProjectDaoImpl dao = new ProjectDaoImpl();
ArtifactResolver stub = mock(ArtifactResolver.class);
- dao.initForUnitTest( rdfRepository, "", "", stub, new ArtifactFactoryTestStub() );
- dao.openConnection();
+ dao.initForUnitTest( "", "", stub, new ArtifactFactoryTestStub() );
return dao;
}
@@ -96,15 +73,6 @@ public class ProjectDaoImplTest
"31bf3856ad364e35" );
project.addProjectDependency( test2 );
- try
- {
- dao.storeProjectAndResolveDependencies( project, localRepository, new ArrayList<ArtifactRepository>() );
- }
- catch ( java.io.IOException e )
- {
- e.printStackTrace();
- fail( "Could not store the project: " + e.getMessage() );
- }
Set<Project> projects = null;
try
@@ -117,7 +85,7 @@ public class ProjectDaoImplTest
fail( "Could not retrieve the project: " + e.getMessage() );
}
- dao.closeConnection();
+
}
public void testGetAllProjects()
@@ -155,7 +123,7 @@ public class ProjectDaoImplTest
fail( "Could not retrieve the project: " + e.getMessage() );
}
- dao.closeConnection();
+
}
public void testStore_WithRequirements()
@@ -215,7 +183,7 @@ public class ProjectDaoImplTest
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 )
@@ -286,7 +254,6 @@ public class ProjectDaoImplTest
fail( "Could not retrieve the project: " + e.getMessage() );
}
- this.exportRepositoryToRdf( "testDependency-rdf.xml" );
Set<ProjectDependency> projectDependencies = testProject.getProjectDependencies();
assertEquals( "Incorrect number of dependencies", 1, projectDependencies.size() );
@@ -294,7 +261,7 @@ public class ProjectDaoImplTest
assertTrue( "Could not find required dependency. Found Dependency: GroupId = " + projectDependency.getGroupId()
+ ", Artifact Id = " + projectDependency.getArtifactId(), this.hasDependency( "NPanday", "NPanday.Test4",
"1.0.0", projectDependencies ) );
- dao.closeConnection();
+
}
public void testSingleStore()
@@ -334,7 +301,7 @@ public class ProjectDaoImplTest
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()
@@ -367,7 +334,7 @@ public class ProjectDaoImplTest
return;
}
- dao.closeConnection();
+
fail( "Found project when none should exist." );
}
@@ -395,33 +362,4 @@ public class ProjectDaoImplTest
return projectDependency;
}
- private void exportRepositoryToRdf( String fileName )
- {
- RDFHandler rdfxmlWriter;
- try
- {
- File exportFile = new File( localRepository.getParentFile(), fileName );
- rdfxmlWriter = new RDFXMLWriter( new FileOutputStream( exportFile ) );
- }
- catch ( IOException e )
- {
- // fail( e.getMessage() );
- return;
- }
-
- try
- {
- RepositoryConnection repositoryConnection = rdfRepository.getConnection();
- repositoryConnection.export( rdfxmlWriter );
- }
- catch ( RepositoryException e )
- {
- e.printStackTrace();
- }
- catch ( RDFHandlerException e )
- {
- e.printStackTrace();
- }
- }
-
}