[jboss-osgi-commits] JBoss-OSGI SVN: r90806 - in projects/jboss-osgi/trunk/blueprint: impl/src/main/java/org/jboss/osgi/blueprint/parser and 5 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Fri Jul 3 04:27:53 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-07-03 04:27:52 -0400 (Fri, 03 Jul 2009)
New Revision: 90806

Modified:
   projects/jboss-osgi/trunk/blueprint/impl/pom.xml
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/SchemaResolverParser.java
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java
   projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java
   projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/AllElementsParserTestCase.java
   projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/BasicRootParserTestCase.java
   projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/log4j.xml
   projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/parser/blueprint-basic-root.xml
Log:
More annotation based parsing

Modified: projects/jboss-osgi/trunk/blueprint/impl/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/pom.xml	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/pom.xml	2009-07-03 08:27:52 UTC (rev 90806)
@@ -79,6 +79,7 @@
               org.osgi.service.log,
               org.osgi.util.tracker, 
               org.w3c.dom,
+              org.xml.sax,
             </Import-Package>
           </instructions>
         </configuration>

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/SchemaResolverParser.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/SchemaResolverParser.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/SchemaResolverParser.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -23,19 +23,16 @@
 
 //$Id$
 
-import static org.jboss.osgi.blueprint.BlueprintContext.XMLNS_BLUEPRINT;
-
 import java.net.URL;
 
 import org.jboss.osgi.blueprint.BlueprintContext;
 import org.jboss.osgi.blueprint.BlueprintException;
 import org.jboss.osgi.blueprint.parser.xb.TBlueprint;
+import org.jboss.util.xml.JBossEntityResolver;
 import org.jboss.xb.binding.JBossXBException;
 import org.jboss.xb.binding.Unmarshaller;
 import org.jboss.xb.binding.UnmarshallerFactory;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
