Author: olamy
Date: Fri Aug 19 07:52:52 2011
New Revision: 1159529
URL: http://svn.apache.org/viewvc?rev=1159529&view=rev
Log:
[MRM-1490] Expose Archiva services trough REST
start adding some services :
* search
* administration
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
- copied, changed from r1159124,
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
- copied, changed from r1159124,
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java?rev=1159529&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
Fri Aug 19 07:52:52 2011
@@ -0,0 +1,146 @@
+package org.apache.archiva.rest.api.model;
+
+/*
+ * 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 javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+
+/**
+ * @since 1.4
+ */
+@XmlRootElement( name = "managedRepository" )
+public class ManagedRepository
+ implements Serializable
+{
+ private String id;
+
+ private String name;
+
+ private String url;
+
+ private String layout;
+
+ private boolean snapshots = false;
+
+ private boolean releases = false;
+
+ public ManagedRepository()
+ {
+ // no op
+ }
+
+ public ManagedRepository( String id, String name, String url, String
layout, boolean snapshots, boolean releases )
+ {
+ this.id = id;
+ this.name = name;
+ this.url = url;
+ this.layout = layout;
+ this.snapshots = snapshots;
+ this.releases = releases;
+ }
+
+ public boolean equals(Object other)
+ {
+ if ( this == other)
+ {
+ return true;
+ }
+
+ if ( !(other instanceof ManagedRepository) )
+ {
+ return false;
+ }
+
+ ManagedRepository that = (ManagedRepository) other;
+ boolean result = true;
+ result = result && ( getId() == null ? that.getId() == null :
getId().equals( that.getId() ) );
+ return result;
+ }
+
+ public String getId()
+ {
+ return this.id;
+ }
+
+ public String getLayout()
+ {
+ return this.layout;
+ }
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public String getUrl()
+ {
+ return this.url;
+ }
+
+ public int hashCode()
+ {
+ int result = 17;
+ result = 37 * result + ( id != null ? id.hashCode() : 0 );
+ return result;
+ }
+
+ public boolean isReleases()
+ {
+ return this.releases;
+ }
+
+ /**
+ * Get null
+ */
+ public boolean isSnapshots()
+ {
+ return this.snapshots;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public void setLayout(String layout)
+ {
+ this.layout = layout;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public void setReleases(boolean releases)
+ {
+ this.releases = releases;
+ }
+
+ public void setSnapshots(boolean snapshots)
+ {
+ this.snapshots = snapshots;
+ }
+
+ public void setUrl(String url)
+ {
+ this.url = url;
+ }
+}
\ No newline at end of file
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ManagedRepository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java?rev=1159529&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
Fri Aug 19 07:52:52 2011
@@ -0,0 +1,115 @@
+package org.apache.archiva.rest.api.model;
+
+/*
+ * 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 javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+
+
+@XmlRootElement( name = "remoteRepository" )
+public class RemoteRepository
+ implements Serializable
+{
+ private String id;
+
+ private String name;
+
+ private String url;
+
+ private String layout;
+
+ public RemoteRepository()
+ {
+ // no op
+ }
+
+ public RemoteRepository( String id, String name, String url, String layout
)
+ {
+ this.id = id;
+ this.name = name;
+ this.url = url;
+ this.layout = layout;
+ }
+
+ public boolean equals(Object other)
+ {
+ if ( this == other)
+ {
+ return true;
+ }
+
+ if ( !(other instanceof RemoteRepository) )
+ {
+ return false;
+ }
+
+ RemoteRepository that = (RemoteRepository) other;
+ boolean result = true;
+ result = result && ( getId() == null ? that.getId() == null :
getId().equals( that.getId() ) );
+ return result;
+ }
+
+ public String getId()
+ {
+ return this.id;
+ }
+
+ public String getLayout()
+ {
+ return this.layout;
+ }
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public String getUrl()
+ {
+ return this.url;
+ }
+
+ public int hashCode()
+ {
+ int result = 17;
+ result = 37 * result + ( id != null ? id.hashCode() : 0 );
+ return result;
+ }
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public void setLayout(String layout)
+ {
+ this.layout = layout;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public void setUrl(String url)
+ {
+ this.url = url;
+ }
+}
\ No newline at end of file
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/RemoteRepository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java?rev=1159529&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
Fri Aug 19 07:52:52 2011
@@ -0,0 +1,212 @@
+package org.apache.archiva.rest.api.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ * 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.
+ */
+
+public class SearchRequest
+{
+ /**
+ * groupId
+ */
+ private String groupId;
+
+ /**
+ * artifactId
+ */
+ private String artifactId;
+
+ /**
+ * version
+ */
+ private String version;
+
+ /**
+ * packaging (jar, war, pom, etc.)
+ */
+ private String packaging;
+
+ /**
+ * class name or package name
+ */
+ private String className;
+
+ /**
+ * repositories
+ */
+ private List<String> repositories = new ArrayList<String>();
+
+
+ /**
+ * contains osgi metadata Bundle-Version if available
+ *
+ * @since 1.4
+ */
+ private String bundleVersion;
+
+ /**
+ * contains osgi metadata Bundle-SymbolicName if available
+ *
+ * @since 1.4
+ */
+ private String bundleSymbolicName;
+
+ /**
+ * contains osgi metadata Export-Package if available
+ *
+ * @since 1.4
+ */
+ private String bundleExportPackage;
+
+ /**
+ * contains osgi metadata Export-Service if available
+ *
+ * @since 1.4
+ */
+ private String bundleExportService;
+
+ public SearchRequest()
+ {
+ // no op
+ }
+
+ public SearchRequest( String groupId, String artifactId, String version,
String packaging, String className,
+ List<String> repositories )
+ {
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.version = version;
+ this.packaging = packaging;
+ this.className = className;
+ this.repositories = repositories;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public void setGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public String getPackaging()
+ {
+ return packaging;
+ }
+
+ public void setPackaging( String packaging )
+ {
+ this.packaging = packaging;
+ }
+
+ public String getClassName()
+ {
+ return className;
+ }
+
+ public void setClassName( String className )
+ {
+ this.className = className;
+ }
+
+ public List<String> getRepositories()
+ {
+ return repositories;
+ }
+
+ public void setRepositories( List<String> repositories )
+ {
+ this.repositories = repositories;
+ }
+
+
+ public String getBundleVersion()
+ {
+ return bundleVersion;
+ }
+
+ public void setBundleVersion( String bundleVersion )
+ {
+ this.bundleVersion = bundleVersion;
+ }
+
+ public String getBundleSymbolicName()
+ {
+ return bundleSymbolicName;
+ }
+
+ public void setBundleSymbolicName( String bundleSymbolicName )
+ {
+ this.bundleSymbolicName = bundleSymbolicName;
+ }
+
+ public String getBundleExportPackage()
+ {
+ return bundleExportPackage;
+ }
+
+ public void setBundleExportPackage( String bundleExportPackage )
+ {
+ this.bundleExportPackage = bundleExportPackage;
+ }
+
+ public String getBundleExportService()
+ {
+ return bundleExportService;
+ }
+
+ public void setBundleExportService( String bundleExportService )
+ {
+ this.bundleExportService = bundleExportService;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "SearchFields{" + "groupId='" + groupId + '\'' + ",
artifactId='" + artifactId + '\'' + ", version='"
+ + version + '\'' + ", packaging='" + packaging + '\'' + ",
className='" + className + '\''
+ + ", repositories=" + repositories + ", bundleVersion='" +
bundleVersion + '\'' + ", bundleSymbolicName='"
+ + bundleSymbolicName + '\'' + ", bundleExportPackage='" +
bundleExportPackage + '\''
+ + ", bundleExportService='" + bundleExportService + '\'' + '}';
+ }
+}
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java?rev=1159529&r1=1159528&r2=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
Fri Aug 19 07:52:52 2011
@@ -35,14 +35,24 @@ public interface PingService
{
/**
- *
* ping service to monitor Archiva with a nice returned message :-)
+ *
* @return Yeah Baby It rocks!
*/
- @Path( "addAuthenticationKey" )
+ @Path( "ping" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
@RedbackAuthorization( noRestriction = true )
- String ping( );
+ String ping();
+
+ /**
+ * same as #ping but check authz
+ * @return
+ */
+ @Path( "pingWithAuthz" )
+ @GET
+ @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
+ @RedbackAuthorization( noRestriction = false, noPermission = true )
+ String pingWithAuthz();
}
Copied:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
(from r1159124,
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java)
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java?p2=archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java&p1=archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java&r1=1159124&r2=1159529&rev=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/PingService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
Fri Aug 19 07:52:52 2011
@@ -19,30 +19,40 @@ package org.apache.archiva.rest.api.serv
* under the License.
*/
+import org.apache.archiva.rest.api.model.ManagedRepository;
+import org.apache.archiva.rest.api.model.RemoteRepository;
import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
+import java.util.List;
/**
* @author Olivier Lamy
* @since 1.4
*/
-@Path( "/pingService/" )
-public interface PingService
+@Path( "/repositoriesService/" )
+public interface RepositoriesService
{
+ @Path( "getManagedRepositories" )
+ @GET
+ @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
+ @RedbackAuthorization( noRestriction = true )
+ List<ManagedRepository> getManagedRepositories();
- /**
- *
- * ping service to monitor Archiva with a nice returned message :-)
- * @return Yeah Baby It rocks!
- */
- @Path( "addAuthenticationKey" )
+ @Path( "getRemoteRepositories" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
@RedbackAuthorization( noRestriction = true )
- String ping( );
+ List<RemoteRepository> getRemoteRepositories();
+ @Path( "scanRepository" )
+ @GET
+ @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
+ @RedbackAuthorization( noRestriction = true )
+ Boolean scanRepository( @QueryParam( "repositoryId" ) String repositoryId,
+ @QueryParam( "fullScan" ) boolean fullScan );
}
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java?rev=1159529&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
Fri Aug 19 07:52:52 2011
@@ -0,0 +1,63 @@
+package org.apache.archiva.rest.api.services;
+
+/*
+ * 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.archiva.rest.api.model.Artifact;
+import org.apache.archiva.rest.api.model.Dependency;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Date;
+import java.util.List;
+
+@XmlRootElement( name = "searchRequest" )
+public interface SearchService
+{
+ /*
+ * quick/general text search which returns a list of artifacts
+ * query for an artifact based on a checksum
+ * query for all available versions of an artifact, sorted in version
significance order
+ * query for all available versions of an artifact since a given date
+ * query for an artifact's direct dependencies
+ * query for an artifact's dependency tree (as with mvn dependency:tree -
no duplicates should be included)
+ * query for all artifacts that depend on a given artifact
+ */
+
+ List<Artifact> quickSearch( String queryString )
+ throws Exception;
+
+ List<Artifact> getArtifactByChecksum( String checksum )
+ throws Exception;
+
+ List<Artifact> getArtifactVersions( String groupId, String artifactId )
+ throws Exception;
+
+ List<Artifact> getArtifactVersionsByDate( String groupId, String
artifactId, String version, Date whenGathered )
+ throws Exception;
+
+ List<Dependency> getDependencies( String groupId, String artifactId,
String version )
+ throws Exception;
+
+ List<Artifact> getDependencyTree( String groupId, String artifactId,
String version )
+ throws Exception;
+
+ List<Artifact> getDependees( String groupId, String artifactId, String
version )
+ throws Exception;
+}
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java?rev=1159529&r1=1159528&r2=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
Fri Aug 19 07:52:52 2011
@@ -34,4 +34,9 @@ public class DefaultPingService
{
return "Yeah Baby It rocks!";
}
+
+ public String pingWithAuthz()
+ {
+ return ping();
+ }
}
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java?rev=1159529&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
Fri Aug 19 07:52:52 2011
@@ -0,0 +1,32 @@
+package org.apache.archiva.rest.services;
+
+import org.apache.archiva.rest.api.model.ManagedRepository;
+import org.apache.archiva.rest.api.model.RemoteRepository;
+import org.apache.archiva.rest.api.services.RepositoriesService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.4
+ */
+@Service("repositoriesService#rest")
+public class DefaultRepositoriesService
+ implements RepositoriesService
+{
+ public List<ManagedRepository> getManagedRepositories()
+ {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public List<RemoteRepository> getRemoteRepositories()
+ {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public Boolean scanRepository( String repositoryId, boolean fullScan )
+ {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+}
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultRepositoriesService.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml?rev=1159529&r1=1159528&r2=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
Fri Aug 19 07:52:52 2011
@@ -47,6 +47,7 @@
<jaxrs:providers>
<ref bean="authenticationInterceptor#rest"/>
<ref bean="permissionInterceptor#rest"/>
+ <ref bean="repositoriesService#rest"/>
</jaxrs:providers>
</jaxrs:server>
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java?rev=1159529&r1=1159528&r2=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/PingServiceTest.java
Fri Aug 19 07:52:52 2011
@@ -21,9 +21,9 @@ package org.apache.archiva.rest.services
import org.apache.archiva.rest.api.services.PingService;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
+import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
+import org.apache.cxf.jaxrs.client.WebClient;
import org.codehaus.redback.rest.services.AbstractRestServicesTest;
-import org.codehaus.redback.rest.services.FakeCreateAdminService;
-import org.junit.Before;
import org.junit.Test;
/**
@@ -34,20 +34,6 @@ public class PingServiceTest
extends AbstractRestServicesTest
{
- @Before
- public void setUp()
- throws Exception
- {
- super.startServer();
-
- FakeCreateAdminService fakeCreateAdminService =
- JAXRSClientFactory.create( "http://localhost:" + port +
"/services/fakeCreateAdminService/",
- FakeCreateAdminService.class );
-
- Boolean res = fakeCreateAdminService.createAdminIfNeeded();
- assertTrue( res.booleanValue() );
- }
-
PingService getPingService()
{
return JAXRSClientFactory.create( "http://localhost:" + port +
"/services/archivaServices/",
@@ -66,4 +52,32 @@ public class PingServiceTest
String res = getPingService().ping();
assertEquals( "Yeah Baby It rocks!", res );
}
+
+ @Test( expected = ServerWebApplicationException.class )
+ public void pingWithAuthzFailed()
+ throws Exception
+ {
+
+ try
+ {
+ String res = getPingService().pingWithAuthz();
+ fail( "not in exception" );
+ }
+ catch ( ServerWebApplicationException e )
+ {
+ assertEquals( 403, e.getStatus() );
+ throw e;
+ }
+ }
+
+ @Test
+ public void pingWithAuthz()
+ throws Exception
+ {
+
+ PingService service = getPingService();
+ WebClient.client( service ).header( "Authorization",
authorizationHeader );
+ String res = service.pingWithAuthz();
+ assertEquals( "Yeah Baby It rocks!", res );
+ }
}
Copied:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
(from r1159124,
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java)
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java?p2=archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java&p1=archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java&r1=1159124&r2=1159529&rev=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org.apache.archiva.rest.services/DefaultPingService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
Fri Aug 19 07:52:52 2011
@@ -19,19 +19,27 @@ package org.apache.archiva.rest.services
* under the License.
*/
-import org.apache.archiva.rest.api.services.PingService;
-import org.springframework.stereotype.Service;
+import org.apache.archiva.rest.api.services.RepositoriesService;
+import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
+import org.codehaus.redback.rest.services.AbstractRestServicesTest;
+import org.junit.Test;
/**
* @author Olivier Lamy
- * @since 1.4
*/
-@Service( "pingService#rest" )
-public class DefaultPingService
- implements PingService
+public class RepositoriesServiceTest
+ extends AbstractRestServicesTest
{
- public String ping()
+ RepositoriesService getPingService()
{
- return "Yeah Baby It rocks!";
+ return JAXRSClientFactory.create( "http://localhost:" + port +
"/services/archivaServices/",
+ RepositoriesService.class );
+
+ }
+
+ @Test
+ public void listRemoteRepositories() throws Exception
+ {
+
}
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java?rev=1159529&r1=1159528&r2=1159529&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
Fri Aug 19 07:52:52 2011
@@ -275,7 +275,6 @@ public class AdministrationServiceImpl
RepositoryTask task = new RepositoryTask();
task.setRepositoryId( repoId );
-
repositoryTaskScheduler.queueTask( task );
return true;