You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/04/20 22:44:34 UTC
svn commit: r530911 [1/2] - in
/maven/archiva/branches/archiva-jpox-database-refactor:
archiva-database/src/main/java/org/apache/maven/archiva/database/
archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/
archiva-database/src/mai...
Author: joakime
Date: Fri Apr 20 13:44:32 2007
New Revision: 530911
URL: http://svn.apache.org/viewvc?view=rev&rev=530911
Log:
* Splitting up Constraint into DeclarativeConstraint and SimpleConstraint.
* Adding ArchivaDAO.query(SimpleConstraint).
* Adding UniqueGroupIdConstraint.
* Adding UniqueArtifactId Constraint.
* Adding UniqueVersionConstraint.
* Adding RepositoryBrowsing component.
* Refactoring webapp's BrowseAction groupId filtering into GroupIdFilter class.
* Refactoring BrowseAction to utilize new RepositoryBrowsing component.
Added:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java
- copied, changed from r530396, maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/AllTests.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraintTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraintTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraintTest.java (with props)
Removed:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractConstraint.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsBySha1ChecksumConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java Fri Apr 20 13:44:32 2007
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.List;
+
/**
* ArchivaDAO - The interface for all content within the database.
*
@@ -29,11 +31,19 @@
{
public static final String ROLE = ArchivaDAO.class.getName();
+ /**
+ * Perform a simple query against the database.
+ *
+ * @param constraint the constraint to use.
+ * @return the List of results.
+ */
+ List query( SimpleConstraint constraint );
+
ArtifactDAO getArtifactDAO();
ProjectModelDAO getProjectModelDAO();
RepositoryDAO getRepositoryDAO();
-
+
RepositoryProblemDAO getRepositoryProblemDAO();
}
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java Fri Apr 20 13:44:32 2007
@@ -1,10 +1,32 @@
package org.apache.maven.archiva.database;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
/**
- * Constraint
+ * Constraint - a generic object for dealing with database constraints.
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
+ * @see DeclarativeConstraint
+ * @see SimpleConstraint
*/
public interface Constraint
{
@@ -18,52 +40,4 @@
* @return the fetch limits on the object. (can be null) (O/RM specific)
*/
public String getFetchLimits();
-
- /**
- * Get the SELECT WHERE (condition) value for the constraint.
- *
- * @return the equivalent of the SELECT WHERE (condition) value for this constraint. (can be null)
- */
- public String getWhereCondition();
-
- /**
- * Get the sort column name.
- *
- * @return the sort column name. (can be null)
- */
- public String getSortColumn();
-
- /**
- * Get the sort direction name.
- *
- * @return the sort direction name. ("ASC" or "DESC") (only valid if {@link #getSortColumn()} is specified.)
- */
- public String getSortDirection();
-
- /**
- * Get the declared imports used for this query. (optional)
- *
- * NOTE: This is DAO implementation specific.
- *
- * @return the imports. (can be null)
- */
- public String[] getDeclaredImports();
-
- /**
- * Get the declared parameters used for this query. (optional)
- *
- * NOTE: This is DAO implementation specific.
- *
- * @return the parameters. (can be null)
- */
- public String[] getDeclaredParameters();
-
- /**
- * Get the parameters used for this query. (required if using {@link #getDeclaredParameters()} )
- *
- * NOTE: This is DAO implementation specific.
- *
- * @return the parameters. (can be null)
- */
- public Object[] getParameters();
}
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,77 @@
+package org.apache.maven.archiva.database;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * DeclarativeConstraint
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface DeclarativeConstraint extends Constraint
+{
+ /**
+ * Get the declared imports used for this query. (optional)
+ *
+ * NOTE: This is DAO implementation specific.
+ *
+ * @return the imports. (can be null)
+ */
+ public abstract String[] getDeclaredImports();
+
+ /**
+ * Get the declared parameters used for this query. (optional)
+ *
+ * NOTE: This is DAO implementation specific.
+ *
+ * @return the parameters. (can be null)
+ */
+ public abstract String[] getDeclaredParameters();
+
+ /**
+ * Get the parameters used for this query. (required if using {@link #getDeclaredParameters()} )
+ *
+ * NOTE: This is DAO implementation specific.
+ *
+ * @return the parameters. (can be null)
+ */
+ public abstract Object[] getParameters();
+
+ /**
+ * Get the sort direction name.
+ *
+ * @return the sort direction name. ("ASC" or "DESC") (only valid if {@link #getSortColumn()} is specified.)
+ */
+ public abstract String getSortDirection();
+
+ /**
+ * Get the sort column name.
+ *
+ * @return the sort column name. (can be null)
+ */
+ public abstract String getSortColumn();
+
+ /**
+ * Get the SELECT WHERE (condition) value for the constraint.
+ *
+ * @return the equivalent of the SELECT WHERE (condition) value for this constraint. (can be null)
+ */
+ public abstract String getWhereCondition();
+}
\ No newline at end of file
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,60 @@
+package org.apache.maven.archiva.database;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * SimpleConstraint
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface SimpleConstraint extends Constraint
+{
+ /**
+ * Get the parameters used for this query. (required if using parameterized SQL)
+ *
+ * NOTE: This is DAO implementation specific.
+ *
+ * @return the parameters. (can be null)
+ */
+ public Object[] getParameters();
+
+ /**
+ * Get the SELECT query value for the constraint.
+ *
+ * @return the SELECT value for this constraint. (can be null)
+ */
+ public abstract String getSelectSql();
+
+ /**
+ * For simple Constraints the results class must be specified.
+ *
+ * @return the result class.
+ */
+ public Class getResultClass();
+
+ /**
+ * When working with result classes that are not persistable,
+ * it is advisable to tell the underlying DAO to not do the persistable related efforts.
+ *
+ * @return true if result classes are persistable.
+ */
+ public boolean isResultsPersistable();
+}
\ No newline at end of file
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,114 @@
+package org.apache.maven.archiva.database.browsing;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.collections.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * BrowsingResults
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class BrowsingResults
+{
+ private String selectedGroupId;
+
+ private String selectedArtifactId;
+
+ private List groupIds = null;
+
+ private List artifacts = null;
+
+ private List versions = null;
+
+ public BrowsingResults()
+ {
+ /* do nothing, this is the results of the root */
+ }
+
+ public BrowsingResults( String groupId )
+ {
+ this.selectedGroupId = groupId;
+ }
+
+ public BrowsingResults( String groupId, String artifactId )
+ {
+ this.selectedGroupId = groupId;
+ this.selectedArtifactId = artifactId;
+ }
+
+ public List getArtifacts()
+ {
+ return artifacts;
+ }
+
+ public List getGroupIds()
+ {
+ return groupIds;
+ }
+
+ public String getSelectedArtifactId()
+ {
+ return selectedArtifactId;
+ }
+
+ public String getSelectedGroupId()
+ {
+ return selectedGroupId;
+ }
+
+ public List getVersions()
+ {
+ return versions;
+ }
+
+ public boolean hasArtifacts()
+ {
+ return CollectionUtils.isNotEmpty( artifacts );
+ }
+
+ public boolean hasGroupIds()
+ {
+ return CollectionUtils.isNotEmpty( groupIds );
+ }
+
+ public boolean hasVersions()
+ {
+ return CollectionUtils.isNotEmpty( versions );
+ }
+
+ public void setArtifacts( List artifacts )
+ {
+ this.artifacts = artifacts;
+ }
+
+ public void setGroupIds( List groupIds )
+ {
+ this.groupIds = groupIds;
+ }
+
+ public void setVersions( List versions )
+ {
+ this.versions = versions;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/BrowsingResults.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,98 @@
+package org.apache.maven.archiva.database.browsing;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.database.ObjectNotFoundException;
+import org.apache.maven.archiva.database.constraints.UniqueArtifactIdConstraint;
+import org.apache.maven.archiva.database.constraints.UniqueGroupIdConstraint;
+import org.apache.maven.archiva.database.constraints.UniqueVersionConstraint;
+import org.apache.maven.archiva.model.ArchivaProjectModel;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+
+import java.util.List;
+
+/**
+ * DefaultRepositoryBrowsing
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.maven.archiva.database.browsing.RepositoryBrowsing"
+ * role-hint="default"
+ */
+public class DefaultRepositoryBrowsing
+ extends AbstractLogEnabled
+ implements RepositoryBrowsing
+{
+ /**
+ * @plexus.requirement
+ */
+ private ArchivaDAO dao;
+
+ public BrowsingResults getRoot()
+ {
+ List groups = dao.query( new UniqueGroupIdConstraint() );
+
+ BrowsingResults results = new BrowsingResults();
+
+ results.setGroupIds( GroupIdFilter.filterGroups( groups ) );
+
+ return results;
+ }
+
+ public BrowsingResults selectArtifactId( String groupId, String artifactId )
+ {
+ // List groups = dao.query( new UniqueGroupIdConstraint( groupId ) );
+ // List artifacts = dao.query( new UniqueArtifactIdConstraint( groupId ) );
+ List versions = dao.query( new UniqueVersionConstraint( groupId, artifactId ) );
+
+ BrowsingResults results = new BrowsingResults( groupId, artifactId );
+
+ // results.setGroupIds( groups );
+ // results.setArtifacts( artifacts );
+ results.setArtifacts( versions );
+
+ return results;
+ }
+
+ public BrowsingResults selectGroupId( String groupId )
+ {
+ List groups = dao.query( new UniqueGroupIdConstraint( groupId ) );
+ List artifacts = dao.query( new UniqueArtifactIdConstraint( groupId ) );
+
+ BrowsingResults results = new BrowsingResults( groupId );
+ results.setGroupIds( groups );
+ results.setArtifacts( artifacts );
+
+ return results;
+ }
+
+ public ArchivaProjectModel selectVersion( String groupId, String artifactId, String version )
+ throws ObjectNotFoundException, ArchivaDatabaseException
+ {
+ ArchivaProjectModel model = dao.getProjectModelDAO().getProjectModel( groupId, artifactId, version );
+
+ // TODO: if the model isn't found. load it from disk, insert into DB, and then return it.
+
+ return model;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/DefaultRepositoryBrowsing.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,176 @@
+package org.apache.maven.archiva.database.browsing;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+
+/**
+ * GroupIdFilter - utility methods for filtering groupIds.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class GroupIdFilter
+{
+ private static final String GROUP_SEPARATOR = ".";
+
+ /**
+ * <p>
+ * Filter out excessive groupId naming. (to provide a tree-ish view of the list of groupIds).
+ * </p>
+ *
+ * <pre>
+ * // Input List
+ * commons-lang
+ * com.jsch
+ * org.apache.apache
+ * org.apache.maven
+ * org.codehaus.modello
+ * // Filtered List
+ * commons-lang
+ * com.jsch
+ * org
+ * </pre>
+ *
+ * <pre>
+ * // Input List
+ * commons-lang
+ * commons-io
+ * commons-pool
+ * com.jsch
+ * com.jsch.lib
+ * com.jsch.providers
+ * org.apache.apache
+ * org.apache.maven
+ * org.apache.maven.archiva
+ * org.apache.maven.shared
+ * // Filtered List
+ * commons-lang
+ * commons-io
+ * commons-pool
+ * com.jsch
+ * org.apache
+ * </pre>
+ *
+ * @param groups the list of groupIds.
+ * @return
+ */
+ public static List filterGroups( List groups )
+ {
+ GroupTreeNode tree = buildGroupTree( groups );
+ return collateGroups( tree );
+ }
+
+ public static GroupTreeNode buildGroupTree( List groups )
+ {
+ GroupTreeNode rootNode = new GroupTreeNode();
+
+ // build a tree structure
+ for ( Iterator i = groups.iterator(); i.hasNext(); )
+ {
+ String groupId = (String) i.next();
+
+ StringTokenizer tok = new StringTokenizer( groupId, GROUP_SEPARATOR );
+
+ GroupTreeNode node = rootNode;
+
+ while ( tok.hasMoreTokens() )
+ {
+ String part = tok.nextToken();
+
+ if ( !node.getChildren().containsKey( part ) )
+ {
+ GroupTreeNode newNode = new GroupTreeNode( part, node );
+ node.addChild( newNode );
+ node = newNode;
+ }
+ else
+ {
+ node = (GroupTreeNode) node.getChildren().get( part );
+ }
+ }
+ }
+
+ return rootNode;
+ }
+
+ private static List collateGroups( GroupTreeNode rootNode )
+ {
+ List groups = new ArrayList();
+ for ( Iterator i = rootNode.getChildren().values().iterator(); i.hasNext(); )
+ {
+ GroupTreeNode node = (GroupTreeNode) i.next();
+
+ while ( node.getChildren().size() == 1 )
+ {
+ node = (GroupTreeNode) node.getChildren().values().iterator().next();
+ }
+
+ groups.add( node.getFullName() );
+ }
+ return groups;
+ }
+
+ private static class GroupTreeNode
+ {
+ private final String name;
+
+ private final String fullName;
+
+ private final Map children = new TreeMap();
+
+ GroupTreeNode()
+ {
+ name = null;
+ fullName = null;
+ }
+
+ GroupTreeNode( String name, GroupTreeNode parent )
+ {
+ this.name = name;
+ this.fullName = parent.fullName != null ? parent.fullName + GROUP_SEPARATOR + name : name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public String getFullName()
+ {
+ return fullName;
+ }
+
+ public Map getChildren()
+ {
+ return children;
+ }
+
+ public void addChild( GroupTreeNode newNode )
+ {
+ children.put( newNode.name, newNode );
+ }
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/GroupIdFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,42 @@
+package org.apache.maven.archiva.database.browsing;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.database.ObjectNotFoundException;
+import org.apache.maven.archiva.model.ArchivaProjectModel;
+
+/**
+ * RepositoryBrowsing
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public interface RepositoryBrowsing
+{
+ public BrowsingResults getRoot();
+
+ public BrowsingResults selectGroupId( String groupId );
+
+ public BrowsingResults selectArtifactId( String groupId, String artifactId );
+
+ public ArchivaProjectModel selectVersion( String groupId, String artifactId, String version )
+ throws ObjectNotFoundException, ArchivaDatabaseException;
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsing.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java (from r530396, maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractConstraint.java)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java?view=diff&rev=530911&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractConstraint.java&r1=530396&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java Fri Apr 20 13:44:32 2007
@@ -20,18 +20,21 @@
*/
import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.database.DeclarativeConstraint;
/**
- * AbstractConstraint
+ * AbstractDeclarativeConstraint
*
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
* @version $Id$
*/
-public abstract class AbstractConstraint
- implements Constraint
+public abstract class AbstractDeclarativeConstraint
+ implements DeclarativeConstraint
{
protected String[] declImports;
+
protected String[] declParams;
+
protected Object[] params;
public String getFetchLimits()
@@ -48,7 +51,7 @@
{
return declParams;
}
-
+
public Object[] getParameters()
{
return params;
@@ -58,8 +61,4 @@
{
return Constraint.ASCENDING;
}
-
- public abstract String getSortColumn();
-
- public abstract String getWhereCondition();
}
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,49 @@
+package org.apache.maven.archiva.database.constraints;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.SimpleConstraint;
+
+/**
+ * Simple Constraint abstract for working with nearly-raw SQL strings.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public abstract class AbstractSimpleConstraint
+ implements SimpleConstraint
+{
+ protected Object[] params;
+
+ public Object[] getParameters()
+ {
+ return params;
+ }
+
+ public String getFetchLimits()
+ {
+ return null;
+ }
+
+ public boolean isResultsPersistable()
+ {
+ return false;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArchivaRepositoryByUrlConstraint.java Fri Apr 20 13:44:32 2007
@@ -9,7 +9,7 @@
* @version $Id$
*/
public class ArchivaRepositoryByUrlConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereCondition;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsBySha1ChecksumConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsBySha1ChecksumConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsBySha1ChecksumConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsBySha1ChecksumConstraint.java Fri Apr 20 13:44:32 2007
@@ -28,7 +28,7 @@
* @version $Id$
*/
public class ArtifactsBySha1ChecksumConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsProcessedConstraint.java Fri Apr 20 13:44:32 2007
@@ -30,7 +30,7 @@
* @version $Id$
*/
public class ArtifactsProcessedConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsRelatedConstraint.java Fri Apr 20 13:44:32 2007
@@ -29,7 +29,7 @@
* @version $Id$
*/
public class ArtifactsRelatedConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderArtifactsByAgeConstraint.java Fri Apr 20 13:44:32 2007
@@ -31,7 +31,7 @@
* @version $Id$
*/
public class OlderArtifactsByAgeConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/OlderSnapshotArtifactsByAgeConstraint.java Fri Apr 20 13:44:32 2007
@@ -31,7 +31,7 @@
* @version $Id$
*/
public class OlderSnapshotArtifactsByAgeConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RecentArtifactsByAgeConstraint.java Fri Apr 20 13:44:32 2007
@@ -31,7 +31,7 @@
* @version $Id$
*/
public class RecentArtifactsByAgeConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/RepositoryProblemByTypeConstraint.java Fri Apr 20 13:44:32 2007
@@ -28,7 +28,7 @@
* @version $Id$
*/
public class RepositoryProblemByTypeConstraint
- extends AbstractConstraint
+ extends AbstractDeclarativeConstraint
implements Constraint
{
private String whereClause;
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,60 @@
+package org.apache.maven.archiva.database.constraints;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.model.ArchivaArtifactModel;
+
+/**
+ * Obtain a set of unique ArtifactIds for the specified groupId.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class UniqueArtifactIdConstraint
+ extends AbstractSimpleConstraint
+ implements Constraint
+{
+ private String sql;
+
+ /**
+ * Obtain a set of unique ArtifactIds for the specified groupId.
+ *
+ * @param groupId the groupId to search for artifactIds within.
+ */
+ public UniqueArtifactIdConstraint( String groupId )
+ {
+ sql = "SELECT artifactId FROM " + ArchivaArtifactModel.class.getName()
+ + " WHERE groupId == selectedGroupId PARAMETERS String selectedGroupId"
+ + " GROUP BY artifactId ORDER BY artifactId ASCENDING";
+
+ super.params = new Object[] { groupId };
+ }
+
+ public Class getResultClass()
+ {
+ return String.class;
+ }
+
+ public String getSelectSql()
+ {
+ return sql;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueArtifactIdConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,62 @@
+package org.apache.maven.archiva.database.constraints;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.model.ArchivaArtifactModel;
+
+/**
+ * UniqueGroupIdConstraint
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class UniqueGroupIdConstraint
+ extends AbstractSimpleConstraint
+ implements Constraint
+{
+ private String sql;
+
+ public UniqueGroupIdConstraint()
+ {
+ /* this assumes search for no groupId prefix */
+ sql = "SELECT groupId FROM " + ArchivaArtifactModel.class.getName()
+ + " GROUP BY groupId ORDER BY groupId ASCENDING";
+ }
+
+ public UniqueGroupIdConstraint( String groupIdPrefix )
+ {
+ sql = "SELECT groupId FROM " + ArchivaArtifactModel.class.getName()
+ + " WHERE groupId.startsWith(groupIdPrefix) PARAMETERS String groupIdPrefix"
+ + " GROUP BY groupId ORDER BY groupId ASCENDING";
+
+ super.params = new Object[] { groupIdPrefix };
+ }
+
+ public Class getResultClass()
+ {
+ return String.class;
+ }
+
+ public String getSelectSql()
+ {
+ return sql;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueGroupIdConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,73 @@
+package org.apache.maven.archiva.database.constraints;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.model.ArchivaArtifactModel;
+
+/**
+ * Obtain the list of version's for specific GroupId and ArtifactId.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class UniqueVersionConstraint
+ extends AbstractSimpleConstraint
+ implements Constraint
+{
+ private String sql;
+
+ /**
+ * Obtain the list of version's for specific GroupId and ArtifactId.
+ *
+ * @param groupId the selected groupId.
+ * @param artifactId the selected artifactId.
+ */
+ public UniqueVersionConstraint( String groupId, String artifactId )
+ {
+ if ( StringUtils.isBlank( groupId ) )
+ {
+ throw new IllegalArgumentException( "A blank groupId is not allowed." );
+ }
+
+ if ( StringUtils.isBlank( artifactId ) )
+ {
+ throw new IllegalArgumentException( "A blank artifactId is not allowed." );
+ }
+
+ sql = "SELECT version FROM " + ArchivaArtifactModel.class.getName()
+ + " WHERE groupId == selectedGroupId && artifactId == selectedArtifactId"
+ + " PARAMETERS String selectedGroupId, String selectedArtifactId"
+ + " GROUP BY version ORDER BY version ASCENDING";
+
+ super.params = new Object[] { groupId, artifactId };
+ }
+
+ public Class getResultClass()
+ {
+ return String.class;
+ }
+
+ public String getSelectSql()
+ {
+ return sql;
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/UniqueVersionConstraint.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java Fri Apr 20 13:44:32 2007
@@ -22,13 +22,17 @@
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.Constraint;
+import org.apache.maven.archiva.database.DeclarativeConstraint;
import org.apache.maven.archiva.database.ObjectNotFoundException;
+import org.apache.maven.archiva.database.SimpleConstraint;
+import org.apache.maven.archiva.database.constraints.AbstractSimpleConstraint;
import org.apache.maven.archiva.model.CompoundKey;
import org.codehaus.plexus.jdo.JdoFactory;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import java.io.PrintStream;
+import java.util.ArrayList;
import java.util.List;
import javax.jdo.Extent;
@@ -167,10 +171,10 @@
public List getAllObjects( Class clazz )
{
- return getAllObjects( clazz, null );
+ return queryObjects( clazz, null );
}
- public List getAllObjects( Class clazz, Constraint constraint )
+ public List queryObjects( Class clazz, Constraint constraint )
{
PersistenceManager pm = getPersistenceManager();
Transaction tx = pm.currentTransaction();
@@ -179,93 +183,26 @@
{
tx.begin();
- Extent extent = pm.getExtent( clazz, true );
-
- Query query = pm.newQuery( extent );
-
List result = null;
if ( constraint != null )
{
- if ( constraint.getSortColumn() != null )
- {
- String ordering = constraint.getSortColumn();
-
- if ( constraint.getSortDirection() != null )
- {
- ordering += " " + constraint.getSortDirection();
- }
-
- query.setOrdering( ordering );
- }
-
- if ( constraint.getFetchLimits() != null )
- {
- pm.getFetchPlan().addGroup( constraint.getFetchLimits() );
- }
-
- if ( constraint.getWhereCondition() != null )
- {
- query.setFilter( constraint.getWhereCondition() );
- }
-
- if ( constraint.getDeclaredImports() != null )
+ if ( constraint instanceof DeclarativeConstraint )
{
- for ( int i = 0; i < constraint.getDeclaredImports().length; i++ )
- {
- String qimport = constraint.getDeclaredImports()[i];
- query.declareImports( qimport );
- }
+ result = processConstraint( pm, clazz, (DeclarativeConstraint) constraint );
}
-
- if ( constraint.getDeclaredParameters() != null )
+ else if ( constraint instanceof AbstractSimpleConstraint )
{
- if ( constraint.getParameters() == null )
- {
- throw new JDOException( "Unable to use query, there are declared parameters, "
- + "but no parameter objects to use." );
- }
-
- if ( constraint.getParameters().length != constraint.getDeclaredParameters().length )
- {
- throw new JDOException( "Unable to use query, there are <"
- + constraint.getDeclaredParameters().length + "> declared parameters, yet there are <"
- + constraint.getParameters().length + "> parameter objects to use. This should be equal." );
- }
-
- for ( int i = 0; i < constraint.getDeclaredParameters().length; i++ )
- {
- String declaredParam = constraint.getDeclaredParameters()[i];
- query.declareParameters( declaredParam );
- }
-
- switch ( constraint.getParameters().length )
- {
- case 1:
- result = (List) query.execute( constraint.getParameters()[0] );
- break;
- case 2:
- result = (List) query
- .execute( constraint.getParameters()[0], constraint.getParameters()[1] );
- break;
- case 3:
- result = (List) query
- .execute( constraint.getParameters()[0], constraint.getParameters()[1], constraint
- .getParameters()[2] );
- break;
- default:
- throw new JDOException( "Unable to use more than 3 parameters." );
- }
+ result = processConstraint( pm, (SimpleConstraint) constraint );
}
else
{
- // Process unparameterized query.
- result = (List) query.execute();
+ result = processUnconstrained( pm, clazz );
}
}
else
{
- result = (List) query.execute();
+ result = processUnconstrained( pm, clazz );
}
result = (List) pm.detachCopyAll( result );
@@ -277,6 +214,150 @@
finally
{
rollbackIfActive( tx );
+ }
+ }
+
+ public List queryObjects( SimpleConstraint constraint )
+ {
+ PersistenceManager pm = getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ List result = processConstraint( pm, constraint );
+
+ // Only detach if results are known to be persistable.
+ if ( constraint.isResultsPersistable() )
+ {
+ result = (List) pm.detachCopyAll( result );
+ }
+ else
+ {
+ List copiedResults = new ArrayList();
+ copiedResults.addAll( result );
+ result = copiedResults;
+ }
+
+ tx.commit();
+
+ return result;
+ }
+ finally
+ {
+ rollbackIfActive( tx );
+ }
+ }
+
+ private List processUnconstrained( PersistenceManager pm, Class clazz )
+ {
+ Extent extent = pm.getExtent( clazz, true );
+ Query query = pm.newQuery( extent );
+ return (List) query.execute();
+ }
+
+ private List processConstraint( PersistenceManager pm, SimpleConstraint constraint )
+ {
+ Query query = pm.newQuery( constraint.getSelectSql() );
+
+ if ( constraint.getResultClass() == null )
+ {
+ throw new IllegalStateException( "Unable to use a SimpleConstraint with a null result class." );
+ }
+
+ query.setResultClass( constraint.getResultClass() );
+
+ if ( constraint.getFetchLimits() != null )
+ {
+ pm.getFetchPlan().addGroup( constraint.getFetchLimits() );
+ }
+
+ if ( constraint.getParameters() != null )
+ {
+ return processParameterizedQuery( query, constraint.getParameters() );
+ }
+
+ return (List) query.execute();
+ }
+
+ private List processConstraint( PersistenceManager pm, Class clazz, DeclarativeConstraint constraint )
+ {
+ Extent extent = pm.getExtent( clazz, true );
+ Query query = pm.newQuery( extent );
+
+ if ( constraint.getSortColumn() != null )
+ {
+ String ordering = constraint.getSortColumn();
+
+ if ( constraint.getSortDirection() != null )
+ {
+ ordering += " " + constraint.getSortDirection();
+ }
+
+ query.setOrdering( ordering );
+ }
+
+ if ( constraint.getFetchLimits() != null )
+ {
+ pm.getFetchPlan().addGroup( constraint.getFetchLimits() );
+ }
+
+ if ( constraint.getWhereCondition() != null )
+ {
+ query.setFilter( constraint.getWhereCondition() );
+ }
+
+ if ( constraint.getDeclaredImports() != null )
+ {
+ for ( int i = 0; i < constraint.getDeclaredImports().length; i++ )
+ {
+ String qimport = constraint.getDeclaredImports()[i];
+ query.declareImports( qimport );
+ }
+ }
+
+ if ( constraint.getDeclaredParameters() != null )
+ {
+ if ( constraint.getParameters() == null )
+ {
+ throw new JDOException( "Unable to use query, there are declared parameters, "
+ + "but no parameter objects to use." );
+ }
+
+ if ( constraint.getParameters().length != constraint.getDeclaredParameters().length )
+ {
+ throw new JDOException( "Unable to use query, there are <" + constraint.getDeclaredParameters().length
+ + "> declared parameters, yet there are <" + constraint.getParameters().length
+ + "> parameter objects to use. This should be equal." );
+ }
+
+ for ( int i = 0; i < constraint.getDeclaredParameters().length; i++ )
+ {
+ String declaredParam = constraint.getDeclaredParameters()[i];
+ query.declareParameters( declaredParam );
+ }
+
+ return processParameterizedQuery( query, constraint.getParameters() );
+ }
+ else
+ {
+ return (List) query.execute();
+ }
+ }
+
+ private List processParameterizedQuery( Query query, Object parameters[] )
+ {
+ switch ( parameters.length )
+ {
+ case 1:
+ return (List) query.execute( parameters[0] );
+ case 2:
+ return (List) query.execute( parameters[0], parameters[1] );
+ case 3:
+ return (List) query.execute( parameters[0], parameters[1], parameters[2] );
+ default:
+ throw new JDOException( "Unable to use more than 3 parameters." );
}
}
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java Fri Apr 20 13:44:32 2007
@@ -24,8 +24,11 @@
import org.apache.maven.archiva.database.ProjectModelDAO;
import org.apache.maven.archiva.database.RepositoryDAO;
import org.apache.maven.archiva.database.RepositoryProblemDAO;
+import org.apache.maven.archiva.database.SimpleConstraint;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import java.util.List;
+
/**
* JdoArchivaDAO
*
@@ -39,6 +42,11 @@
implements ArchivaDAO
{
/**
+ * @plexus.requirement role-hint="archiva"
+ */
+ private JdoAccess jdo;
+
+ /**
* @plexus.requirement role-hint="jdo"
*/
private ArtifactDAO artifactDAO;
@@ -57,6 +65,11 @@
* @plexus.requirement role-hint="jdo"
*/
private RepositoryProblemDAO repositoryProblemDAO;
+
+ public List query( SimpleConstraint constraint )
+ {
+ return jdo.queryObjects( constraint );
+ }
public ArtifactDAO getArtifactDAO()
{
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java Fri Apr 20 13:44:32 2007
@@ -87,7 +87,7 @@
public List queryArtifacts( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- List results = jdo.getAllObjects( ArchivaArtifactModel.class, constraint );
+ List results = jdo.queryObjects( ArchivaArtifactModel.class, constraint );
if ( ( results == null ) || results.isEmpty() )
{
return results;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoProjectModelDAO.java Fri Apr 20 13:44:32 2007
@@ -77,7 +77,7 @@
public List queryProjectModels( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- return jdo.getAllObjects( ArchivaProjectModel.class, constraint );
+ return jdo.queryObjects( ArchivaProjectModel.class, constraint );
}
public ArchivaProjectModel saveProjectModel( ArchivaProjectModel model )
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryDAO.java Fri Apr 20 13:44:32 2007
@@ -81,7 +81,7 @@
public List queryRepositories( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- List results = jdo.getAllObjects( ArchivaRepositoryModel.class, constraint );
+ List results = jdo.queryObjects( ArchivaRepositoryModel.class, constraint );
if ( ( results == null ) || results.isEmpty() )
{
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java?view=diff&rev=530911&r1=530910&r2=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoRepositoryProblemDAO.java Fri Apr 20 13:44:32 2007
@@ -46,7 +46,7 @@
public List queryRepositoryProblems( Constraint constraint )
throws ObjectNotFoundException, ArchivaDatabaseException
{
- return jdo.getAllObjects( RepositoryProblem.class, constraint );
+ return jdo.queryObjects( RepositoryProblem.class, constraint );
}
public RepositoryProblem saveRepositoryProblem( RepositoryProblem problem )
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java?view=auto&rev=530911
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java Fri Apr 20 13:44:32 2007
@@ -0,0 +1,115 @@
+package org.apache.maven.archiva.database.browsing;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
+import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.ArtifactDAO;
+import org.apache.maven.archiva.model.ArchivaArtifact;
+
+import java.util.Date;
+
+/**
+ * RepositoryBrowsingTest
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryBrowsingTest
+ extends AbstractArchivaDatabaseTestCase
+{
+ private ArtifactDAO artifactDao;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" );
+ artifactDao = dao.getArtifactDAO();
+ }
+
+ public ArchivaArtifact createArtifact( String groupId, String artifactId, String version )
+ {
+ ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, "", "jar" );
+ artifact.getModel().setLastModified( new Date() ); // mandatory field.
+ artifact.getModel().setRepositoryId( "testable_repo" );
+ return artifact;
+ }
+
+ public void saveTestData()
+ throws Exception
+ {
+ ArchivaArtifact artifact;
+
+ // Setup artifacts in fresh DB.
+ artifact = createArtifact( "commons-lang", "commons-lang", "2.0" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "commons-lang", "commons-lang", "2.1" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.test", "test-one", "1.2" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.test.foo", "test-two", "1.0" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.0" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1-SNAPSHOT" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1.1" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.shared", "test-two", "2.1-alpha-1" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.apache.maven.shared", "test-bar", "2.1" );
+ artifactDao.saveArtifact( artifact );
+
+ artifact = createArtifact( "org.codehaus.modello", "modellong", "3.0" );
+ artifactDao.saveArtifact( artifact );
+ }
+
+ public RepositoryBrowsing lookupBrowser()
+ throws Exception
+ {
+ RepositoryBrowsing browser = (RepositoryBrowsing) lookup( RepositoryBrowsing.class.getName(), "default" );
+ assertNotNull( "RepositoryBrowsing should not be null.", browser );
+ return browser;
+ }
+
+ public void testSimpleBrowse()
+ throws Exception
+ {
+ saveTestData();
+
+ RepositoryBrowsing browser = lookupBrowser();
+ BrowsingResults results = browser.getRoot();
+ assertNotNull( "Browsing Results should not be null.", results );
+
+ String expectedRootGroupIds[] = new String[] { "commons-lang", "org" };
+
+ assertEquals( "Browsing Results: groupIds on root.", expectedRootGroupIds.length, results.getGroupIds().size() );
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/test/java/org/apache/maven/archiva/database/browsing/RepositoryBrowsingTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain