summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-0.99/modules/policy-xml/src/main/java/org
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:06:58 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:06:58 +0000
commit3dd7e2c4da9c80b8182a2d04dc129a67aa7910df (patch)
tree71b970aa1c5987564405511d3912044387118fd4 /branches/sca-java-0.99/modules/policy-xml/src/main/java/org
parent0f3f9b59b310833f31ba234ee4aefa808649833c (diff)
Moving 1.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835121 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-0.99/modules/policy-xml/src/main/java/org')
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java41
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java41
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointProcessor.java241
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java71
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java266
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java342
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java39
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java39
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilder.java34
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderException.java42
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java298
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsDocumentProcessor.java147
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsProcessor.java303
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsResolver.java52
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java39
-rw-r--r--branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/XAttr.java121
16 files changed, 0 insertions, 2116 deletions
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java
deleted file mode 100644
index 56eedc7069..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/BindingTypeProcessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-
-
-/*
- * Processor for handling xml models of BindingType meta data definitions
- */
-public class BindingTypeProcessor extends IntentAttachPointProcessor {
-
- public BindingTypeProcessor(PolicyFactory policyFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- super(policyFactory, intentAttachPointTypeFactory, extensionProcessor);
- }
-
- public QName getArtifactType() {
- return BINDING_TYPE_QNAME;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java
deleted file mode 100644
index 05622012bb..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ImplementationTypeProcessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-
-
-/*
- * Processor for handling xml models of ImplementationType meta data definitions
- */
-public class ImplementationTypeProcessor extends IntentAttachPointProcessor {
-
- public ImplementationTypeProcessor(PolicyFactory policyFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- super(policyFactory, intentAttachPointTypeFactory, extensionProcessor);
- }
-
- public QName getArtifactType() {
- return IMPLEMENTATION_TYPE_QNAME;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointProcessor.java
deleted file mode 100644
index 38ac4427c7..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentAttachPointProcessor.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import java.util.List;
-import java.util.StringTokenizer;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.impl.BindingTypeImpl;
-import org.apache.tuscany.sca.policy.impl.ImplementationTypeImpl;
-
-
-/*
- * Processor for handling xml models of ExtensionType meta data definitions
- */
-public abstract class IntentAttachPointProcessor implements StAXArtifactProcessor<IntentAttachPointType>, PolicyConstants {
-
- protected IntentAttachPointTypeFactory extnTypeFactory;
- protected PolicyFactory policyFactory;
- protected StAXArtifactProcessor<Object> extensionProcessor;
-
-
- public IntentAttachPointProcessor(PolicyFactory policyFactory, IntentAttachPointTypeFactory extnTypeFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- this.policyFactory = policyFactory;
- this.extnTypeFactory = extnTypeFactory;
- this.extensionProcessor = extensionProcessor;
- }
-
- public IntentAttachPointType read(XMLStreamReader reader) throws ContributionReadException {
- QName type = getQName(reader, TYPE);
-
- if ( type != null ) {
- if ( type.getLocalPart().startsWith(BINDING) ) {
- IntentAttachPointType bindingType = extnTypeFactory.createBindingType();
- bindingType.setName(type);
-
- readAlwaysProvidedIntents(bindingType, reader);
- readMayProvideIntents(bindingType, reader);
- return bindingType;
- } else if ( type.getLocalPart().startsWith(IMPLEMENTATION) ) {
- IntentAttachPointType implType = extnTypeFactory.createImplementationType();
- implType.setName(type);
-
- readAlwaysProvidedIntents(implType, reader);
- readMayProvideIntents(implType, reader);
- return implType;
- } else {
- throw new ContributionReadException("Unrecognized IntentAttachPointType - " + type);
- }
- } else {
- throw new ContributionReadException("Required attribute '" + TYPE +
- "' missing from BindingType Definition");
- }
- }
-
- protected void readAlwaysProvidedIntents(IntentAttachPointType extnType, XMLStreamReader reader) {
- String value = reader.getAttributeValue(null, ALWAYS_PROVIDES);
- if (value != null) {
- List<Intent> alwaysProvided = extnType.getAlwaysProvidedIntents();
- for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
- QName qname = getQNameValue(reader, tokens.nextToken());
- Intent intent = policyFactory.createIntent();
- intent.setName(qname);
- alwaysProvided.add(intent);
- }
- }
- }
-
- protected void readMayProvideIntents(IntentAttachPointType extnType, XMLStreamReader reader) {
- String value = reader.getAttributeValue(null, MAY_PROVIDE);
- if (value != null) {
- List<Intent> mayProvide = extnType.getMayProvideIntents();
- for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
- QName qname = getQNameValue(reader, tokens.nextToken());
- Intent intent = policyFactory.createIntent();
- intent.setName(qname);
- mayProvide.add(intent);
- }
- }
- }
-
- public void write(IntentAttachPointType extnType, XMLStreamWriter writer) throws ContributionWriteException {
- try {
- // Write an <sca:bindingType or sca:implementationType>
- if ( extnType instanceof BindingTypeImpl ) {
- writer.writeStartElement(SCA10_NS, BINDING_TYPE);
- } else if ( extnType instanceof ImplementationTypeImpl ) {
- writer.writeStartElement(SCA10_NS, IMPLEMENATION_TYPE);
- }
-
- writeAlwaysProvidesIntentsAttribute(extnType, writer);
- writeMayProvideIntentsAttribute(extnType, writer);
-
- writer.writeEndElement();
-
- } catch (XMLStreamException e) {
- throw new ContributionWriteException(e);
- }
- }
-
- protected void writeMayProvideIntentsAttribute(IntentAttachPointType extnType, XMLStreamWriter writer) throws XMLStreamException {
- StringBuffer sb = new StringBuffer();
- for ( Intent intent : extnType.getMayProvideIntents() ) {
- writer.writeNamespace(intent.getName().getPrefix(), intent.getName().getNamespaceURI());
- sb.append(intent.getName().getPrefix() + COLON + intent.getName().getLocalPart());
- sb.append(WHITE_SPACE);
- }
-
- if ( sb.length() > 0 ) {
- writer.writeAttribute(MAY_PROVIDE, sb.toString());
- }
- }
-
- protected void writeAlwaysProvidesIntentsAttribute(IntentAttachPointType extnType, XMLStreamWriter writer) throws XMLStreamException {
- StringBuffer sb = new StringBuffer();
- for ( Intent intent : extnType.getAlwaysProvidedIntents() ) {
- writer.writeNamespace(intent.getName().getPrefix(), intent.getName().getNamespaceURI());
- sb.append(intent.getName().getPrefix() + COLON + intent.getName().getLocalPart());
- sb.append(WHITE_SPACE);
- }
-
- if ( sb.length() > 0 ) {
- writer.writeAttribute(ALWAYS_PROVIDES, sb.toString());
-
- }
- }
-
- private void resolveExtensionType(IntentAttachPointType extnType, ModelResolver resolver) throws ContributionResolveException {
- //FIXME: need to resolve the binding and implementations across the assembly model
- extnType.setUnresolved(false);
- }
-
- public void resolve(IntentAttachPointType extnType, ModelResolver resolver) throws ContributionResolveException {
- resolveExtensionType(extnType, resolver);
-
- if ( !extnType.isUnresolved() ) {
- resolver.addModel(extnType);
- }
- }
-
- //FIXME This method is never used
-// private void resolveAlwaysProvidedIntents(IntentAttachPointType extnType, ModelResolver resolver) throws ContributionResolveException {
-// boolean isUnresolved = false;
-// if (extnType != null && extnType.isUnresolved()) {
-// //resolve alwaysProvided Intents
-// List<Intent> alwaysProvided = new ArrayList<Intent>();
-// for ( Intent providedIntent : extnType.getAlwaysProvidedIntents() ) {
-// if ( providedIntent.isUnresolved() ) {
-// providedIntent = resolver.resolveModel(Intent.class, providedIntent);
-// alwaysProvided.add(providedIntent);
-// if (providedIntent.isUnresolved()) {
-// isUnresolved = true;
-// }
-// }
-// }
-// extnType.getAlwaysProvidedIntents().clear();
-// extnType.getAlwaysProvidedIntents().addAll(alwaysProvided);
-// }
-// extnType.setUnresolved(isUnresolved);
-// }
-
- //FIXME This method is never used
-// private void resolveMayProvideIntents(IntentAttachPointType extnType, ModelResolver resolver) throws ContributionResolveException {
-// boolean isUnresolved = false;
-// if (extnType != null && extnType.isUnresolved()) {
-// //resolve may provide Intents
-// List<Intent> mayProvide = new ArrayList<Intent>();
-// for ( Intent providedIntent : extnType.getMayProvideIntents() ) {
-// if ( providedIntent.isUnresolved() ) {
-// providedIntent = resolver.resolveModel(Intent.class, providedIntent);
-// mayProvide.add(providedIntent);
-// if (providedIntent.isUnresolved()) {
-// isUnresolved = true;
-// }
-// }
-// }
-// extnType.getAlwaysProvidedIntents().clear();
-// extnType.getAlwaysProvidedIntents().addAll(mayProvide);
-// }
-// extnType.setUnresolved(isUnresolved);
-// }
-
- protected QName getQNameValue(XMLStreamReader reader, String value) {
- if (value != null) {
- int index = value.indexOf(':');
- String prefix = index == -1 ? "" : value.substring(0, index);
- String localName = index == -1 ? value : value.substring(index + 1);
- String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
- if (ns == null) {
- ns = "";
- }
- return new QName(ns, localName, prefix);
- } else {
- return null;
- }
- }
-
- protected QName getQName(XMLStreamReader reader, String name) {
- String qname = reader.getAttributeValue(null, name);
- return getQNameValue(reader, qname);
- }
-
-
- protected String getString(XMLStreamReader reader, String name) {
- return reader.getAttributeValue(null, name);
- }
-
- public Class<IntentAttachPointType> getModelType() {
- return IntentAttachPointType.class;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
deleted file mode 100644
index 5929f67c5f..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-package org.apache.tuscany.sca.policy.xml;
-
-import javax.xml.namespace.QName;
-
-/**
- * constants related to policy framework
- *
- */
-public interface PolicyConstants {
- String WHITE_SPACE = " ";
- String COLON = ":";
- String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
- String INTENT = "intent";
- String POLICY_SET = "policySet";
- String POLICY_SET_REFERENCE = "policySetReference";
- String INTENT_MAP = "intentMap";
- String NAME = "name";
- String TARGET_NAMESPACE = "targetNamespace";
- String SCA_DEFINITIONS = "definitions";
- String CONSTRAINS = "constrains";
- String DESCRIPTION = "description";
- String PROVIDES = "provides";
- String APPLIES_TO = "appliesTo";
- String QUALIFIER = ".";
- String INTENT_MAP_QUALIFIER = "qualifier";
- String REQUIRES = "requires";
- String DEFAULT = "default";
-
- String ALWAYS_PROVIDES = "alwaysProvides";
- String MAY_PROVIDE = "mayProvide";
- String TYPE = "type";
- String IMPLEMENATION_TYPE = "implementationType";
- String BINDING_TYPE = "bindingType";
- QName IMPLEMENTATION_TYPE_QNAME = new QName(SCA10_NS, IMPLEMENATION_TYPE);
- QName BINDING_TYPE_QNAME = new QName(SCA10_NS, BINDING_TYPE);
- String BINDING = "binding";
- String IMPLEMENTATION = "implementation";
-
- QName POLICY_INTENT_QNAME = new QName(SCA10_NS, INTENT);
- QName POLICY_SET_QNAME = new QName(SCA10_NS, POLICY_SET);
- QName POLICY_INTENT_MAP_QNAME = new QName(SCA10_NS, INTENT_MAP);
- QName SCA_DEFNS_QNAME = new QName(SCA10_NS, SCA_DEFINITIONS);
- QName DESCRIPTION_QNAME = new QName(SCA10_NS, DESCRIPTION);
- QName POLICY_INTENT_MAP_QUALIFIER_QNAME = new QName(SCA10_NS, INTENT_MAP_QUALIFIER);
- QName POLICY_SET_REFERENCE_QNAME = new QName(SCA10_NS, POLICY_SET_REFERENCE);
-
- String QUALIFIED_INTENT_CONSTRAINS_ERROR = " - Qualified Intents must not specify 'constrains' attribute";
-
-
-
-
-
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
deleted file mode 100644
index f2ad797383..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import java.util.List;
-import java.util.StringTokenizer;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.ProfileIntent;
-import org.apache.tuscany.sca.policy.QualifiedIntent;
-
-/*
- * Processor for handling xml models of PolicyIntent definitions
- */
-
-public abstract class PolicyIntentProcessor<T extends Intent> implements StAXArtifactProcessor<T>, PolicyConstants {
-
- private PolicyFactory policyFactory;
- protected StAXArtifactProcessor<Object> extensionProcessor;
-
- public PolicyIntentProcessor(PolicyFactory policyFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- this.policyFactory = policyFactory;
- this.extensionProcessor = extensionProcessor;
- }
-
- public T read(XMLStreamReader reader) throws ContributionReadException {
- try {
- Intent policyIntent = null;
- String policyIntentName = reader.getAttributeValue(null, NAME);
- // Read an <sca:intent>
- if (reader.getAttributeValue(null, REQUIRES) != null) {
- policyIntent = policyFactory.createProfileIntent();
- } else if ( policyIntentName != null && policyIntentName.indexOf(QUALIFIER) != -1) {
- policyIntent = policyFactory.createQualifiedIntent();
-
- int qualifierIndex = policyIntentName.lastIndexOf(QUALIFIER);
- Intent qualifiableIntent = policyFactory.createIntent();
- qualifiableIntent.setUnresolved(true);
- qualifiableIntent.setName(getQNameValue(reader,
- policyIntentName.substring(0, qualifierIndex)));
-
- ((QualifiedIntent)policyIntent).setQualifiableIntent(qualifiableIntent);
- } else {
- policyIntent = policyFactory.createIntent();
- }
- policyIntent.setName(getQNameValue(reader, policyIntentName));
-
- if ( policyIntent instanceof ProfileIntent ) {
- readRequiredIntents((ProfileIntent)policyIntent, reader);
- }
-
- readConstrainedArtifacts(policyIntent, reader);
-
- int event = reader.getEventType();
- QName name = null;
- while (reader.hasNext()) {
- event = reader.getEventType();
- switch (event) {
- case START_ELEMENT : {
- name = reader.getName();
- if (DESCRIPTION_QNAME.equals(name)) {
- policyIntent.setDescription(reader.getElementText());
- }
- break;
- }
- }
- if (event == END_ELEMENT && POLICY_INTENT_QNAME.equals(reader.getName())) {
- break;
- }
-
- //Read the next element
- if (reader.hasNext()) {
- reader.next();
- }
- }
- return (T)policyIntent;
-
- } catch (XMLStreamException e) {
- throw new ContributionReadException(e);
- }
- }
-
- public void write(T policyIntent, XMLStreamWriter writer) throws ContributionWriteException {
- try {
- // Write an <sca:intent>
- writer.writeStartElement(PolicyConstants.SCA10_NS, INTENT);
- writer.writeNamespace(policyIntent.getName().getPrefix(), policyIntent.getName().getNamespaceURI());
- writer.writeAttribute(PolicyConstants.NAME,
- policyIntent.getName().getPrefix() + COLON + policyIntent.getName().getLocalPart());
- if (policyIntent instanceof ProfileIntent) {
- ProfileIntent profileIntent = (ProfileIntent)policyIntent;
- if (profileIntent.getRequiredIntents() != null &&
- profileIntent.getRequiredIntents().size() > 0) {
- StringBuffer sb = new StringBuffer();
- for (Intent requiredIntents : profileIntent.getRequiredIntents()) {
- sb.append(requiredIntents.getName());
- sb.append(" ");
- }
- writer.writeAttribute(PolicyConstants.REQUIRES, sb.toString());
- }
- }
-
- if (!(policyIntent instanceof QualifiedIntent) ) {
- if (policyIntent.getConstrains() != null &&
- policyIntent.getConstrains().size() > 0) {
- StringBuffer sb = new StringBuffer();
- for (QName contrainedArtifact : policyIntent.getConstrains()) {
- sb.append(contrainedArtifact.toString());
- sb.append(" ");
- }
- writer.writeAttribute(CONSTRAINS, sb.toString());
- } else {
- throw new ContributionWriteException("Contrains attribute missing from " +
- "Policy Intent Definition" + policyIntent.getName());
- }
- }
-
- if ( policyIntent.getDescription() != null && policyIntent.getDescription().length() > 0) {
- writer.writeStartElement(PolicyConstants.SCA10_NS, DESCRIPTION);
- writer.writeCData(policyIntent.getDescription());
- writer.writeEndElement();
- }
-
- writer.writeEndElement();
-
- } catch (XMLStreamException e) {
- throw new ContributionWriteException(e);
- }
- }
-
- //FIXME This method is never used
-// private Intent resolveRequiredIntents(ProfileIntent policyIntent, ModelResolver resolver) throws ContributionResolveException {
-// boolean isUnresolved = false;
-// //FIXME: Need to check for cyclic references first i.e an A requiring B and then B requiring A...
-// if (policyIntent != null && policyIntent.isUnresolved()) {
-//
-// //resolve all required intents
-// List<Intent> requiredIntents = new ArrayList<Intent>();
-// for (Intent requiredIntent : policyIntent.getRequiredIntents()) {
-// if ( requiredIntent.isUnresolved() ) {
-// //policyIntent.getRequiredIntents().remove(requiredIntent);
-// requiredIntent = resolver.resolveModel(Intent.class, requiredIntent);
-// requiredIntents.add(requiredIntent);
-// if (requiredIntent.isUnresolved()) {
-// isUnresolved = true;
-// }
-// }
-// }
-// policyIntent.getRequiredIntents().clear();
-// policyIntent.getRequiredIntents().addAll(requiredIntents);
-// }
-// policyIntent.setUnresolved(isUnresolved);
-//
-// return policyIntent;
-// }
-
- //FIXME This method is never used
-// private Intent resolveQualifiableIntent(QualifiedIntent policyIntent, ModelResolver resolver) throws ContributionResolveException {
-// boolean isUnresolved = false;
-//
-// if (policyIntent != null && policyIntent.isUnresolved()) {
-// //resolve the qualifiable intent
-// Intent qualifiableIntent =
-// resolver.resolveModel(Intent.class, policyIntent.getQualifiableIntent());
-// policyIntent.setQualifiableIntent(qualifiableIntent);
-// isUnresolved = qualifiableIntent.isUnresolved();
-// }
-// policyIntent.setUnresolved(isUnresolved);
-//
-// return policyIntent;
-// }
-
- protected void resolveContrainedArtifacts(Intent policyIntent, ModelResolver resolver) {
- //FIXME : need to figure out this resolution.
- policyIntent.setUnresolved(false);
- }
-
- public void resolve(T policyIntent, ModelResolver resolver) throws ContributionResolveException {
- resolveContrainedArtifacts(policyIntent, resolver);
-
- if ( !policyIntent.isUnresolved() ) {
- resolver.addModel(policyIntent);
- }
- }
-
- public QName getArtifactType() {
- return POLICY_INTENT_QNAME;
- }
-
- protected void readConstrainedArtifacts(Intent policyIntent, XMLStreamReader reader) throws ContributionReadException {
- String value = reader.getAttributeValue(null, CONSTRAINS);
- if ( policyIntent instanceof QualifiedIntent && value != null) {
- String errorMsg =
- "Error in PolicyIntent Definition - " + policyIntent.getName() + QUALIFIED_INTENT_CONSTRAINS_ERROR;
- throw new ContributionReadException(errorMsg);
- } else {
- if (value != null) {
- List<QName> constrainedArtifacts = policyIntent.getConstrains();
- for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
- QName qname = getQNameValue(reader, tokens.nextToken());
- constrainedArtifacts.add(qname);
- }
- }
- }
- }
-
- protected void readRequiredIntents(ProfileIntent policyIntent, XMLStreamReader reader) {
- String value = reader.getAttributeValue(null, REQUIRES);
- if (value != null) {
- List<Intent> requiredIntents = policyIntent.getRequiredIntents();
- for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
- QName qname = getQNameValue(reader, tokens.nextToken());
- Intent intent = policyFactory.createIntent();
- intent.setName(qname);
- intent.setUnresolved(true);
- requiredIntents.add(intent);
- }
- }
- }
-
- protected QName getQNameValue(XMLStreamReader reader, String value) {
- if (value != null) {
- int index = value.indexOf(':');
- String prefix = index == -1 ? "" : value.substring(0, index);
- String localName = index == -1 ? value : value.substring(index + 1);
- String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
- if (ns == null) {
- ns = "";
- }
- return new QName(ns, localName, prefix);
- } else {
- return null;
- }
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
deleted file mode 100644
index 087f83cd7d..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.Policy;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-
-/*
- * Processor for handling xml models of PolicySet definitions
- */
-public class PolicySetProcessor implements StAXArtifactProcessor<PolicySet>, PolicyConstants {
-
- private PolicyFactory policyFactory;
- protected StAXArtifactProcessor<Object> extensionProcessor;
-
-
- public PolicySetProcessor(PolicyFactory policyFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- this.policyFactory = policyFactory;
- this.extensionProcessor = extensionProcessor;
- }
-
- public PolicySet read(XMLStreamReader reader) throws ContributionReadException {
- try {
- PolicySet policySet = policyFactory.createPolicySet();
- policySet.setName(getQName(reader, NAME));
- policySet.setAppliesTo(reader.getAttributeValue(null, APPLIES_TO));
- readProvidedIntents(policySet, reader);
-
- int event = reader.getEventType();
- QName name = null;
- reader.next();
- while (reader.hasNext()) {
- event = reader.getEventType();
- switch (event) {
- case START_ELEMENT : {
- name = reader.getName();
- if ( POLICY_INTENT_MAP_QNAME.equals(name) ) {
- Intent mappedIntent = policyFactory.createIntent();
- mappedIntent.setName(getQName(reader, PROVIDES));
- if ( policySet.getProvidedIntents().contains(mappedIntent) ) {
- readIntentMap(reader, policySet, mappedIntent);
- } else {
- throw new ContributionReadException("Intent Map provides for Intent not spcified as provided by parent PolicySet - " +policySet.getName());
- }
- } else if ( POLICY_SET_REFERENCE_QNAME.equals(name) ) {
- PolicySet referredPolicySet = policyFactory.createPolicySet();
- referredPolicySet.setName(getQName(reader, NAME));
- policySet.getReferencedPolicySets().add(referredPolicySet);
- } else {
- Object extension = extensionProcessor.read(reader);
- if ( extension instanceof Policy ) {
- policySet.getPolicies().add(extension);
- }
- }
- break;
- }
- }
- if ( event == END_ELEMENT ) {
- if ( POLICY_SET_QNAME.equals(reader.getName()) ) {
- break;
- }
- }
-
- //Read the next element
- if (reader.hasNext()) {
- reader.next();
- }
- }
- return policySet;
-
- } catch (XMLStreamException e) {
- throw new ContributionReadException(e);
- }
- }
-
-
- public void readIntentMap(XMLStreamReader reader, PolicySet policySet, Intent mappedIntent) throws ContributionReadException {
- QName name = reader.getName();
- Map<Intent, List<Policy>> mappedPolicies = policySet.getMappedPolicies();
- if ( POLICY_INTENT_MAP_QNAME.equals(name) ) {
- //Intent mappedIntent = policyFactory.createIntent();
- //mappedIntent.setName(getQName(reader, PROVIDES));
- String defaultQualifier = getString(reader, DEFAULT);
-
- String qualifierName = null;
- String qualfiedIntentName = null;
- Intent qualifiedIntent = null;
-
- int event = reader.getEventType();
- try {
- reader.next();
- while (reader.hasNext()) {
- event = reader.getEventType();
- switch (event) {
- case START_ELEMENT : {
- name = reader.getName();
- if ( POLICY_INTENT_MAP_QUALIFIER_QNAME.equals(name)) {
- qualifierName = getString(reader, NAME);
- qualfiedIntentName = mappedIntent.getName().getLocalPart() +
- QUALIFIER + qualifierName;
- qualifiedIntent = policyFactory.createIntent();
- qualifiedIntent.setName(new QName(mappedIntent.getName().getNamespaceURI(),
- qualfiedIntentName));
- } else if ( POLICY_INTENT_MAP_QNAME.equals(name) ) {
- QName providedIntent = getQName(reader, PROVIDES);
- if ( qualifierName.equals(providedIntent.getLocalPart()) ) {
- readIntentMap(reader, policySet, qualifiedIntent);
- } else {
- throw new ContributionReadException("Intent provided by IntentMap " +
- providedIntent + " does not match parent qualifier " + qualifierName +
- " in policyset - " + policySet);
- }
- } else {
- Object extension = extensionProcessor.read(reader);
- if ( extension instanceof Policy ) {
- List<Policy> policyList = mappedPolicies.get(qualifiedIntent);
- if ( policyList == null ) {
- policyList = new ArrayList<Policy>();
- mappedPolicies.put(qualifiedIntent, policyList);
-
- if (qualifierName.equals(defaultQualifier)) {
- mappedPolicies.put(mappedIntent, policyList);
- }
- }
- policyList.add((Policy)extension);
- }
- }
- break;
- }
- case END_ELEMENT : {
- if ( POLICY_INTENT_MAP_QNAME.equals(reader.getName()) ) {
- if ( defaultQualifier != null ) {
- String qualifiedIntentName = mappedIntent.getName().getLocalPart() + QUALIFIER + defaultQualifier;
- Intent defaultQualifiedIntent = policyFactory.createIntent();
- defaultQualifiedIntent.setName(new QName(mappedIntent.getName().getNamespaceURI(),
- qualifiedIntentName));
- List<Policy> policyList = mappedPolicies.get(defaultQualifiedIntent);
- if ( policyList != null ) {
- mappedPolicies.put(mappedIntent, policyList);
- } else {
- throw new ContributionReadException("Unable to map policies for default qualifier in IntentMap for - " +
- mappedIntent + " in policy set - " + policySet);
- }
- defaultQualifier = null;
- }
- }
- break;
- }
- }
- if ( event == END_ELEMENT && POLICY_INTENT_MAP_QNAME.equals(reader.getName()) ) {
- break;
- }
- //Read the next element
- if (reader.hasNext()) {
- reader.next();
- }
- }
- } catch (XMLStreamException e) {
- throw new ContributionReadException(e);
- }
- }
- }
-
- public void write(PolicySet policySet, XMLStreamWriter writer) throws ContributionWriteException {
- try {
- // Write an <sca:policySet>
- writer.writeStartElement(SCA10_NS, POLICY_SET);
- writer.writeNamespace(policySet.getName().getPrefix(), policySet.getName().getNamespaceURI());
- writer.writeAttribute(NAME,
- policySet.getName().getPrefix() + COLON + policySet.getName().getLocalPart());
- writer.writeAttribute(APPLIES_TO, policySet.getAppliesTo());
-
- writeProvidedIntents(policySet, writer);
-
-
- writer.writeEndElement();
-
- } catch (XMLStreamException e) {
- throw new ContributionWriteException(e);
- }
- }
-
- protected void readProvidedIntents(PolicySet policySet, XMLStreamReader reader) {
- String value = reader.getAttributeValue(null, PROVIDES);
- if (value != null) {
- List<Intent> providedIntents = policySet.getProvidedIntents();
- for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
- QName qname = getQNameValue(reader, tokens.nextToken());
- Intent intent = policyFactory.createIntent();
- intent.setName(qname);
- providedIntents.add(intent);
- }
- }
- }
-
- protected void writeProvidedIntents(PolicySet policySet, XMLStreamWriter writer) throws XMLStreamException {
- if (policySet.getProvidedIntents() != null &&
- policySet.getProvidedIntents().size() > 0) {
- StringBuffer sb = new StringBuffer();
- for (Intent providedIntents : policySet.getProvidedIntents()) {
- sb.append(providedIntents.getName());
- sb.append(" ");
- }
- writer.writeAttribute(PolicyConstants.PROVIDES, sb.toString());
- }
- }
-
- //FIXME This method is never used
-// private void resolveProvidedIntents(PolicySet policySet, ModelResolver resolver) throws ContributionResolveException {
-// boolean isUnresolved = false;
-// if (policySet != null && policySet.isUnresolved()) {
-// //resolve all provided intents
-// List<Intent> providedIntents = new ArrayList<Intent>();
-// for (Intent providedIntent : policySet.getProvidedIntents()) {
-// if ( providedIntent.isUnresolved() ) {
-// //policyIntent.getRequiredIntents().remove(requiredIntent);
-// providedIntent = resolver.resolveModel(Intent.class, providedIntent);
-// providedIntents.add(providedIntent);
-// if (providedIntent.isUnresolved()) {
-// isUnresolved = true;
-// }
-// }
-// }
-// policySet.getProvidedIntents().clear();
-// policySet.getProvidedIntents().addAll(providedIntents);
-// }
-// policySet.setUnresolved(isUnresolved);
-// }
-
- //FIXME This method is never used
-// private void resolveIntentsInMappedPolicies(PolicySet policySet, ModelResolver resolver) throws ContributionResolveException {
-// Map<Intent, List<Policy>> mappedPolicies = new Hashtable<Intent, List<Policy>>();
-// boolean isUnresolved = false;
-// for ( Intent mappedIntent : policySet.getMappedPolicies().keySet() ) {
-// if ( mappedIntent.isUnresolved() ) {
-// //policyIntent.getRequiredIntents().remove(requiredIntent);
-// mappedIntent = resolver.resolveModel(Intent.class, mappedIntent);
-// mappedPolicies.put(mappedIntent, policySet.getMappedPolicies().get(mappedIntent));
-// if (mappedIntent.isUnresolved()) {
-// isUnresolved = true;
-// }
-// }
-// }
-//
-// policySet.getMappedPolicies().clear();
-// policySet.getMappedPolicies().putAll(mappedPolicies);
-// policySet.setUnresolved(isUnresolved);
-// }
-
- private void resolvePolicies(PolicySet policySet, ModelResolver resolver) throws ContributionResolveException {
- boolean unresolved = false;
- for ( Object o : policySet.getPolicies() ) {
- extensionProcessor.resolve(o, resolver);
- if ( o instanceof Policy && ((Policy)o).isUnresolved() ) {
- unresolved = true;
- }
- }
- policySet.setUnresolved(unresolved);
- }
-
- public void resolve(PolicySet policySet, ModelResolver resolver) throws ContributionResolveException {
- if ( policySet.isUnresolved() ) {
- //resolve the policy attachments
- resolvePolicies(policySet, resolver);
-
- if ( !policySet.isUnresolved() ) {
- resolver.addModel(policySet);
- }
- }
- }
-
- public QName getArtifactType() {
- return POLICY_SET_QNAME;
- }
-
- public Class<PolicySet> getModelType() {
- return PolicySet.class;
- }
-
- protected QName getQNameValue(XMLStreamReader reader, String value) {
- if (value != null) {
- int index = value.indexOf(':');
- String prefix = index == -1 ? "" : value.substring(0, index);
- String localName = index == -1 ? value : value.substring(index + 1);
- String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
- if (ns == null) {
- ns = "";
- }
- return new QName(ns, localName, prefix);
- } else {
- return null;
- }
- }
-
- protected QName getQName(XMLStreamReader reader, String name) {
- String qname = reader.getAttributeValue(null, name);
- return getQNameValue(reader, qname);
- }
-
-
- protected String getString(XMLStreamReader reader, String name) {
- return reader.getAttributeValue(null, name);
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java
deleted file mode 100644
index fb242c50cf..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/ProfileIntentProcessor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.ProfileIntent;
-
-/*
- * Processor for handling xml models of PolicyIntent definitions that are ProfileIntents
- */
-
-public class ProfileIntentProcessor extends PolicyIntentProcessor<ProfileIntent> {
-
- public ProfileIntentProcessor(PolicyFactory policyFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- super(policyFactory, extensionProcessor);
- }
-
- public Class<ProfileIntent> getModelType() {
- return ProfileIntent.class;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java
deleted file mode 100644
index a3d9d39875..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/QualifiedIntentProcessor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.QualifiedIntent;
-
-/*
- * Processor for handling xml models of PolicyIntent definitions that are QualifiedIntents
- */
-
-public class QualifiedIntentProcessor extends PolicyIntentProcessor<QualifiedIntent> {
-
- public QualifiedIntentProcessor(PolicyFactory policyFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- super(policyFactory, extensionProcessor);
- }
-
- public Class<QualifiedIntent> getModelType() {
- return QualifiedIntent.class;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilder.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilder.java
deleted file mode 100644
index 0cd110a805..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilder.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-package org.apache.tuscany.sca.policy.xml;
-
-import org.apache.tuscany.sca.policy.SCADefinitions;
-
-/**
- * Interface to abstract building of SCA Defintions for a Domain
- *
- */
-public interface SCADefinitionsBuilder {
- /**
- * Builds the sca definitions
- *
- * @param scaDefns
- */
- void build(SCADefinitions scaDefns) throws SCADefinitionsBuilderException;
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderException.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderException.java
deleted file mode 100644
index 56d7756d9c..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-package org.apache.tuscany.sca.policy.xml;
-
-/**
- * Builder Exception
- *
- */
-public class SCADefinitionsBuilderException extends Exception {
- private static final long serialVersionUID = 2513219325230252783L;
-
- public SCADefinitionsBuilderException() {
- }
-
- public SCADefinitionsBuilderException(String message) {
- super(message);
- }
-
- public SCADefinitionsBuilderException(Throwable cause) {
- super(cause);
- }
-
- public SCADefinitionsBuilderException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java
deleted file mode 100644
index 6026f70340..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-package org.apache.tuscany.sca.policy.xml;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.Policy;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.ProfileIntent;
-import org.apache.tuscany.sca.policy.QualifiedIntent;
-import org.apache.tuscany.sca.policy.SCADefinitions;
-
-/**
- * Provides a concrete implementation for a SCADefinitionsBuilder
- *
- */
-public class SCADefinitionsBuilderImpl implements SCADefinitionsBuilder {
-
- public void build(SCADefinitions scaDefns) throws SCADefinitionsBuilderException {
- Map<QName, Intent> definedIntents = new HashMap<QName, Intent>();
- for (Intent intent : scaDefns.getPolicyIntents()) {
- definedIntents.put(intent.getName(), intent);
- }
-
- Map<QName, PolicySet> definedPolicySets = new HashMap<QName, PolicySet>();
- for (PolicySet policySet : scaDefns.getPolicySets()) {
- definedPolicySets.put(policySet.getName(), policySet);
- }
-
- Map<QName, IntentAttachPointType> definedBindingTypes = new HashMap<QName, IntentAttachPointType>();
- for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
- definedBindingTypes.put(bindingType.getName(), bindingType);
- }
-
- Map<QName, IntentAttachPointType> definedImplTypes = new HashMap<QName, IntentAttachPointType>();
- for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
- definedImplTypes.put(implType.getName(), implType);
- }
-
- buildPolicyIntents(scaDefns, definedIntents);
- buildPolicySets(scaDefns, definedPolicySets, definedIntents);
- buildBindingTypes(scaDefns, definedBindingTypes, definedIntents);
- buildImplementationTypes(scaDefns, definedImplTypes, definedIntents);
- }
-
- private void buildBindingTypes(SCADefinitions scaDefns,
- Map<QName, IntentAttachPointType> definedBindingTypes,
- Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
- buildAlwaysProvidedIntents(bindingType, definedIntents);
- buildMayProvideIntents(bindingType, definedIntents);
- }
-
- }
-
- private void buildImplementationTypes(SCADefinitions scaDefns,
- Map<QName, IntentAttachPointType> definedImplTypes,
- Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
- buildAlwaysProvidedIntents(implType, definedIntents);
- buildMayProvideIntents(implType, definedIntents);
- }
- }
-
-
- private void buildPolicyIntents(SCADefinitions scaDefns, Map<QName, Intent> definedIntents)
- throws SCADefinitionsBuilderException {
- for (Intent policyIntent : scaDefns.getPolicyIntents()) {
- if (policyIntent instanceof ProfileIntent) {
- buildProfileIntent((ProfileIntent)policyIntent, definedIntents);
- }
-
- if (policyIntent instanceof QualifiedIntent) {
- buildQualifiedIntent((QualifiedIntent)policyIntent, definedIntents);
- }
- }
- }
-
- private void buildPolicySets(SCADefinitions scaDefns,
- Map<QName, PolicySet> definedPolicySets,
- Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
-
- for (PolicySet policySet : scaDefns.getPolicySets()) {
- buildProvidedIntents(policySet, definedIntents);
- buildIntentsInMappedPolicies(policySet, definedIntents);
- buildReferredPolicySets(policySet, definedPolicySets);
- }
-
- for (PolicySet policySet : scaDefns.getPolicySets()) {
- for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) {
- includeReferredPolicySets(policySet, referredPolicySet);
- }
- }
- }
-
- private void buildProfileIntent(ProfileIntent policyIntent, Map<QName, Intent> definedIntents)
- throws SCADefinitionsBuilderException {
- //FIXME: Need to check for cyclic references first i.e an A requiring B and then B requiring A...
- if (policyIntent != null) {
- //resolve all required intents
- List<Intent> requiredIntents = new ArrayList<Intent>();
- for (Intent requiredIntent : policyIntent.getRequiredIntents()) {
- if (requiredIntent.isUnresolved()) {
- Intent resolvedRequiredIntent = definedIntents.get(requiredIntent.getName());
- if (resolvedRequiredIntent != null) {
- requiredIntents.add(resolvedRequiredIntent);
- } else {
- throw new SCADefinitionsBuilderException("Required Intent - " + requiredIntent
- + " not found for ProfileIntent "
- + policyIntent);
-
- }
- } else {
- requiredIntents.add(requiredIntent);
- }
- }
- policyIntent.getRequiredIntents().clear();
- policyIntent.getRequiredIntents().addAll(requiredIntents);
- }
- }
-
- private void buildQualifiedIntent(QualifiedIntent policyIntent, Map<QName, Intent> definedIntents)
- throws SCADefinitionsBuilderException {
- if (policyIntent != null) {
- //resolve the qualifiable intent
- Intent qualifiableIntent = policyIntent.getQualifiableIntent();
- if (qualifiableIntent.isUnresolved()) {
- Intent resolvedQualifiableIntent = definedIntents.get(qualifiableIntent.getName());
-
- if (resolvedQualifiableIntent != null) {
- policyIntent.setQualifiableIntent(resolvedQualifiableIntent);
- } else {
- throw new SCADefinitionsBuilderException("Qualifiable Intent - " + qualifiableIntent
- + " not found for QualifiedIntent "
- + policyIntent);
- }
-
- }
- }
- }
-
-
- private void buildAlwaysProvidedIntents(IntentAttachPointType extensionType,
- Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- if (extensionType != null) {
- // resolve all provided intents
- List<Intent> alwaysProvided = new ArrayList<Intent>();
- for (Intent providedIntent : extensionType.getAlwaysProvidedIntents()) {
- if (providedIntent.isUnresolved()) {
- Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName());
- if (resolvedProvidedIntent != null) {
- alwaysProvided.add(resolvedProvidedIntent);
- } else {
- throw new SCADefinitionsBuilderException(
- "Always Provided Intent - " + providedIntent
- + " not found for ExtensionType "
- + extensionType);
-
- }
- } else {
- alwaysProvided.add(providedIntent);
- }
- }
- extensionType.getAlwaysProvidedIntents().clear();
- extensionType.getAlwaysProvidedIntents().addAll(alwaysProvided);
- }
- }
-
- private void buildMayProvideIntents(IntentAttachPointType extensionType,
- Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- if (extensionType != null) {
- // resolve all provided intents
- List<Intent> mayProvide = new ArrayList<Intent>();
- for (Intent providedIntent : extensionType.getMayProvideIntents()) {
- if (providedIntent.isUnresolved()) {
- Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName());
- if (resolvedProvidedIntent != null) {
- mayProvide.add(resolvedProvidedIntent);
- } else {
- throw new SCADefinitionsBuilderException(
- "May Provide Intent - " + providedIntent
- + " not found for ExtensionType "
- + extensionType);
-
- }
- } else {
- mayProvide.add(providedIntent);
- }
- }
- extensionType.getMayProvideIntents().clear();
- extensionType.getMayProvideIntents().addAll(mayProvide);
- }
- }
-
- private void buildProvidedIntents(PolicySet policySet, Map<QName, Intent> definedIntents)
- throws SCADefinitionsBuilderException {
- if (policySet != null) {
- //resolve all provided intents
- List<Intent> providedIntents = new ArrayList<Intent>();
- for (Intent providedIntent : policySet.getProvidedIntents()) {
- if (providedIntent.isUnresolved()) {
- Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName());
- if (resolvedProvidedIntent != null) {
- providedIntents.add(resolvedProvidedIntent);
- } else {
- throw new SCADefinitionsBuilderException("Provided Intent - " + providedIntent
- + " not found for PolicySet "
- + policySet);
-
- }
- } else {
- providedIntents.add(providedIntent);
- }
- }
- policySet.getProvidedIntents().clear();
- policySet.getProvidedIntents().addAll(providedIntents);
- }
- }
-
- private void buildIntentsInMappedPolicies(PolicySet policySet, Map<QName, Intent> definedIntents)
- throws SCADefinitionsBuilderException {
- Map<Intent, List<Policy>> mappedPolicies = new Hashtable<Intent, List<Policy>>();
- for (Map.Entry<Intent, List<Policy>> entry : policySet.getMappedPolicies().entrySet()) {
- Intent mappedIntent = entry.getKey();
- if (mappedIntent.isUnresolved()) {
- Intent resolvedMappedIntent = definedIntents.get(mappedIntent.getName());
-
- if (resolvedMappedIntent != null) {
- mappedPolicies.put(resolvedMappedIntent, entry.getValue());
- } else {
- throw new SCADefinitionsBuilderException("Mapped Intent - " + mappedIntent
- + " not found for PolicySet "
- + policySet);
-
- }
- } else {
- mappedPolicies.put(mappedIntent, entry.getValue());
- }
- }
-
- policySet.getMappedPolicies().clear();
- policySet.getMappedPolicies().putAll(mappedPolicies);
- }
-
- private void buildReferredPolicySets(PolicySet policySet, Map<QName, PolicySet> definedPolicySets)
- throws SCADefinitionsBuilderException {
-
- List<PolicySet> referredPolicySets = new ArrayList<PolicySet>();
- for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) {
- if (referredPolicySet.isUnresolved()) {
- PolicySet resolvedReferredPolicySet = definedPolicySets.get(referredPolicySet.getName());
- if (resolvedReferredPolicySet != null) {
- referredPolicySets.add(resolvedReferredPolicySet);
- } else {
- throw new SCADefinitionsBuilderException("Referred PolicySet - " + referredPolicySet
- + "not found for PolicySet - "
- + policySet);
- }
- } else {
- referredPolicySets.add(referredPolicySet);
- }
- }
- policySet.getReferencedPolicySets().clear();
- policySet.getReferencedPolicySets().addAll(referredPolicySets);
- }
-
- private void includeReferredPolicySets(PolicySet policySet, PolicySet referredPolicySet) {
- for (PolicySet furtherReferredPolicySet : referredPolicySet.getReferencedPolicySets()) {
- includeReferredPolicySets(referredPolicySet, furtherReferredPolicySet);
- }
- policySet.getPolicies().addAll(referredPolicySet.getPolicies());
- policySet.getMappedPolicies().putAll(referredPolicySet.getMappedPolicies());
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsDocumentProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsDocumentProcessor.java
deleted file mode 100644
index 5536327d14..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsDocumentProcessor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.SCADefinitions;
-import org.apache.tuscany.sca.policy.impl.DefaultIntentAttachPointTypeFactoryImpl;
-
-/**
- * A SCA Definitions Document processor.
- *
- */
-public class SCADefinitionsDocumentProcessor implements URLArtifactProcessor<SCADefinitions> {
- protected StAXArtifactProcessor<Object> extensionProcessor;
- protected SCADefinitionsBuilder defnBuilder = null;
- protected ModelResolver domainModelResolver;
-
- private static final DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
- static {
- domFactory.setNamespaceAware(true);
- }
- private XMLInputFactory inputFactory;
-
- /**
- * Construct a new SCADefinitions processor
- * @param assemblyFactory
- * @param policyFactory
- * @param staxProcessor
-
- public SCADefinitionsDocumentProcessor(StAXArtifactProcessor staxProcessor, XMLInputFactory inputFactory) {
- this.extensionProcessor = staxProcessor;
- this.inputFactory = inputFactory;
- defnBuilder = new SCADefinitionsBuilderImpl();
- this.domainModelResolver = new SCADefinitionsResolver();
- } */
-
- public SCADefinitionsDocumentProcessor(StAXArtifactProcessorExtensionPoint staxProcessors,
- StAXArtifactProcessor staxProcessor,
- XMLInputFactory inputFactory,
- PolicyFactory policyFactory) {
- this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
- this.inputFactory = inputFactory;
- defnBuilder = new SCADefinitionsBuilderImpl();
- this.domainModelResolver = new SCADefinitionsResolver();
-
- IntentAttachPointTypeFactory intentAttachPointFactory = new DefaultIntentAttachPointTypeFactoryImpl();
-
- SCADefinitionsProcessor scaDefnProcessor = new SCADefinitionsProcessor(policyFactory, extensionProcessor, domainModelResolver);
-
- staxProcessors.addArtifactProcessor(scaDefnProcessor);
- staxProcessors.addArtifactProcessor(new SimpleIntentProcessor(policyFactory, extensionProcessor));
- staxProcessors.addArtifactProcessor(new ProfileIntentProcessor(policyFactory, extensionProcessor));
- staxProcessors.addArtifactProcessor(new QualifiedIntentProcessor(policyFactory, extensionProcessor));
- staxProcessors.addArtifactProcessor(new PolicySetProcessor(policyFactory, extensionProcessor));
- staxProcessors.addArtifactProcessor(new ImplementationTypeProcessor(policyFactory, intentAttachPointFactory, extensionProcessor));
- staxProcessors.addArtifactProcessor(new BindingTypeProcessor(policyFactory, intentAttachPointFactory, extensionProcessor));
- }
-
-
- public SCADefinitions read(URL contributionURL, URI uri, URL url) throws ContributionReadException {
- InputStream urlStream = null;
- try {
- urlStream = url.openStream();
- XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
- reader.nextTag();
- SCADefinitions scaDefns = (SCADefinitions)extensionProcessor.read(reader);
-
- return scaDefns;
- } catch (XMLStreamException e) {
- throw new ContributionReadException(e);
- } catch (IOException e) {
- throw new ContributionReadException(e);
- } finally {
-
- try {
- if (urlStream != null) {
- urlStream.close();
- urlStream = null;
- }
- } catch (IOException ioe) {
- //ignore
- }
- }
- }
-
- public void resolve(SCADefinitions scaDefinitions, ModelResolver resolver) throws ContributionResolveException {
- try {
- if ( resolver == null ) {
- resolver = this.domainModelResolver;
- }
- defnBuilder.build(scaDefinitions);
- extensionProcessor.resolve(scaDefinitions, resolver);
- } catch (SCADefinitionsBuilderException e) {
- throw new ContributionResolveException(e);
- }
- }
-
- public String getArtifactType() {
- return "definitions.xml";
- }
-
- public Class<SCADefinitions> getModelType() {
- return SCADefinitions.class;
- }
-
- public ModelResolver getDomainModelResolver() {
- return domainModelResolver;
- }
-
- public void setDomainModelResolver(ModelResolver scaDefnsModelResolver) {
- this.domainModelResolver = scaDefnsModelResolver;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsProcessor.java
deleted file mode 100644
index bccdb805e8..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsProcessor.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentAttachPointType;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.SCADefinitions;
-import org.apache.tuscany.sca.policy.impl.SCADefinitionsImpl;
-
-/**
- * Processor for SCA Definitions
- *
- */
-public class SCADefinitionsProcessor implements StAXArtifactProcessor<SCADefinitions>, PolicyConstants {
-
- protected PolicyFactory policyFactory;
- protected StAXArtifactProcessor<Object> extensionProcessor;
- protected ModelResolver definitionsResolver;
-
- //protected PolicyIntentProcessor policyIntentResolver;
-
- /**
- * Construct a new (sca) definitions processor
- * @param policyFactory
- * @param extensionProcessor
- */
- public SCADefinitionsProcessor(PolicyFactory policyFactory,
- StAXArtifactProcessor extensionProcessor) {
- this.policyFactory = policyFactory;
- this.extensionProcessor = extensionProcessor;
- //this.policyIntentResolver = new PolicyIntentProcessor(policyFactory, extensionProcessor);
- }
-
- /**
- * Construct a new (sca) definitions processor
- * @param policyFactory
- * @param extensionProcessor
- * @param modelResolver
- */
- public SCADefinitionsProcessor(PolicyFactory policyFactory,
- StAXArtifactProcessor extensionProcessor,
- ModelResolver modelResolver) {
- this.policyFactory = policyFactory;
- this.extensionProcessor = extensionProcessor;
- //this.policyIntentResolver = new PolicyIntentProcessor(policyFactory, extensionProcessor);
- this.definitionsResolver = modelResolver;
- }
-
- /**
- * Returns a qname from a string.
- * @param reader
- * @param value
- * @return
- */
- protected QName getQNameValue(XMLStreamReader reader, String value) {
- if (value != null) {
- int index = value.indexOf(':');
- String prefix = index == -1 ? "" : value.substring(0, index);
- String localName = index == -1 ? value : value.substring(index + 1);
- String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
- if (ns == null) {
- ns = "";
- }
- return new QName(ns, localName, prefix);
- } else {
- return null;
- }
- }
-
- /**
- * Returns the qname value of an attribute.
- * @param reader
- * @param name
- * @return
- */
- protected QName getQName(XMLStreamReader reader, String name) {
- String qname = reader.getAttributeValue(null, name);
- return getQNameValue(reader, qname);
- }
-
- public SCADefinitions read(XMLStreamReader reader) throws ContributionReadException {
- QName name = null;
- SCADefinitions scaDefns = null;
- try {
- // Read the composite document
- while (reader.hasNext()) {
- int event = reader.getEventType();
- switch (event) {
- case START_ELEMENT: {
- name = reader.getName();
- if ( SCA_DEFNS_QNAME.equals(name)) {
- scaDefns = new SCADefinitionsImpl();
- try {
- scaDefns.setTargetNamespace(new URI(reader.getAttributeValue(null, TARGET_NAMESPACE)));
- } catch ( URISyntaxException e ) {
- throw new ContributionReadException(e);
- }
- } else {
- Object extension = extensionProcessor.read(reader);
- if (extension != null) {
- if ( extension instanceof Intent ) {
- scaDefns.getPolicyIntents().add((Intent)extension);
- } else if ( extension instanceof PolicySet ) {
- scaDefns.getPolicySets().add((PolicySet)extension);
- } else if ( extension instanceof IntentAttachPointType ) {
- IntentAttachPointType type = (IntentAttachPointType)extension;
- if ( type.getName().getLocalPart().startsWith(BINDING)) {
- scaDefns.getBindingTypes().add((IntentAttachPointType)extension);
- } else if ( type.getName().getLocalPart().startsWith(IMPLEMENTATION)) {
- scaDefns.getImplementationTypes().add((IntentAttachPointType)extension);
- }
- }
-
- if ( getDefinitionsResolver() != null ) {
- getDefinitionsResolver().addModel(extension);
- }
- }
- break;
- }
- }
-
- case XMLStreamConstants.CHARACTERS:
- break;
-
- case END_ELEMENT:
- break;
- }
-
- //Read the next element
- if (reader.hasNext()) {
- reader.next();
- }
- }
- return scaDefns;
-
- } catch (XMLStreamException e) {
- throw new ContributionReadException(e);
- }
- }
-
- /**
- * Write attributes to the current element.
- * @param writer
- * @param attrs
- * @throws XMLStreamException
- */
- protected void writeAttributes(XMLStreamWriter writer, XAttr... attrs) throws XMLStreamException {
- for (XAttr attr : attrs) {
- if (attr != null)
- attr.write(writer);
- }
- }
-
- /**
- * Start an element.
- * @param uri
- * @param name
- * @param attrs
- * @throws XMLStreamException
- */
- protected void writeStart(XMLStreamWriter writer, String uri, String name, XAttr... attrs) throws XMLStreamException {
- writer.writeStartElement(uri, name);
- writeAttributes(writer, attrs);
- }
-
- /**
- * Start an element.
- * @param writer
- * @param name
- * @param attrs
- * @throws XMLStreamException
- */
- protected void writeStart(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException {
- writer.writeStartElement(SCA10_NS, name);
- writeAttributes(writer, attrs);
- }
-
- /**
- * Start a document.
- * @param writer
- * @throws XMLStreamException
- */
- protected void writeStartDocument(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException {
- writer.writeStartDocument();
- writer.setDefaultNamespace(SCA10_NS);
- writeStart(writer, name, attrs);
- writer.writeDefaultNamespace(SCA10_NS);
- }
-
- /**
- * End a document.
- * @param writer
- * @throws XMLStreamException
- */
- protected void writeEndDocument(XMLStreamWriter writer) throws XMLStreamException {
- writer.writeEndDocument();
- }
-
- public void write(SCADefinitions scaDefns, XMLStreamWriter writer) throws ContributionWriteException {
-
- try {
- writeStartDocument(writer,
- SCA_DEFINITIONS,
- new XAttr(TARGET_NAMESPACE, scaDefns.getTargetNamespace().toString())
- );
-
- for (Intent policyIntent : scaDefns.getPolicyIntents()) {
- extensionProcessor.write(policyIntent, writer);
- }
-
- for (PolicySet policySet : scaDefns.getPolicySets()) {
- extensionProcessor.write(policySet, writer);
- }
-
- for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
- extensionProcessor.write(bindingType, writer);
- }
-
- for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
- extensionProcessor.write(implType, writer);
- }
-
- writeEndDocument(writer);
-
- } catch (XMLStreamException e) {
- throw new ContributionWriteException(e);
- }
- }
-
- public void resolve(SCADefinitions scaDefns, ModelResolver resolver) throws ContributionResolveException {
- for (int count = 0, size = scaDefns.getPolicyIntents().size(); count < size; count++) {
- Intent intent = scaDefns.getPolicyIntents().get(count);
- extensionProcessor.resolve(intent, resolver);
- }
-
- for (int count = 0, size = scaDefns.getPolicySets().size(); count < size; count++) {
- PolicySet policySet = scaDefns.getPolicySets().get(count);
- extensionProcessor.resolve(policySet, resolver);
- }
-
- for (int count = 0, size = scaDefns.getBindingTypes().size(); count < size; count++) {
- IntentAttachPointType bindingType = scaDefns.getBindingTypes().get(count);
- extensionProcessor.resolve(bindingType, resolver);
- }
-
- for (int count = 0, size = scaDefns.getImplementationTypes().size(); count < size; count++) {
- IntentAttachPointType implType = scaDefns.getImplementationTypes().get(count);
- extensionProcessor.resolve(implType, resolver);
- }
- }
-
- public QName getArtifactType() {
- return SCA_DEFNS_QNAME;
- }
-
- public Class<SCADefinitions> getModelType() {
- return SCADefinitions.class;
- }
-
- public ModelResolver getDefinitionsResolver() {
- return definitionsResolver;
- }
-
- public void setDefinitionsResolver(ModelResolver definitionsResolver) {
- this.definitionsResolver = definitionsResolver;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsResolver.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsResolver.java
deleted file mode 100644
index 6ea08b92a9..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsResolver.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-package org.apache.tuscany.sca.policy.xml;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-
-/**
- * Resolver for artifacts defined in definitions.xml
- *
- */
-public class SCADefinitionsResolver implements ModelResolver {
- private Map<Object, Object> map = new HashMap<Object, Object>();
-
- public SCADefinitionsResolver() {
- }
-
- public void addModel(Object resolved) {
- map.put(resolved, resolved);
- }
-
- public Object removeModel(Object resolved) {
- return map.remove(resolved);
- }
-
- @SuppressWarnings("unchecked")
- public <T> T resolveModel(Class<T> modelClass, T unresolved) {
- Object resolved = map.get(unresolved);
- if (resolved != null) {
- return (T)resolved;
- }
- return unresolved;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java
deleted file mode 100644
index 9011529559..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SimpleIntentProcessor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-
-/*
- * Processor for handling xml models of PolicyIntent definitions
- */
-
-public class SimpleIntentProcessor extends PolicyIntentProcessor<Intent> {
-
- public SimpleIntentProcessor(PolicyFactory policyFactory, StAXArtifactProcessor<Object> extensionProcessor) {
- super(policyFactory, extensionProcessor);
- }
-
- public Class<Intent> getModelType() {
- return Intent.class;
- }
-}
diff --git a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/XAttr.java b/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/XAttr.java
deleted file mode 100644
index eab38f8ca7..0000000000
--- a/branches/sca-java-0.99/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/XAttr.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * 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.
- */
-
-package org.apache.tuscany.sca.policy.xml;
-
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-
-/**
- * Represents an XML attribute that needs to be written to a document.
- *
- */
-class XAttr {
-
- String uri = PolicyConstants.SCA10_NS;
- String name;
- Object value;
-
- public XAttr(String uri, String name, String value) {
- this.uri = uri;
- this.name = name;
- this.value = value;
- }
-
- public XAttr(String name, String value) {
- this.name = name;
- this.value = value;
- }
-
- public XAttr(String uri, String name, boolean value) {
- this.uri = uri;
- this.name = name;
- this.value = value;
- }
-
- public XAttr(String name, boolean value) {
- this.name = name;
- this.value = value;
- }
-
- public XAttr(String uri, String name, QName value) {
- this.uri = uri;
- this.name = name;
- this.value = value;
- }
-
- public XAttr(String name, QName value) {
- this.name = name;
- this.value = value;
- }
-
- /**
- * Writes a string from a qname and registers a prefix for its namespace.
- * @param reader
- * @param value
- * @return
- */
- protected String writeQNameValue(XMLStreamWriter writer, QName qname) throws XMLStreamException {
- if (qname != null) {
- String prefix = qname.getPrefix();
- String uri = qname.getNamespaceURI();
- prefix = writer.getPrefix(uri);
- if (prefix != null) {
-
- // Use the prefix already bound to the given uri
- return prefix + ":" + qname.getLocalPart();
- } else {
-
- // Find an available prefix and bind it to the given uri
- NamespaceContext nsc = writer.getNamespaceContext();
- for (int i=1; ; i++) {
- prefix = "ns" + i;
- if (nsc.getNamespaceURI(prefix) == null) {
- break;
- }
- }
- writer.setPrefix(prefix, uri);
- writer.writeNamespace(prefix, uri);
- return prefix + ":" + qname.getLocalPart();
- }
- } else {
- return null;
- }
- }
-
- void write(XMLStreamWriter writer) throws XMLStreamException {
- if (value != null) {
- String str;
- if (value instanceof QName) {
- str = writeQNameValue(writer, (QName)value);
- } else {
- str = String.valueOf(value);
- }
- if (uri != null && !uri.equals(PolicyConstants.SCA10_NS)) {
- writer.writeAttribute(uri, name, str);
- } else {
- writer.writeAttribute(name,str);
- }
- }
- }
-
-}