[jboss-svn-commits] JBL Code SVN: r23543 - in labs/jbossrules/trunk/drools-atom/src: test/java/org/drools/atom and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 21 23:44:58 EDT 2008
Author: jervisliu
Date: 2008-10-21 23:44:57 -0400 (Tue, 21 Oct 2008)
New Revision: 23543
Modified:
labs/jbossrules/trunk/drools-atom/src/main/java/org/drools/atom/AtomRulesRepository.java
labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/AtomRulesRepositoryServer.java
labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/ClientServerAtomRulesRepositoryTest.java
labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/resources/expected_get_assets.txt
Log:
get individual asset info from repository using atomPub.
Modified: labs/jbossrules/trunk/drools-atom/src/main/java/org/drools/atom/AtomRulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-atom/src/main/java/org/drools/atom/AtomRulesRepository.java 2008-10-22 02:37:17 UTC (rev 23542)
+++ labs/jbossrules/trunk/drools-atom/src/main/java/org/drools/atom/AtomRulesRepository.java 2008-10-22 03:44:57 UTC (rev 23543)
@@ -180,7 +180,7 @@
}
@GET
- @Path("/packages/{packageName}/")
+ @Path("/packages/{packageName}")
@ProduceMime({"application/atom+xml"})
public Entry getPackageAsEntry(@PathParam("packageName") String packageName, @Context UriInfo uParam) throws PackageNotFoundFault {
System.out.println("----invoking getPackageAsEntry with packageName: " + packageName);
@@ -195,6 +195,34 @@
}
}
+ @GET
+ @Path("/packages/{packageName}/assets/{assetName}")
+ @ProduceMime({"application/atom+xml"})
+ public Entry getAssetAsEntry(@PathParam("packageName") String packageName,
+ @Context UriInfo uParam,
+ @PathParam("assetName") String assetName) throws PackageNotFoundFault {
+ System.out.println("----invoking getPackageAsEntry with packageName: " + packageName + ", assetName: " + assetName);
+
+ try {
+ PackageItem packageItem = repository.loadPackage(packageName);
+ for ( Iterator iter = packageItem.getAssets(); iter.hasNext(); ) {
+ AssetItem as = (AssetItem) iter.next();
+ if (as.getName().equals(assetName)) {
+ return createDetailedAssetItemEntry(as, uParam);
+ }
+ }
+ } catch (RulesRepositoryException e) {
+ PackageNotFoundDetails details = new PackageNotFoundDetails();
+ details.setName(packageName);
+ throw new PackageNotFoundFault(details);
+ }
+
+ //TODO: Better exception handling
+ PackageNotFoundDetails details = new PackageNotFoundDetails();
+ details.setName(assetName);
+ throw new PackageNotFoundFault(details);
+ }
+
@POST
@Path("/packages")
@ConsumeMime("application/atom+xml")
@@ -285,7 +313,7 @@
}
e.setTitle(asset.getName());
URI uri =
- baseUri.getBaseUriBuilder().path("repository", "packages", "packageName", "asset",
+ baseUri.getBaseUriBuilder().path("repository", "packages", packageName, "assets",
asset.getName()).build();
e.addLink(uri.toString());
@@ -317,6 +345,31 @@
return e;
}
+ private static Entry createDetailedAssetItemEntry(AssetItem asset, UriInfo baseUri) {
+ Factory factory = Abdera.getNewFactory();
+
+ Entry e = factory.getAbdera().newEntry();
+ if (baseUri != null) {
+ e.setBaseUri(baseUri.getAbsolutePath().toString());
+ }
+ e.setTitle(asset.getName());
+ e.setId(asset.getUUID());
+ e.setSummary(asset.getDescription());
+
+ URI uri =
+ baseUri.getBaseUriBuilder().path("repository", "packages",
+ asset.getName()).build();
+ e.addLink(uri.toString());
+ e.setUpdated(asset.getLastModified().getTime());
+
+ //TODO: What content to return?
+ e.setContentElement(factory.newContent());
+ e.getContentElement().setContentType(Content.Type.TEXT);
+ e.getContentElement().setValue("archived=" + asset.isArchived());
+
+ return e;
+ }
+
public RulesRepository getRulesRepository() {
return repository;
}
Modified: labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/AtomRulesRepositoryServer.java
===================================================================
--- labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/AtomRulesRepositoryServer.java 2008-10-22 02:37:17 UTC (rev 23542)
+++ labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/AtomRulesRepositoryServer.java 2008-10-22 03:44:57 UTC (rev 23543)
@@ -28,8 +28,8 @@
repo = RepositorySessionUtil.getRepository();
PackageItem pkg = repo.createPackage("testPackage1", "desc1");
repo.loadCategory( "/" ).addCategory( "AtomRulesRepositoryTestCat", "X" );
- pkg.addAsset( "testAsset1", "x", "/AtomRulesRepositoryTestCat", "drl");
- pkg.addAsset( "testAsset2", "x", "/AtomRulesRepositoryTestCat", "drl");
+ pkg.addAsset( "testAsset1", "testAsset1Desc1", "/AtomRulesRepositoryTestCat", "drl");
+ pkg.addAsset( "testAsset2", "testAsset2Desc1", "/AtomRulesRepositoryTestCat", "drl");
repo.save();
Modified: labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/ClientServerAtomRulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/ClientServerAtomRulesRepositoryTest.java 2008-10-22 02:37:17 UTC (rev 23542)
+++ labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/ClientServerAtomRulesRepositoryTest.java 2008-10-22 03:44:57 UTC (rev 23543)
@@ -126,6 +126,26 @@
}
@Test
+ public void testGetAsset() throws Exception {
+ String endpointAddress =
+ "http://localhost:9080/repository/packages/testPackage1/assets/testAsset1";
+ GetMethod get = new GetMethod(endpointAddress);
+ get.setRequestHeader("Content-Type", "*/*");
+ //get.setRequestHeader("Accept", type);
+ HttpClient httpClient = new HttpClient();
+ try {
+ httpClient.executeMethod(get);
+ String response = getStringFromInputStream(get.getResponseBodyAsStream());
+ //System.out.print(response);
+ assertTrue(response.indexOf("testAsset1") > 0);
+ assertTrue(response.indexOf("testAsset1Desc1") > 0);
+ assertTrue(response.indexOf("archived=false") > 0);
+ } finally {
+ get.releaseConnection();
+ }
+ }
+
+ @Test
public void testAddAndDeletePackage() throws Exception {
//Create a new package called testPackage2
String endpointAddress =
Modified: labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/resources/expected_get_assets.txt
===================================================================
--- labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/resources/expected_get_assets.txt 2008-10-22 02:37:17 UTC (rev 23542)
+++ labs/jbossrules/trunk/drools-atom/src/test/java/org/drools/atom/resources/expected_get_assets.txt 2008-10-22 03:44:57 UTC (rev 23543)
@@ -1 +1 @@
-<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">Assets</title><entry xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">testAsset1</title><link href="http://localhost:9080/repository/packages/packageName/asset/testAsset1" /></entry><entry xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">testAsset2</title><link href="http://localhost:9080/repository/packages/packageName/asset/testAsset2" /></entry></feed>
\ No newline at end of file
+<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">Assets</title><entry xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">testAsset1</title><link href="http://localhost:9080/repository/packages/testPackage1/assets/testAsset1" /></entry><entry xml:base="http://localhost:9080/repository/packages/testPackage1/assets"><title type="text">testAsset2</title><link href="http://localhost:9080/repository/packages/testPackage1/assets/testAsset2" /></entry></feed>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list