summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/contribution/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/contribution/src')
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java61
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java29
2 files changed, 58 insertions, 32 deletions
diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
index 9f4094aa12..d278aae06a 100644
--- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
+++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
@@ -6,15 +6,15 @@
* to you 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.processor;
@@ -23,6 +23,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -30,66 +31,80 @@ import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
/**
- * Default implementation of an extension point for XML schemas.
+ * Default implementation of an extension point for XML schemas.
*
* @version $Rev$ $Date$
*/
public class DefaultValidationSchemaExtensionPoint implements ValidationSchemaExtensionPoint {
-
+ private boolean enabled;
private List<String> schemas = new ArrayList<String>();
private boolean loaded;
-
+
public void addSchema(String uri) {
schemas.add(uri);
}
-
+
public void removeSchema(String uri) {
schemas.remove(uri);
}
-
+
/**
* Load schema declarations from META-INF/services/
* org.apache.tuscany.sca.contribution.processor.ValidationSchema files
*/
private synchronized void loadSchemas() {
- if (loaded)
+ if (loaded || (!enabled))
return;
// Get the schema declarations
- Set<ServiceDeclaration> schemaDeclarations;
+ Set<ServiceDeclaration> schemaDeclarations;
try {
- schemaDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations("org.apache.tuscany.sca.contribution.processor.ValidationSchema");
+ schemaDeclarations =
+ ServiceDiscovery.getInstance()
+ .getServiceDeclarations("org.apache.tuscany.sca.contribution.processor.ValidationSchema");
} catch (IOException e) {
throw new IllegalStateException(e);
- }
-
+ }
+
// TODO - temp fix to ensure that the schema tuscany-sca.xsd always comes first
String tuscanyScaXsd = null;
-
+
// Find each schema
- for (ServiceDeclaration schemaDeclaration: schemaDeclarations) {
+ for (ServiceDeclaration schemaDeclaration : schemaDeclarations) {
URL url = schemaDeclaration.getResource(schemaDeclaration.getClassName());
if (url == null) {
throw new IllegalArgumentException(new FileNotFoundException(schemaDeclaration.getClassName()));
}
-
- if (url.toString().contains("tuscany-sca.xsd")){
+
+ if (url.toString().contains("tuscany-sca-1.1.xsd")) {
tuscanyScaXsd = url.toString();
} else {
schemas.add(url.toString());
}
}
-
- if (tuscanyScaXsd != null){
+
+ if (tuscanyScaXsd != null) {
schemas.add(0, tuscanyScaXsd);
}
-
+
loaded = true;
}
-
+
public List<String> getSchemas() {
- loadSchemas();
- return schemas;
+ if (enabled) {
+ loadSchemas();
+ return schemas;
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
}
}
diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
index cc3bb59a5b..67ec55b72e 100644
--- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
+++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidationSchemaExtensionPoint.java
@@ -6,15 +6,15 @@
* to you 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.processor;
@@ -28,25 +28,36 @@ import java.util.List;
* @version $Rev$ $Date$
*/
public interface ValidationSchemaExtensionPoint {
-
+ /**
+ * Set the flag to control if schema validation should be enabled
+ * @param enabled
+ */
+ void setEnabled(boolean enabled);
+
+ /**
+ * Test the schema validation is enabled
+ * @return
+ */
+ boolean isEnabled();
+
/**
* Add a schema.
- *
+ *
* @param uri the URI of the schema
*/
void addSchema(String uri);
-
+
/**
* Remove a schema.
- *
+ *
* @param uri the URI of the schema
*/
void removeSchema(String uri);
-
+
/**
* Returns the list of schemas registered in the extension point.
* @return the list of schemas
*/
List<String> getSchemas();
-
+
}