[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