Author: scottbw
Date: Fri Apr 23 23:45:47 2010
New Revision: 937553

URL: http://svn.apache.org/viewvc?rev=937553&view=rev
Log:
Added support for the W3C <update-description> element in the parser (see 
WOOKIE-103); however this is not yet exposed in the server's Widget bean class. 
(Also removed some manual testing code that is no longer necessary)

Added:
    
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/UpdateDescriptionTest.java
    incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/
    
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/UpdateDescription.java
Modified:
    incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java
    
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
    incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java

Added: 
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/UpdateDescriptionTest.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/UpdateDescriptionTest.java?rev=937553&view=auto
==============================================================================
--- 
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/UpdateDescriptionTest.java
 (added)
+++ 
incubator/wookie/trunk/parser/java/src-test/org/apache/wookie/w3c/test/UpdateDescriptionTest.java
 Fri Apr 23 23:45:47 2010
@@ -0,0 +1,58 @@
+/*
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.w3c.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import org.apache.wookie.w3c.IW3CXMLConfiguration;
+import org.apache.wookie.w3c.exceptions.BadManifestException;
+import org.apache.wookie.w3c.updates.UpdateDescription;
+import org.jdom.Element;
+import org.jdom.Namespace;
+import org.junit.Test;
+
+/**
+ * Tests for Update Description. These should be replaced at some point by 
official W3C test cases.
+ */
+public class UpdateDescriptionTest {
+       
+       @Test
+       public void create(){
+               UpdateDescription desc = new UpdateDescription();
+               Element update = new Element("update-description", 
Namespace.getNamespace(IW3CXMLConfiguration.MANIFEST_NAMESPACE));
+               update.setAttribute("href", "http://localhost";);
+               try {
+                       desc.fromXML(update);
+               } catch (BadManifestException e) {
+                       fail();
+               }
+               assertEquals("http://localhost";, desc.getHref());
+       }
+       
+       @Test
+       public void createInvalidURL(){
+               UpdateDescription desc = new UpdateDescription();
+               Element update = new Element("update-description", 
Namespace.getNamespace(IW3CXMLConfiguration.MANIFEST_NAMESPACE));
+               update.setAttribute("href", "notavalidurl!");
+               try {
+                       desc.fromXML(update);
+               } catch (BadManifestException e) {
+                       fail();
+               }
+               assertNull(desc.getHref());
+       }
+
+}

Modified: 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java?rev=937553&r1=937552&r2=937553&view=diff
==============================================================================
--- incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java 
(original)
+++ incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/W3CWidget.java 
Fri Apr 23 23:45:47 2010
@@ -107,4 +107,9 @@ public interface W3CWidget extends IElem
         */
        public String getLocalName(String locale);
        
+       /**
+        * @return the update description document URL for the widget, or null 
if no valid update URL has been set
+        */
+       public String getUpdate();
+       
 }

Modified: 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java?rev=937553&r1=937552&r2=937553&view=diff
==============================================================================
--- 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
 (original)
+++ 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/impl/WidgetManifestModel.java
 Fri Apr 23 23:45:47 2010
@@ -22,6 +22,7 @@ import java.util.List;
 import org.apache.commons.compress.archivers.zip.ZipFile;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+import org.apache.wookie.w3c.updates.UpdateDescription;
 import org.apache.wookie.w3c.util.LocalizationUtils;
 import org.apache.wookie.w3c.IAccessEntity;
 import org.apache.wookie.w3c.IAuthorEntity;
@@ -33,7 +34,6 @@ import org.apache.wookie.w3c.ILicenseEnt
 import org.apache.wookie.w3c.ILocalizedEntity;
 import org.apache.wookie.w3c.W3CWidget;
 import org.apache.wookie.w3c.INameEntity;
-import org.apache.wookie.w3c.IParamEntity;
 import org.apache.wookie.w3c.IPreferenceEntity;
 import org.apache.wookie.w3c.IW3CXMLConfiguration;
 import org.apache.wookie.w3c.exceptions.BadManifestException;
@@ -71,6 +71,7 @@ public class WidgetManifestModel impleme
        private List<IContentEntity> fContentList;
        private List<IFeatureEntity> fFeaturesList;
        private List<IPreferenceEntity> fPreferencesList;
+       private String fUpdate;
        
        private String[] supportedEncodings;
        
