diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-28 10:58:07 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-07-28 10:58:07 +0000 |
commit | 04dcd09976ecc5aa2948993b9a9a2d90d239ee44 (patch) | |
tree | f3d3148a4c4ae6d56185cbd55333aaf119532d26 /sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy | |
parent | 19aadc9a267456fe8b84a9a4d3afca74ba9ef969 (diff) |
Delete old beta3 branch as its going to be recreated from the current trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1151789 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy')
15 files changed, 0 insertions, 1533 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/LICENSE b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/LICENSE deleted file mode 100644 index 8aa906c321..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/LICENSE +++ /dev/null @@ -1,205 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - - - diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/META-INF/MANIFEST.MF b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/META-INF/MANIFEST.MF deleted file mode 100644 index 7d0d0b62a1..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/META-INF/MANIFEST.MF +++ /dev/null @@ -1,33 +0,0 @@ -Manifest-Version: 1.0
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Policy WSPolicy Model
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Policy WSPolicy model
-Import-Package: javax.xml.namespace,
- javax.xml.stream,
- org.apache.axiom.om,
- org.apache.axiom.om.impl.builder,
- org.apache.neethi,
- org.apache.tuscany.sca.assembly;version="2.0.0",
- org.apache.tuscany.sca.assembly.builder;version="2.0.0",
- org.apache.tuscany.sca.common.xml.stax.reader;version="2.0.0",
- org.apache.tuscany.sca.contribution.processor;version="2.0.0",
- org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
- org.apache.tuscany.sca.core;version="2.0.0",
- org.apache.tuscany.sca.definitions;version="2.0.0",
- org.apache.tuscany.sca.monitor;version="2.0.0",
- org.apache.tuscany.sca.policy;version="2.0.0";resolution:=optional,
- org.apache.tuscany.sca.policy.xml;version="2.0.0";resolution:=optional
-Bundle-SymbolicName: org.apache.tuscany.sca.policy.wspolicy
-Bundle-DocURL: http://www.apache.org/
-Export-Package: org.apache.tuscany.sca.policy.wspolicy.xml;version="2.0.0";
- uses:="javax.xml.stream,
- junit.framework,
- org.apache.tuscany.sca.contribution.resolver,
- org.apache.tuscany.sca.contribution.processor,
- org.apache.tuscany.sca.policy,
- javax.xml.namespace"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/NOTICE b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/NOTICE deleted file mode 100644 index d69e595698..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/NOTICE +++ /dev/null @@ -1,6 +0,0 @@ -${pom.name} -Copyright (c) 2005 - 2011 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/pom.xml b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/pom.xml deleted file mode 100644 index 0e1c6bbec1..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/pom.xml +++ /dev/null @@ -1,120 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * 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. ---> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-modules</artifactId> - <version>2.0-Beta3-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - <artifactId>tuscany-policy-wspolicy</artifactId> - <name>Apache Tuscany SCA Policy WS-Policy Model</name> - - <dependencies> - <dependency> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-core-runtime-pom</artifactId> - <type>pom</type> - <version>2.0-Beta3-SNAPSHOT</version> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>org.apache.neethi</groupId> - <artifactId>neethi</artifactId> - <version>2.0.4</version> - <exclusions> - <exclusion> - <groupId>wsdl4j</groupId> - <artifactId>wsdl4j</artifactId> - </exclusion> - <exclusion> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.ws.commons.axiom</groupId> - <artifactId>axiom-api</artifactId> - <version>1.2.10</version> - <exclusions> - <exclusion> - <groupId>xerces</groupId> - <artifactId>xercesImpl</artifactId> - </exclusion> - <exclusion> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </exclusion> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - <exclusion> - <groupId>xml-apis</groupId> - <artifactId>xml-apis</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-stax-api_1.0_spec</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.ws.commons.axiom</groupId> - <artifactId>axiom-impl</artifactId> - <version>1.2.10</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </exclusion> - <exclusion> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-stax-api_1.0_spec</artifactId> - </exclusion> - </exclusions> - </dependency> -<!-- - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.1.1</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> ---> - </dependencies> - -</project> diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java b/sca-java-2.x/branches/2.0-Beta3/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/branches/2.0-Beta3/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/branches/2.0-Beta3/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyBuilder.java b/sca-java-2.x/branches/2.0-Beta3/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/branches/2.0-Beta3/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/branches/2.0-Beta3/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessor.java b/sca-java-2.x/branches/2.0-Beta3/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/branches/2.0-Beta3/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 - } - -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder deleted file mode 100644 index e161411be3..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder +++ /dev/null @@ -1,17 +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.
-org.apache.tuscany.sca.policy.wspolicy.WSPolicyBuilder;qname=http://schemas.xmlsoap.org/ws/2004/09/policy#Policy
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor deleted file mode 100644 index 745ad35871..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor +++ /dev/null @@ -1,20 +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.
-
-# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.policy.wspolicy.xml.WSPolicyProcessor;qname=http://schemas.xmlsoap.org/ws/2004/09/policy#Policy,model=org.apache.neethi.Policy
-
diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TestModelResolver.java b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TestModelResolver.java deleted file mode 100644 index 593f56e7f9..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TestModelResolver.java +++ /dev/null @@ -1,64 +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.HashMap; -import java.util.Map; - -import org.apache.tuscany.sca.contribution.processor.ProcessorContext; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; - - -/** - * A default implementation of an artifact resolver, based on a map. - * - * @version $Rev$ $Date$ - */ -public class TestModelResolver implements ModelResolver { - private static final long serialVersionUID = -7826976465762296634L; - - private Map<Object, Object> map = new HashMap<Object, Object>(); - - public TestModelResolver() { - } - - public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) { - Object resolved = map.get(unresolved); - if (resolved != null) { - - // Return the resolved object - return modelClass.cast(resolved); - - } else { - - // Return the unresolved object - return unresolved; - } - } - - public void addModel(Object resolved, ProcessorContext context) { - map.put(resolved, resolved); - } - - public Object removeModel(Object resolved, ProcessorContext context) { - return map.remove(resolved); - } - -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertion.java b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertion.java deleted file mode 100644 index 5b4172563a..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertion.java +++ /dev/null @@ -1,40 +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 javax.xml.namespace.QName; -import org.apache.tuscany.sca.assembly.Base; - -/** - * The WS-Policy model. Defers to the Neethi policy model under the covers. - */ -public class TuscanyWSPolicyAssertion { - - static final String SCA11_TUSCANY_NS = Base.SCA11_TUSCANY_NS; - static final QName TUSCANY_WS_POLICY_ASSERTION_QNAME = new QName(SCA11_TUSCANY_NS, "tuscanyWSPolicyAssertion"); - - private String anAttribute; - - public QName getSchemaName() { - return TUSCANY_WS_POLICY_ASSERTION_QNAME; - } - - -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertionProcessor.java b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertionProcessor.java deleted file mode 100644 index 065feb012c..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/TuscanyWSPolicyAssertionProcessor.java +++ /dev/null @@ -1,60 +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 javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.apache.tuscany.sca.assembly.Base; -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.resolver.ModelResolver; - -/** - * - * @version $Rev$ $Date$ - */ -public class TuscanyWSPolicyAssertionProcessor implements StAXArtifactProcessor<TuscanyWSPolicyAssertion> { - - public QName getArtifactType() { - return new QName(Base.SCA11_TUSCANY_NS, "tuscanyWSPolicyAssertion"); - } - - public TuscanyWSPolicyAssertion read(XMLStreamReader arg0, ProcessorContext context) throws ContributionReadException, XMLStreamException { - return new TuscanyWSPolicyAssertion(); - } - - public void write(TuscanyWSPolicyAssertion arg0, XMLStreamWriter arg1, ProcessorContext context) throws ContributionWriteException, - XMLStreamException { - } - - public Class<TuscanyWSPolicyAssertion> getModelType() { - // TODO Auto-generated method stub - return TuscanyWSPolicyAssertion.class; - } - - public void resolve(TuscanyWSPolicyAssertion arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException { - - } - -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyTestCase.java b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyTestCase.java deleted file mode 100644 index b4c72b5235..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicyTestCase.java +++ /dev/null @@ -1,199 +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 static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import java.io.StringReader; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Endpoint; -import org.apache.tuscany.sca.assembly.EndpointReference; -import org.apache.tuscany.sca.assembly.builder.BuilderContext; -import org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint; -import org.apache.tuscany.sca.assembly.builder.PolicyBuilder; -import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXAttributeProcessor; -import org.apache.tuscany.sca.contribution.processor.ProcessorContext; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; -import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint; -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.definitions.Definitions; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.wspolicy.xml.WSPolicyProcessor; -import org.apache.tuscany.sca.policy.xml.PolicySetProcessor; -import org.junit.Assert; - -/** - * Test reading SCA XML assembly documents. - * - * @version $Rev$ $Date$ - */ -public class WSPolicyTestCase extends TestCase { - - private static final String WS_POLICY1 = - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" - + "<definitions xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " targetNamespace=\"http://test\"" - + " xmlns:test=\"http://test\"" - + " xmlns:sca=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\">" - + " " - + " <policySet name=\"SecureWSPolicy\"" - + " provides=\"test:confidentiality\"" - + " appliesTo=\"sca:binding.ws\"" - + " xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " xmlns:sp=\"http://schemas.xmlsoap.org/ws/2002/12/secext\"" - + " xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.1\"" - + " xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2004/09/policy\">" - + " <wsp:Policy>" - + " <wsp:ExactlyOne>" - + " <wsp:All>" - + " <tuscany:tuscanyWSPolicyAssertion anAttribute=\"fred\"/>" - + " <sp:SecurityToken>" - + " <sp:TokenType>sp:X509v3</sp:TokenType>" - + " </sp:SecurityToken>" - + " <sp:UsernameToken />" - + " <sp:SignedParts />" - + " <sp:EncryptedParts>" - + " <sp:Body />" - + " </sp:EncryptedParts>" - + " <sp:TransportBinding>" - + " <sp:IncludeTimeStamp />" - + " </sp:TransportBinding>" - + " </wsp:All>" - + " </wsp:ExactlyOne>" - + " </wsp:Policy>" - + " </policySet>" - + " </definitions>"; - - private static final String WS_POLICY2 = - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" - + "<definitions xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " targetNamespace=\"http://test\"" - + " xmlns:test=\"http://test\"" - + " xmlns:sca=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\">" - + " " - + " <policySet name=\"SecureWSPolicy\"" - + " provides=\"test:confidentiality\"" - + " appliesTo=\"sca:binding.ws\"" - + " xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " xmlns:sp=\"http://schemas.xmlsoap.org/ws/2002/12/secext\"" - + " xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.1\"" - + " xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2004/09/policy\">" - + " <wsp:Policy>" - + " <wsp:ExactlyOne>" - + " <wsp:All>" - + " <tuscany:tuscanyWSPolicyAssertion anAttribute=\"jim\"/>" - + " <sp:SecurityToken>" - + " <sp:TokenType>sp:X509v3</sp:TokenType>" - + " </sp:SecurityToken>" - + " <sp:UsernameToken />" - + " <sp:SignedParts />" - + " <sp:EncryptedParts>" - + " <sp:Body />" - + " </sp:EncryptedParts>" - + " <sp:TransportBinding>" - + " <sp:IncludeTimeStamp />" - + " </sp:TransportBinding>" - + " </wsp:All>" - + " </wsp:ExactlyOne>" - + " </wsp:Policy>" - + " </policySet>" - + " </definitions>"; - - private XMLInputFactory inputFactory; - - @Override - public void setUp() throws Exception { - inputFactory = XMLInputFactory.newInstance(); - } - - public void testReadWsPolicy() throws Exception { - // Set up the runtime - ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); - - FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); - - XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); - XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - - StAXArtifactProcessorExtensionPoint artifactExtensionPoint = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); - StAXArtifactProcessor<Object> extensibleStAXProcessor = new ExtensibleStAXArtifactProcessor(artifactExtensionPoint, inputFactory, outputFactory); - artifactExtensionPoint.addArtifactProcessor(new TuscanyWSPolicyAssertionProcessor()); - - StAXAttributeProcessorExtensionPoint attributeExtensionPoint = registry.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class); - StAXAttributeProcessor<Object> extensibleStAXAttributeProcessor = new ExtensibleStAXAttributeProcessor(attributeExtensionPoint, inputFactory, outputFactory); - - BuilderExtensionPoint builderExtensionPoint = registry.getExtensionPoint(BuilderExtensionPoint.class); - - StAXArtifactProcessor processor = artifactExtensionPoint.getProcessor(Definitions.class); - - Object artifact = null; - - // Read the first definitions string - - XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(WS_POLICY1)); - - artifact = processor.read(reader, new ProcessorContext()); - assertNotNull(artifact); - Assert.assertTrue(artifact instanceof Definitions); - Definitions definitions1 = (Definitions) artifact; - - // Read the second definitions string - - reader = inputFactory.createXMLStreamReader(new StringReader(WS_POLICY2)); - - artifact = processor.read(reader, new ProcessorContext()); - assertNotNull(artifact); - Assert.assertTrue(artifact instanceof Definitions); - Definitions definitions2 = (Definitions) artifact; - - // compare the policies using the policy builder - - // create dummy endpoints and endpoint references - AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); - EndpointReference epr = assemblyFactory.createEndpointReference(); - Endpoint ep = assemblyFactory.createEndpoint(); - - // add the ws polices we've just read to the epr/ep - epr.getPolicySets().add(definitions1.getPolicySets().get(0)); - ep.getPolicySets().add(definitions1.getPolicySets().get(0)); - - BuilderContext builderContext = new BuilderContext((Monitor)null); - - for (PolicyBuilder policyBuilder : builderExtensionPoint.getPolicyBuilders()) { - System.out.println("PolicyBuilder: " + policyBuilder.toString()); - assertTrue(policyBuilder.build(epr, ep, builderContext)); - } - - } -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessorTestCase.java b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessorTestCase.java deleted file mode 100644 index 1c9c9b706a..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/java/org/apache/tuscany/sca/policy/wspolicy/xml/WSPolicyProcessorTestCase.java +++ /dev/null @@ -1,140 +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 static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import java.io.StringReader; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXAttributeProcessor; -import org.apache.tuscany.sca.contribution.processor.ProcessorContext; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint; -import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint; -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.policy.wspolicy.TuscanyWSPolicyAssertionProcessor; -import org.apache.tuscany.sca.policy.wspolicy.WSPolicy; -import org.apache.tuscany.sca.policy.wspolicy.xml.WSPolicyProcessor; -import org.junit.Assert; - -/** - * Test reading SCA XML assembly documents. - * - * @version $Rev$ $Date$ - */ -public class WSPolicyProcessorTestCase extends TestCase { - - private static final String VALID_WS_POLICY = - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<definitions xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " targetNamespace=\"http://test\"" - + " xmlns:test=\"http://test\"" - + " xmlns:sca=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\">" - + " " - + " <policySet name=\"SecureWSPolicy\"" - + " provides=\"test:confidentiality\"" - + " appliesTo=\"sca:binding.ws\"" - + " xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\"" - + " xmlns:sp=\"http://schemas.xmlsoap.org/ws/2002/12/secext\"" - + " xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2004/09/policy\">" - + " <wsp:Policy>" - + " <wsp:ExactlyOne>" - + " <wsp:All>" - + " <sp:SecurityToken>" - + " <sp:TokenType>sp:X509v3</sp:TokenType>" - + " </sp:SecurityToken>" - + " <sp:UsernameToken />" - + " <sp:SignedParts />" - + " <sp:EncryptedParts>" - + " <sp:Body />" - + " </sp:EncryptedParts>" - + " <sp:TransportBinding>" - + " <sp:IncludeTimeStamp />" - + " </sp:TransportBinding>" - + " </wsp:All>" - + " </wsp:ExactlyOne>" - + " </wsp:Policy>" - + " </policySet>" - + " </definitions>"; - - private XMLInputFactory inputFactory; - - @Override - public void setUp() throws Exception { - inputFactory = XMLInputFactory.newInstance(); - - } - - public void testReadWsPolicy() throws Exception { - XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(VALID_WS_POLICY)); - - ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); - FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); - XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); - XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); - StAXArtifactProcessorExtensionPoint artifactExtensionPoint = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class); - StAXArtifactProcessor<Object> extensibleStAXProcessor = new ExtensibleStAXArtifactProcessor(artifactExtensionPoint, inputFactory, outputFactory); - StAXAttributeProcessorExtensionPoint attributeExtensionPoint = registry.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class); - StAXAttributeProcessor<Object> extensibleStAXAttributeProcessor = new ExtensibleStAXAttributeProcessor(attributeExtensionPoint, inputFactory, outputFactory); - - WSPolicyProcessor processor = new WSPolicyProcessor(new DefaultExtensionPointRegistry(), - extensibleStAXProcessor, - extensibleStAXAttributeProcessor); - - Object artifact = null; - - QName name = null; - reader.next(); - while (true) { - int event = reader.getEventType(); - switch (event) { - case START_ELEMENT: { - name = reader.getName(); - - if (WSPolicy.WS_POLICY_QNAME.equals(name)) { - artifact = processor.read(reader, new ProcessorContext()); - } - - break; - } - } - - if (reader.hasNext()) { - reader.next(); - } else { - break; - } - } - assertNotNull(artifact); - Assert.assertTrue(artifact instanceof WSPolicy); - WSPolicy policy = (WSPolicy) artifact; - Assert.assertTrue(policy.getNeethiPolicy().getAlternatives().hasNext()); - } -} diff --git a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/resources/org/apache/tuscany/sca/policy/wspolicy/test_definitions.xml b/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/resources/org/apache/tuscany/sca/policy/wspolicy/test_definitions.xml deleted file mode 100644 index 600ac8e267..0000000000 --- a/sca-java-2.x/branches/2.0-Beta3/modules/policy-wspolicy/src/test/resources/org/apache/tuscany/sca/policy/wspolicy/test_definitions.xml +++ /dev/null @@ -1,192 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<!-- - * 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. ---> -<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" - targetNamespace="http://test" - xmlns:test="http://test" - xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"> - -<policySet name="SecureWSPolicy" - provides="test:confidentiality" - appliesTo="sca:binding.ws" - xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" - xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext" - xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <wsp:Policy> - <wsp:ExactlyOne> - <wsp:All> - <sp:SecurityToken> - <sp:TokenType>sp:X509v3</sp:TokenType> - </sp:SecurityToken> - <sp:UsernameToken /> - <sp:SignedParts /> - <sp:EncryptedParts> - <sp:Body /> - </sp:EncryptedParts> - <sp:TransportBinding> - <sp:IncludeTimeStamp /> - </sp:TransportBinding> - </wsp:All> - </wsp:ExactlyOne> - </wsp:Policy> - </policySet> - -<policySet name="WSPolicy1" - provides="test:confidentiality" - appliesTo="sca:binding.ws" - xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" - xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext" - xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <wsp:Policy> - <wsp:ExactlyOne> - <wsp:All> - <sp:SecurityToken> - <sp:TokenType>sp:X509v3</sp:TokenType> - </sp:SecurityToken> - <sp:UsernameToken /> - <sp:SignedParts /> - <sp:EncryptedParts> - <sp:Body /> - </sp:EncryptedParts> - <sp:TransportBinding> - <sp:IncludeTimeStamp /> - </sp:TransportBinding> - </wsp:All> - </wsp:ExactlyOne> - </wsp:Policy> - </policySet> - - <policySet name="WSPolicy2" - provides="test:confidentiality" - appliesTo="sca:binding.ws" - xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" - xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext" - xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <wsp:Policy> - <wsp:ExactlyOne> - <wsp:All> - <sp:SecurityToken> - <sp:TokenType>sp:X509v3</sp:TokenType> - </sp:SecurityToken> - <sp:SignedParts /> - <sp:EncryptedParts> - <sp:Body /> - </sp:EncryptedParts> - <sp:TransportBinding> - <sp:IncludeTimeStamp /> - </sp:TransportBinding> - </wsp:All> - </wsp:ExactlyOne> - </wsp:Policy> - </policySet> - - <policySet name="WSPolicy3" - provides="test:confidentiality" - appliesTo="sca:binding.ws" - xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" - xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext" - xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <wsp:Policy> - <wsp:ExactlyOne> - <wsp:All> - <sp:SecurityToken> - <sp:TokenType>sp:X509v3</sp:TokenType> - </sp:SecurityToken> - <sp:SignedParts /> - <sp:EncryptedParts> - <sp:Body /> - </sp:EncryptedParts> - <sp:TransportBinding> - <sp:IncludeTimeStamp /> - </sp:TransportBinding> - </wsp:All> - <wsp:All> - <sp:SecurityToken> - <sp:TokenType>sp:X509v3</sp:TokenType> - </sp:SecurityToken> - <sp:UsernameToken /> - <sp:SignedParts /> - <sp:EncryptedParts> - <sp:Body /> - </sp:EncryptedParts> - <sp:TransportBinding> - <sp:IncludeTimeStamp /> - </sp:TransportBinding> - </wsp:All> - </wsp:ExactlyOne> - </wsp:Policy> - </policySet> - -<!-- profile intent --> - <intent name="reliableMessageProtection" - constrains="sca:binding" - requires="test:messageProtection"> - <description> - Protect messages from unauthorized reading or modification - </description> - </intent> - - <intent name="messageProtection" - constrains="sca:binding" - requires="test:confidentiality test:integrity"> - <description> - Protect messages from unauthorized reading or modification - </description> - </intent> - -<!-- simple intent --> - <intent name="confidentiality" - constrains="sca:binding"> - <description> - Communitcation thro this binding must prevent - unauthorized users from reading the messages. - </description> - </intent> - - <intent name="integrity" - constrains="sca:binding"> - <description> - Communitcation thro this binding must prevent - unauthorized modification of the messages. - </description> - </intent> - - <intent name="authentication" - constrains="sca:binding"> - <description> - Communitcation thro this binding required - Authentication. - </description> - </intent> - - <intent name="logging" - constrains="sca:implementation"> - <description> - All messages to and from this implementation must be logged - </description> - </intent> - - <intent name="tracing" - constrains="sca:implementation.java"> - <description> - Need to figure out some description for this - </description> - </intent> - -</definitions>
\ No newline at end of file |