-import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
-import org.osgi.service.log.LogService;
 
 /**
  * The Blueprint descriptor parser.
@@ -45,11 +42,8 @@
  */
 public class SchemaResolverParser implements JBossXBParser
 {
-   private SchemaBindingResolver resolver;
-
    public SchemaResolverParser(BlueprintContext context)
    {
-      resolver = new BlueprintSchemaResolver(context);
    }
 
    /*
@@ -67,10 +61,22 @@
          Thread.currentThread().setContextClassLoader(bundleCL);
 
          Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+         unmarshaller.setSchemaValidation(true);
          unmarshaller.setNamespaceAware(true);
          unmarshaller.setValidation(true);
          
-         TBlueprint tBlueprint = (TBlueprint)unmarshaller.unmarshal(xmlURL.toExternalForm(), resolver);
+         // This is EntityResolver that SAX parser (xerces) will use to resolve XSD location for the XML being parsed
+         // Here we map schema location specified in the XSD file to the local schema location,
+         // which is a path relative to the resources directory visible in the classpath.
+         JBossEntityResolver xmlResolver = new JBossEntityResolver();
+         xmlResolver.registerLocalEntity("http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd", "schema/blueprint.xsd");
+         unmarshaller.setEntityResolver(xmlResolver);
+         
+         // This is to resolve namespace to class mapping and build the SchemaBinding from the class
+         DefaultSchemaResolver schemaBindingResolver = new DefaultSchemaResolver();
+         schemaBindingResolver.addClassBinding(BlueprintContext.XMLNS_BLUEPRINT, TBlueprint.class);
+         
+         TBlueprint tBlueprint = (TBlueprint)unmarshaller.unmarshal(xmlURL.toExternalForm(), schemaBindingResolver);
 
          return tBlueprint;
       }
@@ -83,28 +89,4 @@
          Thread.currentThread().setContextClassLoader(ctxLoader);
       }
    }
-
-   static class BlueprintSchemaResolver extends DefaultSchemaResolver
-   {
-      private LogService log;
-      
-      public BlueprintSchemaResolver(BlueprintContext context)
-      {
-         this.log = context.getLog();
-         
-         try
-         {
-            addSchemaLocation(XMLNS_BLUEPRINT, "blueprint.xsd");
-            addClassBinding(BlueprintContext.XMLNS_BLUEPRINT, TBlueprint.class);
-         }
-         catch (RuntimeException rte)
-         {
-            throw rte;
-         }
-         catch (Exception ex)
-         {
-            log.log(LogService.LOG_ERROR, "Cannot create schema resolver", ex);
-         }
-      }
-   }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TAvailability.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -31,8 +31,10 @@
  */
 public enum TAvailability
 {
-   MANDATORY("mandatory"), 
-   OPTIONAL("optional");
+   // [JBXB-209] Enum parsing requires value equal to type name
+   // https://jira.jboss.org/jira/browse/JBXB-209
+   mandatory("mandatory"), 
+   optional("optional");
 
    private final String value;
 

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TBlueprint.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -59,7 +59,7 @@
  */
 @JBossXmlSchema(namespace = BlueprintContext.XMLNS_BLUEPRINT, elementFormDefault = XmlNsForm.QUALIFIED)
 @XmlRootElement(name = "blueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT)
- at XmlType(name = "Tblueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT)
+ at XmlType(name = "Tblueprint", namespace = BlueprintContext.XMLNS_BLUEPRINT, propOrder = { "description", "typeConverters" })
 public class TBlueprint
 {
    protected String description;
@@ -146,7 +146,7 @@
       return compMetadata;
    }
 
-   @XmlAttribute(name = "default-lazy-init")
+   @XmlAttribute(name = "default-lazy-init", namespace = BlueprintContext.XMLNS_BLUEPRINT)
    public Boolean isDefaultLazyInit()
    {
       return defaultLazyInit;
@@ -157,6 +157,7 @@
       this.defaultLazyInit = value;
    }
 
+   @XmlAttribute
    public String getDefaultInitMethod()
    {
       return defaultInitMethod;
@@ -167,6 +168,7 @@
       this.defaultInitMethod = value;
    }
 
+   @XmlAttribute
    public String getDefaultDestroyMethod()
    {
       return defaultDestroyMethod;
@@ -177,6 +179,7 @@
       this.defaultDestroyMethod = value;
    }
 
+   @XmlAttribute
    public BigInteger getDefaultTimeout()
    {
       if (defaultTimeout == null)
@@ -190,10 +193,11 @@
       this.defaultTimeout = value;
    }
 
+   @XmlAttribute
    public TAvailability getDefaultAvailability()
    {
       if (defaultAvailability == null)
-         defaultAvailability = TAvailability.MANDATORY;
+         defaultAvailability = TAvailability.mandatory;
 
       return defaultAvailability;
    }

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TServiceReference.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -194,7 +194,7 @@
    public TAvailability getAvailability()
    {
       if (availability == null)
-         availability = TAvailability.OPTIONAL;
+         availability = TAvailability.optional;
       
       return availability;
    }

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/parser/xb/TTypeConverters.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -26,7 +26,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.osgi.blueprint.BlueprintContext;
+
+
 /**
  * 
  * 
@@ -55,6 +59,7 @@
  * 
  * 
  */
+ at XmlType(name = "Ttype-converters", namespace = BlueprintContext.XMLNS_BLUEPRINT)
 public class TTypeConverters
 {
    protected List<Object> components;

Modified: projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/impl/src/main/java/org/jboss/osgi/blueprint/reflect/ServiceReferenceMetadataImpl.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -53,7 +53,7 @@
    {
       int availability = AVAILABILITY_OPTIONAL;
       
-      if (tService.getAvailability() == TAvailability.MANDATORY)
+      if (tService.getAvailability() == TAvailability.mandatory)
          availability = AVAILABILITY_MANDATORY;
       
       return availability;

Modified: projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/AllElementsParserTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/AllElementsParserTestCase.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/AllElementsParserTestCase.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -65,7 +65,7 @@
    public void testRootAttributes() throws Exception
    {
       TAvailability defaultAvailability = blueprint.getDefaultAvailability();
-      assertEquals(TAvailability.MANDATORY, defaultAvailability);
+      assertEquals(TAvailability.mandatory, defaultAvailability);
       
       String defaultDestroyMethod = blueprint.getDefaultDestroyMethod();
       assertEquals("defaultDestroyMethod", defaultDestroyMethod);

Modified: projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/BasicRootParserTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/BasicRootParserTestCase.java	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/testsuite/src/test/java/org/jboss/test/osgi/blueprint/parser/BasicRootParserTestCase.java	2009-07-03 08:27:52 UTC (rev 90806)
@@ -51,7 +51,7 @@
       TBlueprint blueprint = new BlueprintParser(new MockBlueprintContext()).parse(xmlURL);
       
       // assert default attributes
-      assertEquals("default-availability: mandatory", TAvailability.MANDATORY, blueprint.getDefaultAvailability());
+      assertEquals("default-availability: mandatory", TAvailability.mandatory, blueprint.getDefaultAvailability());
       assertEquals("default-timeout: 300000", new BigInteger("300000"), blueprint.getDefaultTimeout());
       assertEquals("default-lazy-init: FALSE", Boolean.FALSE, blueprint.isDefaultLazyInit());
       assertNull("default-init-method: null", blueprint.getDefaultInitMethod());

Modified: projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/log4j.xml
===================================================================
--- projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/log4j.xml	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/log4j.xml	2009-07-03 08:27:52 UTC (rev 90806)
@@ -38,11 +38,11 @@
   </category>
   -->
 
-  <!-- Show jboss deployer traces   
+  <!-- Show jboss deployer traces -->   
   <category name="org.jboss.xb">
     <priority value="TRACE" />
   </category>
-  -->
+  
 
   <!-- ======================= -->
   <!-- Setup the Root category -->

Modified: projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/parser/blueprint-basic-root.xml
===================================================================
--- projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/parser/blueprint-basic-root.xml	2009-07-03 07:40:51 UTC (rev 90805)
+++ projects/jboss-osgi/trunk/blueprint/testsuite/src/test/resources/parser/blueprint-basic-root.xml	2009-07-03 08:27:52 UTC (rev 90806)
@@ -1,5 +1,5 @@
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-  xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd schema/blueprint.xsd">
+  xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
   
   <description>some text</description>
   




More information about the jboss-osgi-commits mailing list