You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2009/11/05 21:50:12 UTC

svn commit: r833158 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java

Author: johnh
Date: Thu Nov  5 20:50:11 2009
New Revision: 833158

URL: http://svn.apache.org/viewvc?rev=833158&view=rev
Log:
Traverse into file-type feature subdirectories.


Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java?rev=833158&r1=833157&r2=833158&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java Thu Nov  5 20:50:11 2009
@@ -417,7 +417,10 @@
     
     for (File featureFile : toLoad) {
       String featureFilePath = featureFile.getAbsolutePath();
-      if (featureFilePath.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
+      if (featureFile.isDirectory()) {
+        // Traverse into subdirectories.
+        loadFile(featureFilePath);
+      } else if (featureFilePath.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
         String content = ResourceLoader.getContent(featureFile);
         Uri parent = new UriBuilder().setScheme("file").setPath(featureFilePath).toUri();
         loadFeature(parent, content);

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java?rev=833158&r1=833157&r2=833158&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/features/FeatureRegistryTest.java Thu Nov  5 20:50:11 2009
@@ -111,6 +111,38 @@
   }
   
   @Test
+  public void registerFromFileInNestedDirectoryFeatureXmlFile() throws Exception {
+    // Get the directory from dummyUri and create a subdir.
+    File tmpFile = File.createTempFile("dummy", ".dat");
+    tmpFile.deleteOnExit();
+    File parentDir = tmpFile.getParentFile();
+    String childDirName = "" + Math.random();
+    File childDir = new File(parentDir, childDirName);
+    childDir.mkdirs();
+    childDir.deleteOnExit();
+    File featureDir = new File(childDir, "thefeature");
+    featureDir.mkdirs();
+    featureDir.deleteOnExit();
+    File resFile = File.createTempFile("content", ".js", featureDir);
+    resFile.deleteOnExit();
+    String content = "content-foo";
+    BufferedWriter out = new BufferedWriter(new FileWriter(resFile));
+    out.write(content);
+    out.close();
+    File featureFile = File.createTempFile("feature", ".xml", featureDir);
+    featureFile.deleteOnExit();
+    out = new BufferedWriter(new FileWriter(featureFile));
+    out.write(xml(NODEP_TPL, "gadget", resFile.getAbsolutePath(), null));
+    out.close();
+    registry.register(childDir.getAbsolutePath());
+    
+    // Verify single resource works all the way through.
+    List<FeatureResource> resources = registry.getAllFeatures();
+    assertEquals(1, resources.size());
+    assertEquals(content, resources.get(0).getContent());
+  }
+  
+  @Test
   public void registerFromResourceFeatureXml() throws Exception {
     String content = "resource-content()";
     Uri contentUri = expectResource(content);