Author: jsdelfino
Date: Mon Oct 1 21:39:51 2007
New Revision: 581135
URL: http://svn.apache.org/viewvc?rev=581135&view=rev
Log:
Load extension schemas declared in
META-INF/services/org.apache.tuscany.sca.contribution.processor.ValidationSchema
files and use them to validate assembly XML files.
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java?rev=581135&r1=581134&r2=581135&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidatingXMLInputFactory.java
Mon Oct 1 21:39:51 2007
@@ -39,6 +39,8 @@
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
+import org.xml.sax.SAXParseException;
+
/**
* Default implementation of an XMLInputFactory that creates validating
* XMLStreamReaders.
@@ -86,9 +88,11 @@
} catch (Error e) {
//FIXME Log this, some old JDKs don't support XMLSchema validation
//e.printStackTrace();
+ } catch (SAXParseException e) {
+ throw new IllegalStateException(e);
} catch (Exception e) {
//FIXME Log this, some old JDKs don't support XMLSchema validation
- //e.printStackTrace();
+ e.printStackTrace();
}
}
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java?rev=581135&r1=581134&r2=581135&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
Mon Oct 1 21:39:51 2007
@@ -19,9 +19,14 @@
package org.apache.tuscany.sca.contribution.processor;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
+import org.apache.tuscany.sca.contribution.util.ServiceConfigurationUtil;
+
/**
* DefaultValidationSchemaExtensionPoint
*
@@ -30,6 +35,7 @@
public class DefaultValidationSchemaExtensionPoint implements
ValidationSchemaExtensionPoint {
private List<String> schemas = new ArrayList<String>();
+ private boolean loaded;
public void addSchema(String uri) {
schemas.add(uri);
@@ -39,7 +45,37 @@
schemas.remove(uri);
}
+ /**
+ * Load schema declarations from META-INF/services/
+ * org.apache.tuscany.sca.contribution.processor.ValidationSchema files
+ */
+ private void loadSchemas() {
+ if (loaded)
+ return;
+
+ // Get the schema declarations
+ ClassLoader classLoader =
ValidationSchemaExtensionPoint.class.getClassLoader();
+ List<String> schemaDeclarations;
+ try {
+ schemaDeclarations =
ServiceConfigurationUtil.getServiceClassNames(classLoader,
"org.apache.tuscany.sca.contribution.processor.ValidationSchema");
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+
+ // Find each schema
+ for (String schemaDeclaration: schemaDeclarations) {
+ URL url = classLoader.getResource(schemaDeclaration);
+ if (url == null) {
+ throw new IllegalArgumentException(new
FileNotFoundException(schemaDeclaration));
+ }
+ schemas.add(url.toString());
+ }
+
+ loaded = true;
+ }
+
public List<String> getSchemas() {
+ loadSchemas();
return schemas;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]