diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2012-02-16 15:38:34 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2012-02-16 15:38:34 +0000 |
commit | e6e918ef537c4aa9802ca27b92e1dc566c2cffda (patch) | |
tree | 7e713405c13ac6bb12a30d330cfa4e171bb334c1 /sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany | |
parent | 6a5618b2741471546e0b0885e1758c391837dff6 (diff) |
Delete old RC tags
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1245033 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
3 files changed, 0 insertions, 437 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java deleted file mode 100644 index 6938b72d82..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java +++ /dev/null @@ -1,74 +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.wspolicy; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.namespace.QName; - -import org.apache.neethi.Policy; -import org.apache.tuscany.sca.policy.PolicyContainer; - -/** - * The WS-Policy model. Currently defers to the Neethi policy model under the covers. - */ -public class WSPolicy implements PolicyContainer { - - public final static String WS_POLICY_NS = "http://schemas.xmlsoap.org/ws/2004/09/policy"; - public final static String WS_POLICY = "Policy"; - - public final static QName WS_POLICY_QNAME = new QName(WS_POLICY_NS, WS_POLICY); - - private Policy neethiPolicy; - private List<Object> policyAssertions = new ArrayList<Object>(); - - public QName getSchemaName() { - return WS_POLICY_QNAME; - } - - public Policy getNeethiPolicy() { - return neethiPolicy; - } - - public void setNeethiPolicy(Policy neethiPolicy) { - this.neethiPolicy = neethiPolicy; - } - - public List<Object> getPolicyAssertions(){ - return policyAssertions; - } - - @Override - public String toString() { - return "WSPolicy [" + neethiPolicy + "]"; - } - - public <T> Object getChildPolicy(Class<T> policyType) { - for (Object alternative : policyAssertions){ - for (Object policy : (List<Object>)alternative){ - if (policyType.isInstance(policy)){ - return policy; - } - } - } - return null; - } -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyBuilder.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyBuilder.java deleted file mode 100644 index d6bd710ed9..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyBuilder.java +++ /dev/null @@ -1,173 +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.wspolicy; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.namespace.QName; - -import org.apache.neethi.Policy; -import org.apache.tuscany.sca.assembly.Component; -import org.apache.tuscany.sca.assembly.Endpoint; -import org.apache.tuscany.sca.assembly.EndpointReference; -import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.assembly.builder.BuilderContext; -import org.apache.tuscany.sca.assembly.builder.PolicyBuilder; -import org.apache.tuscany.sca.policy.PolicyExpression; -import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; - -/** - * Processing for WS-Policy objects - * TBD - */ -public class WSPolicyBuilder implements PolicyBuilder<Policy> { - - public boolean build(Endpoint endpoint, BuilderContext context) { - List<WSPolicy> polices = getPolicies(endpoint); - System.out.println(endpoint + ": " + polices); - return true; - } - - public boolean build(EndpointReference endpointReference, BuilderContext context) { - List<WSPolicy> polices = getPolicies(endpointReference); - System.out.println(endpointReference + ": " + polices); - return true; - } - - public boolean build(Component component, Implementation implementation, BuilderContext context) { - List<WSPolicy> polices = getPolicies(implementation); - System.out.println(implementation + ": " + polices); - return true; - } - - public QName getPolicyType() { - return WSPolicy.WS_POLICY_QNAME; - } - - public List<QName> getSupportedBindings() { - return null; - } - - public boolean build(EndpointReference endpointReference, Endpoint endpoint, BuilderContext context) { - - // TODO - neethi doesn't include code for matching ws policy - // cxf have the class Intersector http://svn.apache.org/repos/asf/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/Intersector.java - // but this does its work based on the cxf AssertionBuilders and extension - // registry mechanism. I don't want to commit to that at the moment. - // - // At the moment we do the simplest top level QName based matching - - // match EPR policy sets - for (PolicySet eprPolicySet : endpointReference.getPolicySets()){ - for (PolicySet epPolicySet : endpoint.getPolicySets()){ - if (!build(eprPolicySet, epPolicySet)){ - return false; - } - } - } - - // match EP policy sets - for (PolicySet epPolicySet : endpoint.getPolicySets()){ - for (PolicySet eprPolicySet : endpointReference.getPolicySets()){ - if (!build(epPolicySet, eprPolicySet)){ - return false; - } - } - } - - return true; - } - - private boolean build(PolicySet policySet1, PolicySet policySet2){ - - // extract the ws policy expressions out of the policy sets - List<PolicyExpression> policyExpressions1 = new ArrayList<PolicyExpression>(); - List<PolicyExpression> policyExpressions2 = new ArrayList<PolicyExpression>(); - - for (PolicyExpression policyExpression : policySet1.getPolicies()){ - if (policyExpression.getName().equals(getPolicyType())){ - policyExpressions1.add(policyExpression); - } - } - - for (PolicyExpression policyExpression : policySet2.getPolicies()){ - if (policyExpression.getName().equals(getPolicyType())){ - policyExpressions2.add(policyExpression); - } - } - - // Match the first set of expressions against the second set - for (PolicyExpression policyExpression1 : policyExpressions1){ - for (PolicyExpression policyExpression2 : policyExpressions2){ - if (!build((WSPolicy)policyExpression1.getPolicy(), - (WSPolicy)policyExpression2.getPolicy())){ - return false; - } - } - } - - // TODO set the reference policy set to include an interception of the - // ws policy sets discovered here - // Do we really need to do this? - // The method is called in both directions (reference to service and - // service to reference) so would need to fix that - - return true; - } - - private List<WSPolicy> getPolicies(PolicySubject subject) { - List<WSPolicy> polices = new ArrayList<WSPolicy>(); - for (PolicySet ps : subject.getPolicySets()) { - for (PolicyExpression exp : ps.getPolicies()) { - if (getPolicyType().equals(exp.getName())) { - polices.add((WSPolicy)exp.getPolicy()); - } - } - } - return polices; - } - - private boolean build(WSPolicy wsPolicy1, WSPolicy wsPolicy2){ - // TODO - cheating here as we assume a flat policy structure - // we've read all the policy assertions into Tuscany models - // in the reader (without taking account of alternatives) - // so we just compare those here - // The real implementation of this comparison depends on how - // we decide to represent the ws policy hierarchy - - for (Object policyAssertion1 : wsPolicy1.getPolicyAssertions()){ - boolean matched = false; - for (Object policyAssertion2 : wsPolicy2.getPolicyAssertions()){ - if (policyAssertion1.getClass() == policyAssertion2.getClass()){ - matched = true; - break; - } - } - if(!matched){ - return false; - } - } - - return true; - } - -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessor.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessor.java deleted file mode 100644 index cbc234bc47..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessor.java +++ /dev/null @@ -1,190 +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.wspolicy.xml; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; -import org.apache.neethi.Constants; -import org.apache.neethi.PolicyComponent; -import org.apache.neethi.PolicyEngine; -import org.apache.neethi.PolicyOperator; -import org.apache.tuscany.sca.common.xml.stax.reader.XMLDocumentStreamReader; -import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.ContributionReadException; -import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; -import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; -import org.apache.tuscany.sca.contribution.processor.ProcessorContext; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.policy.wspolicy.WSPolicy; - -/** - * Processor for handling xml models of PolicySet definitions - * - * @version $Rev$ $Date$ - */ -public class WSPolicyProcessor extends BaseStAXArtifactProcessor implements - StAXArtifactProcessor<WSPolicy> { - - protected ExtensionPointRegistry registry; - protected StAXArtifactProcessor<Object> extensionProcessor; - protected StAXAttributeProcessor<Object> extensionAttributeProcessor; - protected XMLInputFactory inputFactory; - protected XMLOutputFactory outputFactory; - - public WSPolicyProcessor(ExtensionPointRegistry registry, - StAXArtifactProcessor extensionProcessor, - StAXAttributeProcessor extensionAttributeProcessor) { - this.registry = registry; - this.extensionProcessor = extensionProcessor; - this.extensionAttributeProcessor = extensionAttributeProcessor; - - FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); - this.inputFactory = modelFactories.getFactory(XMLInputFactory.class); - this.outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - } - - public QName getArtifactType() { - return WSPolicy.WS_POLICY_QNAME; - } - - public Class<WSPolicy> getModelType() { - return WSPolicy.class; - } - - public WSPolicy read(XMLStreamReader reader, ProcessorContext context) - throws ContributionReadException, XMLStreamException { - org.apache.neethi.Policy neethiPolicy = null; - XMLDocumentStreamReader doc = new XMLDocumentStreamReader(reader); - StAXOMBuilder builder = new StAXOMBuilder(doc); - OMElement element = builder.getDocumentElement(); - neethiPolicy = PolicyEngine.getPolicy(element); - - WSPolicy wsPolicy = new WSPolicy(); - wsPolicy.setNeethiPolicy(neethiPolicy); - - // normalize the neethi tree so we can easily identify - // the policy alternatives -/* Messes up the hierarchy if rampart config policies included - try { - neethiPolicy.normalize(true); - } catch (UnsupportedOperationException ex){ - // RampartConfig policies don't support this yet - } -*/ - - // top-level children of ExactlyOne are policy alternatives so - // for each child create a policy model list and pull the - // policies out - for(Object alternative : neethiPolicy.getPolicyComponents()) { - List<Object> assertions = new ArrayList<Object>(); - readPolicyAssertions(assertions, (PolicyComponent)alternative, context); - wsPolicy.getPolicyAssertions().add(assertions); - } - - - return wsPolicy; - } - - private void readPolicyAssertions(List<Object> policyAssertions, PolicyComponent policyComponent, ProcessorContext context){ - - // recurse into the policy alternatives - // TODO - lots of todos here as this just walks down the neethi hierarchy - // looking for assertions to drive Tuscany processors without - // regard to the policy alternatives. Undecided about whether to - // commit to prepresenting this hierarchy in Tuscany or whether - // to rely on neethi - // Should this be in the builder? Not really as this drives the - // Tuscany specific readers - if (policyComponent.getType() != Constants.TYPE_ASSERTION){ - PolicyOperator policyOperator = (PolicyOperator)policyComponent; - for(Object childComponent : policyOperator.getPolicyComponents()){ - // TODO - create assertion hierarchy in wsPolicy model - // how we do this depends on if we continue to use neethi - readPolicyAssertions(policyAssertions, (PolicyComponent)childComponent, context); - } - } else { - try { - // TODO - not sure we should keep the neethi model but hack for the - // time being to get Tuscany processors to process the OMElements - // within the neethi model - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - XMLStreamWriter writer = outputFactory.createXMLStreamWriter(outputStream); - - policyComponent.serialize(writer); - writer.flush(); - writer.close(); - outputStream.flush(); - outputStream.close(); - - ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); - XMLStreamReader reader = inputFactory.createXMLStreamReader(inputStream); - - Object neethiAssertion = policyComponent; - Object tuscanyAssertion = extensionProcessor.read(reader, context); - - if (tuscanyAssertion != null) { - policyAssertions.add(tuscanyAssertion); - } else { - // add neethi assertion - policyAssertions.add(neethiAssertion); - } - } catch (Exception ex) { - // TODO - report the error properly - ex.printStackTrace(); - } - } - } - - public void write(WSPolicy wsPolicy, XMLStreamWriter writer, ProcessorContext context) - throws ContributionWriteException, XMLStreamException { - - // Write an <sca:policySet> - writer.writeStartElement(WSPolicy.WS_POLICY_NS, WSPolicy.WS_POLICY); - - if (wsPolicy != null) { - wsPolicy.getNeethiPolicy().serialize(writer); - } - - writer.writeEndElement(); - } - - public void resolve(WSPolicy wsPolicy, ModelResolver resolver, ProcessorContext context) - throws ContributionResolveException { - - // resolve policy assertions - } - -} |