You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/01/18 03:07:37 UTC
svn commit: r613040 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
Author: lryan
Date: Thu Jan 17 18:07:29 2008
New Revision: 613040
URL: http://svn.apache.org/viewvc?rev=613040&view=rev
Log:
Allow for recursive loading of core and other features from a single path
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.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=613040&r1=613039&r2=613040&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 Thu Jan 17 18:07:29 2008
@@ -48,44 +48,47 @@
= Logger.getLogger("org.apache.shindig.gadgets");
/**
- * Creates the gadget feature registry and loads all default dependencies.
- * @param coreJsPath
+ * Creates the gadget feature registry and loads an initial set of features.
+ * Any 'core' features loaded at this point will automatically become
+ * dependencies for every other feature.
+ * @param featurePath
*/
- public GadgetFeatureRegistry(String coreJsPath) throws GadgetException {
- registerCore(coreJsPath);
+ public GadgetFeatureRegistry(String featurePath) throws GadgetException {
+ registerFeatures(featurePath);
}
/**
- * Registers all core functionality providing a minimal base context
- * in which all Gadgets operate. This set should be kept as minimal as
- * possible. Anything added as registerCore will automatically become a
- * dependency of every other feature.
+ * Recursively loads a set of features from a path in the filesystem or
+ * from the classpath.
*
- * @param coreJsPath Path to the directory that contains core Javascript
- * feature xml files.
+ * @param featurePath Path to the directory that contains feature xml files.
*/
- private void registerCore(String coreJsPath) throws GadgetException {
- List<String> coreDeps = null;
- if (coreJsPath != null) {
- JsFeatureLoader loader = new JsFeatureLoader();
- List<Entry> coreJs = loader.loadFeatures(coreJsPath, this);
- coreDeps = new LinkedList<String>();
+ public void registerFeatures(String featurePath) throws GadgetException {
+ if (featurePath == null) return;
+
+ List<String> coreDeps = new LinkedList<String>();
+ JsFeatureLoader loader = new JsFeatureLoader();
+ List<Entry> coreJs = loader.loadFeatures(featurePath, this);
+
+ if (!coreDone) {
for (Entry entry : coreJs) {
- coreDeps.add(entry.getName());
- core.put(entry.getName(), entry);
+ if (entry.name.startsWith("core")) {
+ coreDeps.add(entry.getName());
+ core.put(entry.getName(), entry);
+ }
}
+
+ // Everything depends on core JS being set up first because in gadget
+ // rendering mode, we pre-populate some of the data.
+ core.put(FEAT_MSG_BUNDLE,
+ register(FEAT_MSG_BUNDLE, coreDeps, new MessageBundleSubstituter()));
+ core.put(FEAT_BIDI, register(FEAT_BIDI, coreDeps, new BidiSubstituter()));
+ core.put(FEAT_MODULE,
+ register(FEAT_MODULE, coreDeps, new ModuleSubstituter()));
+ core.put(FEAT_USER_PREF_SUBST,
+ register(FEAT_USER_PREF_SUBST, coreDeps, new UserPrefSubstituter()));
+ coreDone = true;
}
-
- // Everything depends on core JS being set up first because in gadget
- // rendering mode, we pre-populate some of the data.
- core.put(FEAT_MSG_BUNDLE,
- register(FEAT_MSG_BUNDLE, coreDeps, new MessageBundleSubstituter()));
- core.put(FEAT_BIDI, register(FEAT_BIDI, coreDeps, new BidiSubstituter()));
- core.put(FEAT_MODULE,
- register(FEAT_MODULE, coreDeps, new ModuleSubstituter()));
- core.put(FEAT_USER_PREF_SUBST,
- register(FEAT_USER_PREF_SUBST, coreDeps, new UserPrefSubstituter()));
- coreDone = true;
}
/**