@@ -138,40 +139,8 @@ public class WidgetManifestModel impleme
                                }
                        }
                }
-               //Uncomment this when performing conformance testing
-               //outputFeatureList();
-               //outputEncodings();
        }
-       
-       /**
-        * Used to check output during conformance testing
-        */
-       private void outputFeatureList(){
-               if (fFeaturesList.size()==0) return;
-               String out = "";
-               out+=("id:"+this.fIdentifier+":"+this.getLocalName("en"));
-               for (IFeatureEntity feature: fFeaturesList){
-                       String params = "";
-                       for (IParamEntity param:feature.getParams()){
-                               
params+="["+param.getName()+":"+param.getValue()+"]";
-                       }
-                       
out+=("feature:"+feature.getName()+"required="+feature.isRequired()+"{"+params+"}");
-               }
-               System.out.println(out);
-       }
-       
-       /**
-        * Used to check output during conformance testing
-        */
-       private void outputEncodings(){
-               String out = "";
-               out+=("id:"+this.fIdentifier+":"+this.getLocalName("en"));
-               for (IContentEntity startFile:getContentList()){
-                       out+=startFile.getSrc()+" "+startFile.getCharSet();
-               }
-               System.out.println(out);
-       }
-       
+
        public String getViewModes() {
                return fViewModes;
        }
@@ -239,6 +208,10 @@ public class WidgetManifestModel impleme
                return fWidth;
        }
        
+       public String getUpdate(){
+               return fUpdate;
+       }
+       
        public void fromXML(Element element) throws BadManifestException{
                fLogger.warn("WidgetManifestModel.fromXML() called with no 
locales");
                fromXML(element, new String[]{"en"});
@@ -345,7 +318,15 @@ public class WidgetManifestModel impleme
                        if(tag.equals(IW3CXMLConfiguration.AUTHOR_ELEMENT) && 
fAuthor == null) {
                                fAuthor = new AuthorEntity();
                                fAuthor.fromXML(child);
-                       }               
+                       }       
+                       
+                       // UDPATE DESCRIPTION IS OPTONAL - can only be one, 
ignore subsequent repetitions
+                       if(tag.equals(IW3CXMLConfiguration.UPDATE_ELEMENT) && 
fUpdate == null) {
+                               UpdateDescription update = new 
UpdateDescription();
+                               update.fromXML(child);
+                               // It must have a valid HREF attribute, or it 
is ignored
+                               if (update.getHref() != null) fUpdate = 
update.getHref();
+                       }       
                
                        // LICENSE IS OPTIONAL - can be many
                        if(tag.equals(IW3CXMLConfiguration.LICENSE_ELEMENT)) {  
                        

Added: 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/UpdateDescription.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/UpdateDescription.java?rev=937553&view=auto
==============================================================================
--- 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/UpdateDescription.java
 (added)
+++ 
incubator/wookie/trunk/parser/java/src/org/apache/wookie/w3c/updates/UpdateDescription.java
 Fri Apr 23 23:45:47 2010
@@ -0,0 +1,40 @@
+/*
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.w3c.updates;
+import org.apache.wookie.w3c.exceptions.BadManifestException;
+import org.apache.wookie.w3c.util.IRIValidator;
+import org.jdom.Element;
+
+/**
+ * An UpdateDescription for a Widget
+ */
+public class UpdateDescription{
+       
+       private String _href;
+       
+       public UpdateDescription(){     
+       }
+
+       public String getHref() {
+               return _href;
+       }
+
+       public void fromXML(Element element) throws BadManifestException {
+               String href = element.getAttributeValue("href");
+               if (href != null && href != "" && 
IRIValidator.isValidIRI(href)){
+                       _href = href;
+               }
+       }
+
+}

Modified: 
incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java?rev=937553&r1=937552&r2=937553&view=diff
==============================================================================
--- 
incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java 
(original)
+++ 
incubator/wookie/trunk/src/org/apache/wookie/util/gadgets/GadgetAdapter.java 
Fri Apr 23 23:45:47 2010
@@ -211,4 +211,10 @@ public class GadgetAdapter implements W3
                return IW3CXMLConfiguration.UNKNOWN;
        }
 
+       public String getUpdate() {
+               return null;
+       }
+       
+       
+
 }


Reply via email to