Author: etnu Date: Wed Jan 9 22:19:59 2008 New Revision: 610689 URL: http://svn.apache.org/viewvc?rev=610689&view=rev Log: Fixed incorrect handling of multi-level dependency chains to properly walk the dependency graph in all cases.
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java?rev=610689&r1=610688&r2=610689&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java (original) +++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java Wed Jan 9 22:19:59 2008 @@ -156,11 +156,22 @@ if (entry == null) { resultsMissing.add(featureName); } else { - resultsFound.addAll(entry.deps); - resultsFound.add(entry); + addEntryToSet(resultsFound, entry); } } return resultsMissing.size() == 0; + } + + /** + * Recursively add all dependencies. + * @param results + * @param entry + */ + private void addEntryToSet(Set<Entry> results, Entry entry) { + for (Entry dep : entry.deps) { + addEntryToSet(results, dep); + } + results.add(entry); } /** Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java?rev=610689&r1=610688&r2=610689&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java (original) +++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java Wed Jan 9 22:19:59 2008 @@ -211,14 +211,14 @@ FileInputStream fis = null; try { byte[] content = load(new FileInputStream(file)); - feature = parse(content, file.getParent(), false); + feature = parse(content, file.getParent() + "/", false); } catch (IOException e) { - logger.warning("Error reading file: " + file.toString()); + logger.warning("Error reading file: " + file.getAbsolutePath()); } catch (GadgetException ge) { - logger.warning("Failed parsing file: " + file.toString()); + logger.warning("Failed parsing file: " + file.getAbsolutePath()); } } else { - logger.warning("Unable to read file: " + file.toString()); + logger.warning("Unable to read file: " + file.getAbsolutePath()); } return feature; }