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);