You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by li...@apache.org on 2008/09/03 01:00:47 UTC

svn commit: r691417 - in /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets: GadgetServer.java spec/GadgetSpec.java spec/SpecParserException.java

Author: lindner
Date: Tue Sep  2 16:00:47 2008
New Revision: 691417

URL: http://svn.apache.org/viewvc?rev=691417&view=rev
Log:
SHINDIG-227 | Better exception handling from Uriel Chemouni.  Modified patch to work with trunk, some changes already implemented in GadgetSpecFactory

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java?rev=691417&r1=691416&r2=691417&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetServer.java Tue Sep  2 16:00:47 2008
@@ -151,13 +151,20 @@
     Set<String> needed = features.keySet();
     Set<String> unsupported = new HashSet<String>();
     Collection<GadgetFeature> feats = registry.getFeatures(needed, unsupported);
+
     if (!unsupported.isEmpty()) {
+      // Remove non-required libs
       for (String missing : unsupported) {
-        if (features.get(missing).getRequired()) {
-          throw new UnsupportedFeatureException(missing);
+        if (!features.get(missing).getRequired()) {
+          unsupported.remove(missing);
         }
       }
+      // Throw error with full list of unsupported libraries
+      if (!unsupported.isEmpty()) {
+        throw new UnsupportedFeatureException(unsupported.toString());
+      }
     }
+
     Collection<JsLibrary> libraries = new LinkedList<JsLibrary>();
     for (GadgetFeature feature : feats) {
       libraries.addAll(feature.getJsLibraries(

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java?rev=691417&r1=691416&r2=691417&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/GadgetSpec.java Tue Sep  2 16:00:47 2008
@@ -162,8 +162,7 @@
     try {
       doc = XmlUtil.parse(xml);
     } catch (XmlException e) {
-      throw new SpecParserException("Malformed XML in file " + url.toString()
-          + ": " + e.getMessage());
+      throw new SpecParserException("Malformed XML in file " + url.toString(), e);
     }
     this.url = url;
 

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java?rev=691417&r1=691416&r2=691417&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/SpecParserException.java Tue Sep  2 16:00:47 2008
@@ -34,4 +34,9 @@
   public SpecParserException(XmlException e) {
     super(GadgetException.Code.MALFORMED_XML_DOCUMENT, e);
   }
+  
+  public SpecParserException(String message, XmlException e) {
+    super(GadgetException.Code.MALFORMED_XML_DOCUMENT, message, e);
+  }
+  
 }