summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/policy
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/policy')
-rw-r--r--java/sca/modules/policy/LICENSE205
-rw-r--r--java/sca/modules/policy/META-INF/MANIFEST.MF32
-rw-r--r--java/sca/modules/policy/NOTICE6
-rw-r--r--java/sca/modules/policy/pom.xml39
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/BindingType.java27
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java30
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ExtensionType.java81
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ImplementationType.java27
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java160
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java51
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyAttachment.java31
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyExpression.java65
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java66
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java146
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySubject.java56
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Qualifier.java44
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java38
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ExtensionTypeImpl.java97
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java39
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java168
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java61
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyExpressionImpl.java86
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java70
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java145
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifierImpl.java48
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java370
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationException.java38
-rw-r--r--java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java98
-rw-r--r--java/sca/modules/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicyFactory18
-rw-r--r--java/sca/modules/policy/src/test/java/org/apache/tuscany/sca/policy/PolicyFactoryTestCase.java55
30 files changed, 0 insertions, 2397 deletions
diff --git a/java/sca/modules/policy/LICENSE b/java/sca/modules/policy/LICENSE
deleted file mode 100644
index 8aa906c321..0000000000
--- a/java/sca/modules/policy/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/java/sca/modules/policy/META-INF/MANIFEST.MF b/java/sca/modules/policy/META-INF/MANIFEST.MF
deleted file mode 100644
index 1c3482cf56..0000000000
--- a/java/sca/modules/policy/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +0,0 @@
-Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.policy.util;uses:="javax.xml.pa
- rsers,javax.xml.transform.dom,org.apache.tuscany.sca.policy,org.apach
- e.tuscany.sca.extensibility,org.w3c.dom,javax.xml.namespace,javax.xml
- .xpath,javax.xml.transform,javax.xml.transform.stream";version="2.0.0",
- org.apache.tuscany.sca.policy.impl;uses:="javax.xml.xpath,org.apache.
- tuscany.sca.policy,javax.xml.namespace";version="2.0.0",org.apache.tusc
- any.sca.policy;uses:="javax.xml.xpath,org.apache.tuscany.sca.policy.i
- mpl,javax.xml.namespace";version="2.0.0"
-Tool: Bnd-0.0.255
-Bundle-Name: Apache Tuscany SCA Policy Model
-Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bnd-LastModified: 1225397083703
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Policy Model
-Import-Package: javax.xml.namespace,
- javax.xml.parsers,
- javax.xml.transform,
- javax.xml.transform.dom,
- javax.xml.transform.stream,
- javax.xml.xpath,
- org.apache.tuscany.sca.extensibility;version="2.0.0",
- org.apache.tuscany.sca.policy;version="2.0.0",
- org.apache.tuscany.sca.policy.impl;version="2.0.0",
- org.apache.tuscany.sca.policy.util;version="2.0.0",
- org.w3c.dom
-Bundle-SymbolicName: org.apache.tuscany.sca.policy
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
diff --git a/java/sca/modules/policy/NOTICE b/java/sca/modules/policy/NOTICE
deleted file mode 100644
index 25bb89c9b2..0000000000
--- a/java/sca/modules/policy/NOTICE
+++ /dev/null
@@ -1,6 +0,0 @@
-${pom.name}
-Copyright (c) 2005 - 2009 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/java/sca/modules/policy/pom.xml b/java/sca/modules/policy/pom.xml
deleted file mode 100644
index 1c4bd18537..0000000000
--- a/java/sca/modules/policy/pom.xml
+++ /dev/null
@@ -1,39 +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-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>tuscany-policy</artifactId>
- <name>Apache Tuscany SCA Policy Model</name>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-extensibility</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/BindingType.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/BindingType.java
deleted file mode 100644
index f43c428563..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/BindingType.java
+++ /dev/null
@@ -1,27 +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;
-
-
-/**
- * Definition of binding type which extends from sca:binding
- */
-public interface BindingType extends ExtensionType {
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java
deleted file mode 100644
index 2da41675a1..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java
+++ /dev/null
@@ -1,30 +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;
-
-import org.apache.tuscany.sca.policy.impl.PolicyFactoryImpl;
-
-/**
- * A factory for the policy model.
- *
- * @version $Rev$ $Date$
- */
-public class DefaultPolicyFactory extends PolicyFactoryImpl implements PolicyFactory {
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ExtensionType.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ExtensionType.java
deleted file mode 100644
index e7a93c8907..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ExtensionType.java
+++ /dev/null
@@ -1,81 +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;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-/**
- * Definition of extension type: binding or implementation
- */
-public interface ExtensionType {
- QName BINDING_BASE = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200903", "binding");
- QName IMPLEMENTATION_BASE = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200903", "implementation");
-
- /**
- * The name of the extension type (binding or implementation). The extension type name
- * attribute MUST be the QName of an XSD global element definition used for
- * binding/implementation elements of that type
- *
- * @return The QName of this type
- */
- QName getType();
-
- /**
- * Set the QName for this type
- * @param type The QName of this type
- */
- void setType(QName type);
-
- QName getBaseType();
-
- /**
- * A set of intents. The intents in the alwaysProvides set are always
- * provided by this extension type, whether the intents are attached
- * to the using component or not.
- *
- * @return A list of intents that are always provided by this type
- */
- List<Intent> getAlwaysProvidedIntents();
-
- /**
- * a set of intents. The intents in the mayProvide set are provided by this
- * extension type if the intent in question is attached to the using
- * component.
- *
- * @return A list of intents that may be provided by this type
- */
- List<Intent> getMayProvidedIntents();
- /**
- * Returns true if the model element is unresolved.
- *
- * @return true if the model element is unresolved.
- */
- boolean isUnresolved();
-
- /**
- * Sets whether the model element is unresolved.
- *
- * @param unresolved whether the model element is unresolved
- */
- void setUnresolved(boolean unresolved);
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ImplementationType.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ImplementationType.java
deleted file mode 100644
index d142015f57..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ImplementationType.java
+++ /dev/null
@@ -1,27 +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;
-
-
-/**
- * Definition of an implementation type which extends from sca:implementation
- */
-public interface ImplementationType extends ExtensionType {
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
deleted file mode 100644
index b79ccdab78..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
+++ /dev/null
@@ -1,160 +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;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-/**
- * Represents a policy intent. See the Policy Framework specification for a
- * description of this element.
- *
- * @version $Rev$ $Date$
- */
-public interface Intent {
- enum Type {
- interaction, implementation
- };
-
- /**
- * Returns the intent name.
- *
- * @return the intent name
- */
- QName getName();
-
- /**
- * Sets the intent name
- *
- * @param name the intent name
- */
- void setName(QName name);
-
- /**
- * Returns the list of SCA constructs that this intent is meant to
- * configure.
- *
- * @return the list of SCA constructs that this intent is meant to configure
- */
- List<ExtensionType> getConstrainedTypes();
-
- /**
- * Return a list of required intents
- * @return The list of required intents
- */
- List<Intent> getRequiredIntents();
-
- /**
- * Returns the list of intents which are mutually exclusive with this intent.
- *
- * @return the list of mutually exclusive intents.
- */
- List<Intent> getExcludedIntents();
-
- /**
- * Returns the list of qualified intents.
- *
- * @return the list of qualified intents.
- */
- List<Intent> getQualifiedIntents();
-
- /**
- * Get the default qualified intent
- *
- * @return
- */
- Intent getDefaultQualifiedIntent();
-
- /**
- * Set the default qualified intent
- *
- * @param qualifiedIntent
- */
- void setDefaultQualifiedIntent(Intent qualifiedIntent);
-
- /**
- * Get the intent type: Interaction or Implementation
- * @return
- */
- Type getType();
-
- /**
- * Set the intent type
- * @param type: Interaction or Implementation
- */
- void setType(Type type);
-
- /**
- * If this attribute is present and has a value of true it indicates that
- * the qualified intents defined for this intent are mutually exclusive
- *
- * @return
- */
- boolean isMutuallyExclusive();
-
- /**
- * Set the value of mutuallyExclusive
- * @param mutuallyExclusive
- */
- void setMutuallyExclusive(boolean mutuallyExclusive);
-
- /**
- * Returns the intent description.
- *
- * @return the intent description
- */
- String getDescription();
-
- /**
- * Sets the intent description.
- *
- * @param description the intent description
- */
- void setDescription(String description);
-
- /**
- * Returns true if the model element is unresolved.
- *
- * @return true if the model element is unresolved.
- */
-
- /**
- * Get the parent intent for a qualified intent. If an intent is not qualified,
- * return null.
- * @return The parent intent or null if this intent is not qualified
- */
- Intent getQualifiableIntent();
-
- /**
- * Set the parent intent for a qualified intent
- * @param intent
- */
- void setQualifiableIntent(Intent intent);
-
- boolean isUnresolved();
-
- /**
- * Sets whether the model element is unresolved.
- *
- * @param unresolved whether the model element is unresolved
- */
- void setUnresolved(boolean unresolved);
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java
deleted file mode 100644
index efed4bfdb1..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java
+++ /dev/null
@@ -1,51 +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;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.Intent;
-
-
-/**
- * Map policies to the qualified intents
- */
-public interface IntentMap {
- /**
- * Returns the intent realized by this intent map.
- *
- * @return the intent realized by this intent map
- */
- Intent getProvidedIntent();
-
- /**
- * Sets the intent realized by this intent map.
- *
- * @param providedIntent the intent realized by this intent map
- */
- void setProvidedIntent(Intent providedIntent);
-
- /**
- * Get a list of qualifiers
- *
- * @return A list of qualifiers
- */
- List<Qualifier> getQualifiers();
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyAttachment.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyAttachment.java
deleted file mode 100644
index ee4f5b5236..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyAttachment.java
+++ /dev/null
@@ -1,31 +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;
-
-import java.util.List;
-
-/**
- * Attach a policySet to a collection of policy subjects
- */
-public interface PolicyAttachment {
- PolicySet getPolicySet();
- void setPolicySet(PolicySet policySet);
- List<PolicySubject> getPolicySubjects();
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyExpression.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyExpression.java
deleted file mode 100644
index a29f214f98..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyExpression.java
+++ /dev/null
@@ -1,65 +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;
-
-import javax.xml.namespace.QName;
-
-/**
- * Interface that will abstract various types of policy specifications
- * and attachments for example WS-Policy
- *
- * @version $Rev$ $Date$
- */
-public interface PolicyExpression {
- /**
- * Get the QName of the policy expression
- * @return the QName of the policy expression
- */
- QName getName();
-
- /**
- * Set the QName of the policy expression
- * @param name
- */
- void setName(QName name);
-
- /**
- * Get the policy definition in the type of the specific domain
- * @return
- */
- <T> T getPolicy();
-
- /**
- * Set the policy definition
- * @param expression
- */
- <T> void setPolicy(T policy);
-
- /**
- *
- * @param unresolved
- */
- void setUnresolved(boolean unresolved);
-
- /**
- *
- * @return
- */
- boolean isUnresolved();
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java
deleted file mode 100644
index 9e7de2f6da..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java
+++ /dev/null
@@ -1,66 +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;
-
-/**
- * A factory for the policy model.
- *
- * @version $Rev$ $Date$
- */
-public interface PolicyFactory {
-
- /**
- * Create a new intent.
- *
- * @return a new intent
- */
- Intent createIntent();
-
- /**
- * Create a new policy set.
- *
- * @return a new policy set
- */
- PolicySet createPolicySet();
-
- /**
- * Create a new intent map.
- *
- * @return a new intent map
- */
- IntentMap createIntentMap();
-
- /**
- * create a new Qualifier
- *
- * @return a Qualifier
- */
- Qualifier createQualifier();
-
- /**
- * Create a new PolicyExpression
- * @return
- */
- PolicyExpression createPolicyExpression();
-
- ExtensionType createExtensionType();
- BindingType createBindingType();
- ImplementationType createImplementationType();
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
deleted file mode 100644
index 2b5b8458d5..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
+++ /dev/null
@@ -1,146 +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;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.xpath.XPathExpression;
-
-/**
- * Represents a policy set. See the Policy Framework specification for a
- * description of this element.
- *
- * @version $Rev$ $Date$
- */
-public interface PolicySet {
-
- /**
- * Returns the intent name.
- *
- * @return the intent name
- */
- QName getName();
-
- /**
- * Sets the intent name
- *
- * @param name the intent name
- */
- void setName(QName name);
-
- /**
- * Returns the list of
- *
- * @return
- */
- List<PolicySet> getReferencedPolicySets();
-
- /**
- * Returns the list of provided intents
- *
- * @return
- */
- List<Intent> getProvidedIntents();
-
- /**
- * Returns the list of concrete policies, either WS-Policy policy
- * attachments, policy references, or policies expressed in another policy
- * language.
- *
- * @return the list of concrete policies
- */
- List<PolicyExpression> getPolicies();
-
- /**
- * Returns true if the model element is unresolved.
- *
- * @return true if the model element is unresolved.
- */
- boolean isUnresolved();
-
- /**
- * Sets whether the model element is unresolved.
- *
- * @param unresolved whether the model element is unresolved
- */
- void setUnresolved(boolean unresolved);
-
- /**
- * Returns the XPath expression that is to be used to evaluate
- * if this PolicySet applies to specific policy subject
- *
- * @return the XPath expression
- */
- String getAppliesTo();
-
- /**
- * Sets the XPath expression that is to be used to evaluate
- * if this PolicySet applies to specific policy subject
- *
- */
- void setAppliesTo(String xpath);
-
- /**
- * A string which is an XPath 1.0 expression identifying one or more
- * elements (policy subject) in the Domain. It is used to declare which
- * set of elements the policySet is actually attached to.
- *
- * @return The attachTo XPath
- */
- String getAttachTo();
-
- /**
- * Set the attachTo XPath
- * @param xpath
- */
- void setAttachTo(String xpath);
-
- /**
- * Get the resolved XPathExpression for attachTo
- * @return
- */
- XPathExpression getAttachToXPathExpression();
-
- /**
- * Set the resolved XPathExpression for attachTo
- * @param expression
- */
- void setAttachToXPathExpression(XPathExpression expression);
-
- /**
- * Returns the policies / policy attachments provided thro intent maps
- *
- * @return
- */
- List<IntentMap> getIntentMaps();
-
- /**
- * Get the XPath expression for the appliesTo attribute
- * @return the XPath expression for the appliesTo attribute
- */
- XPathExpression getAppliesToXPathExpression();
-
- /**
- * Set the XPath expression for the appliesTo attribute
- * @param xpathExpression the XPath expression for the appliesTo attribute
- */
- void setAppliesToXPathExpression(XPathExpression xpathExpression);
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySubject.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySubject.java
deleted file mode 100644
index 35a86ceedf..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySubject.java
+++ /dev/null
@@ -1,56 +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;
-
-import java.util.List;
-
-/**
- * A policy subject is an entity in the assembly with which a policy can be
- * associated.
- *
- * For example, a policy subject can be one of the following:
- * <ul>
- * <li>composite
- * <li>component
- * <li>implementation
- * <li>service
- * <li>reference
- * <li>binding
- * <li>interface
- * </ul>
- */
-public interface PolicySubject {
- /**
- * Get a list of required intents
- *
- * @return
- */
- List<Intent> getRequiredIntents();
-
- /**
- * Get a list of attached policySets
- *
- * @return A list of policySets
- */
- List<PolicySet> getPolicySets();
-
- ExtensionType getExtensionType();
- void setExtensionType(ExtensionType type);
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Qualifier.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Qualifier.java
deleted file mode 100644
index c1862283c7..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Qualifier.java
+++ /dev/null
@@ -1,44 +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;
-
-import java.util.List;
-
-/**
- * A qualifier provides a list of policies for a qualified intent within the IntentMap
- */
-public interface Qualifier {
- /**
- * Get the qualified intent for this qualifier
- * @return The intent
- */
- Intent getIntent();
-
- /**
- * Set the qualified intent for this qualifier
- */
- void setIntent(Intent intent);
-
- /**
- * Get the list of policies provided by this qualifier
- * @return A list of policies
- */
- List<PolicyExpression> getPolicies();
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java
deleted file mode 100644
index 1a2a9c5bad..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java
+++ /dev/null
@@ -1,38 +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.impl;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.BindingType;
-
-/**
- * Concrete implementation for a BindingType
- *
- * @version $Rev$ $Date$
- */
-public class BindingTypeImpl extends ExtensionTypeImpl implements BindingType {
- protected BindingTypeImpl() {
- super();
- }
-
- public QName getBaseType() {
- return BINDING_BASE;
- }
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ExtensionTypeImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ExtensionTypeImpl.java
deleted file mode 100644
index 97fbc19ced..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ExtensionTypeImpl.java
+++ /dev/null
@@ -1,97 +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.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.ExtensionType;
-import org.apache.tuscany.sca.policy.Intent;
-
-/**
- * Concrete implementation for a BindingType
- *
- * @version $Rev$ $Date$
- */
-public class ExtensionTypeImpl implements ExtensionType {
-
- private List<Intent> alwaysProvides = new ArrayList<Intent>();
- private List<Intent> mayProvide = new ArrayList<Intent>();
- private QName typeName;
- private boolean unResolved = true;
-
- protected ExtensionTypeImpl() {
-
- }
-
- public List<Intent> getAlwaysProvidedIntents() {
- return alwaysProvides;
- }
-
- public List<Intent> getMayProvidedIntents() {
- return mayProvide;
- }
-
- public QName getType() {
- return typeName;
- }
-
- public void setType(QName type) {
- this.typeName = type;
- }
-
- public boolean isUnresolved() {
- return unResolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unResolved = unresolved;
- }
-
- @Override
- public int hashCode() {
- return String.valueOf(getType()).hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this) {
- return true;
- } else if (obj instanceof ExtensionTypeImpl) {
- if (getType() != null) {
- return getType().equals(((ExtensionTypeImpl)obj).getType());
- } else {
- return ((ExtensionTypeImpl)obj).getType() == null;
- }
- } else {
- return false;
- }
- }
-
- @Override
- public String toString() {
- return (this.typeName != null) ? getType().toString() : "null";
- }
-
- public QName getBaseType() {
- return null;
- }
-};
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java
deleted file mode 100644
index 5c285e4d95..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.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.impl;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.ImplementationType;
-
-/**
- * Concrete implementation for a Implementation Type
- *
- * @version $Rev$ $Date$
- */
-public class ImplementationTypeImpl extends ExtensionTypeImpl implements ImplementationType {
- protected ImplementationTypeImpl() {
- super();
- }
-
- public QName getBaseType() {
- return IMPLEMENTATION_BASE;
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
deleted file mode 100644
index 27a77f3ba8..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
+++ /dev/null
@@ -1,168 +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.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.ExtensionType;
-import org.apache.tuscany.sca.policy.Intent;
-
-/**
- * Represents a policy intent.
- *
- * @version $Rev$ $Date$
- */
-public class IntentImpl implements Intent {
-
- private QName name;
- private Type type;
- private List<ExtensionType> constrainedTypes = new ArrayList<ExtensionType>();
- private String description;
- private List<Intent> qualifiedIntents = new ArrayList<Intent>();
- private Intent defaultQualifiedIntent;
- private Intent parent;
- private List<Intent> requiredIntents = new ArrayList<Intent>();
- private List<Intent> excludedIntents = new ArrayList<Intent>();
- private boolean mutuallyExclusive;
- private boolean unresolved = true;
-
- protected IntentImpl() {
- }
-
- public QName getName() {
- return name;
- }
-
- public void setName(QName name) {
- this.name = name;
- }
-
- public List<ExtensionType> getConstrainedTypes() {
- return constrainedTypes;
- }
-
- public void setConstrainedTypes(List<ExtensionType> constrainedTypes) {
- this.constrainedTypes = constrainedTypes;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Intent getQualifiableIntent() {
- return parent;
- }
-
- public void setQualifiableIntent(Intent parent) {
- this.parent = parent;
- }
-
- public List<Intent> getQualifiedIntents() {
- return qualifiedIntents;
- }
-
- public void setQualifiedIntents(List<Intent> qualifiedIntents) {
- this.qualifiedIntents = qualifiedIntents;
- }
-
- public List<Intent> getRequiredIntents() {
- return requiredIntents;
- }
-
- public void setRequiredIntents(List<Intent> requiredIntents) {
- this.requiredIntents = requiredIntents;
- }
-
- public List<Intent> getExcludedIntents() {
- return excludedIntents;
- }
-
- public void setExcludedIntents(List<Intent> excludedIntents) {
- this.excludedIntents = excludedIntents;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
- public Type getType() {
- return type;
- }
-
- public void setType(Type type) {
- this.type = type;
- }
-
- public boolean isMutuallyExclusive() {
- return mutuallyExclusive;
- }
-
- public void setMutuallyExclusive(boolean mutuallyExclusive) {
- this.mutuallyExclusive = mutuallyExclusive;
- }
-
- public Intent getDefaultQualifiedIntent() {
- return defaultQualifiedIntent;
- }
-
- public void setDefaultQualifiedIntent(Intent defaultQualifiedIntent) {
- this.defaultQualifiedIntent = defaultQualifiedIntent;
- }
-
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- IntentImpl other = (IntentImpl)obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
- public String toString() {
- return String.valueOf(name);
- }
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java
deleted file mode 100644
index 6e2941ff5c..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java
+++ /dev/null
@@ -1,61 +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.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentMap;
-import org.apache.tuscany.sca.policy.Qualifier;
-
-/**
- * Represents an intent map.
- *
- * @version $Rev$ $Date$
- */
-public class IntentMapImpl implements IntentMap {
-
- private boolean unresolved;
- private Intent providedIntent;
- private List<Qualifier> qualifiers = new ArrayList<Qualifier>();
-
- protected IntentMapImpl() {
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
- public Intent getProvidedIntent() {
- return providedIntent;
- }
-
- public void setProvidedIntent(Intent providedIntent) {
- this.providedIntent = providedIntent;
- }
-
- public List<Qualifier> getQualifiers() {
- return qualifiers;
- }
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyExpressionImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyExpressionImpl.java
deleted file mode 100644
index 71e5eef6a7..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyExpressionImpl.java
+++ /dev/null
@@ -1,86 +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.impl;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.policy.PolicyExpression;
-
-public class PolicyExpressionImpl implements PolicyExpression {
- private QName name;
- private Object policy;
- private boolean unresolved = true;
-
- protected PolicyExpressionImpl() {
- }
-
- public QName getName() {
- return name;
- }
-
- public <T> T getPolicy() {
- return (T)policy;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setName(QName name) {
- this.name = name;
- }
-
- public <T> void setPolicy(T policy) {
- this.policy = policy;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
- public String toString() {
- return String.valueOf(name);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- PolicyExpressionImpl other = (PolicyExpressionImpl)obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java
deleted file mode 100644
index c67ff1eab8..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java
+++ /dev/null
@@ -1,70 +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.impl;
-
-import org.apache.tuscany.sca.policy.BindingType;
-import org.apache.tuscany.sca.policy.ExtensionType;
-import org.apache.tuscany.sca.policy.ImplementationType;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentMap;
-import org.apache.tuscany.sca.policy.PolicyExpression;
-import org.apache.tuscany.sca.policy.PolicyFactory;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.Qualifier;
-
-/**
- * A factory for the policy model.
- *
- * @version $Rev$ $Date$
- */
-public abstract class PolicyFactoryImpl implements PolicyFactory {
-
- public Intent createIntent() {
- return new IntentImpl();
- }
-
- public PolicySet createPolicySet() {
- return new PolicySetImpl();
- }
-
- public IntentMap createIntentMap() {
- return new IntentMapImpl();
- }
-
- public Qualifier createQualifier() {
- return new QualifierImpl();
- }
-
- public PolicyExpression createPolicyExpression() {
- return new PolicyExpressionImpl();
- }
-
- public BindingType createBindingType() {
- return new BindingTypeImpl();
- }
-
- public ImplementationType createImplementationType() {
- return new ImplementationTypeImpl();
- }
-
- public ExtensionType createExtensionType() {
- return new ExtensionTypeImpl();
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
deleted file mode 100644
index 75d1229cd8..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
+++ /dev/null
@@ -1,145 +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.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.xpath.XPathExpression;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.IntentMap;
-import org.apache.tuscany.sca.policy.PolicyExpression;
-import org.apache.tuscany.sca.policy.PolicySet;
-
-/**
- * Represents a policy set.
- *
- * @version $Rev$ $Date$
- */
-public class PolicySetImpl implements PolicySet {
-
- private QName name;
- private String appliesTo;
- private String attachTo;
- private List<Intent> providedIntents = new ArrayList<Intent>();
- private List<PolicySet> referencedPolicySets = new ArrayList<PolicySet>();
- private boolean unresolved = true;
-
- private XPathExpression appliesToXPathExpression;
- private XPathExpression attachToXPathExpression;
-
- private List<IntentMap> intentMaps = new ArrayList<IntentMap>();
- private List<PolicyExpression> policies = new ArrayList<PolicyExpression>();
-
- public QName getName() {
- return name;
- }
-
- public void setName(QName name) {
- this.name = name;
- }
-
- public String getAppliesTo() {
- return appliesTo;
- }
-
- public void setAppliesTo(String appliesTo) {
- this.appliesTo = appliesTo;
- }
-
- public String getAttachTo() {
- return attachTo;
- }
-
- public void setAttachTo(String attachTo) {
- this.attachTo = attachTo;
- }
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-
- public XPathExpression getAppliesToXPathExpression() {
- return appliesToXPathExpression;
- }
-
- public void setAppliesToXPathExpression(XPathExpression appliesToXPathExpression) {
- this.appliesToXPathExpression = appliesToXPathExpression;
- }
-
- public XPathExpression getAttachToXPathExpression() {
- return attachToXPathExpression;
- }
-
- public void setAttachToXPathExpression(XPathExpression attachToXPathExpression) {
- this.attachToXPathExpression = attachToXPathExpression;
- }
-
- public List<IntentMap> getIntentMaps() {
- return intentMaps;
- }
-
- public List<Intent> getProvidedIntents() {
- return providedIntents;
- }
-
- public List<PolicySet> getReferencedPolicySets() {
- return referencedPolicySets;
- }
-
- public List<PolicyExpression> getPolicies() {
- return policies;
- }
-
- public String toString() {
- return String.valueOf(name);
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- PolicySetImpl other = (PolicySetImpl)obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifierImpl.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifierImpl.java
deleted file mode 100644
index 102bea8d41..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifierImpl.java
+++ /dev/null
@@ -1,48 +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.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicyExpression;
-import org.apache.tuscany.sca.policy.Qualifier;
-
-public class QualifierImpl implements Qualifier {
- private Intent intent;
- private List<PolicyExpression> policies = new ArrayList<PolicyExpression>();
-
- protected QualifierImpl() {
- }
-
- public Intent getIntent() {
- return intent;
- }
-
- public List<PolicyExpression> getPolicies() {
- return policies;
- }
-
- public void setIntent(Intent intent) {
- this.intent = intent;
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java
deleted file mode 100644
index fe61ce707c..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java
+++ /dev/null
@@ -1,370 +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.util;
-
-import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
-
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-
-import org.apache.tuscany.sca.policy.ExtensionType;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Utility methods used during computation of PolicyIntents and PolicySets sets
- *
- * @version $Rev$ $Date$
- */
-public class PolicyComputationUtils {
- private static final String POLICYSET_PREFIX = "tp_";
- private static final String APPLICABLE_POLICYSET_ATTR_NS = "http://tuscany.apache.org/xmlns/sca/1.1";
- private static final String APPLICABLE_POLICYSET_ATTR = "applicablePolicySets";
- private static final String POLICY_SETS_ATTR = "policySets";
- private static final String APPLICABLE_POLICYSET_ATTR_PREFIX = "tuscany";
- private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200903";
-
- /**
- * This method unconditionally adds intents from the source list to the target list.
- * It is used for intermediate intent inheritance between promotion levels
- * (e.g. between a composite service and a component service). It does not check
- * whether there are conflicting (mutually exclusive) intents. This is because
- * promotion cannot override intents. If the resulting target list has conflicting
- * intents, this will be detected later during policy computation.
- */
- public static void addInheritedIntents(List<Intent> sourceList, List<Intent> targetList) {
- if (sourceList != null) {
- targetList.addAll(sourceList);
- }
- }
-
- public static void addInheritedPolicySets(List<PolicySet> sourceList,
- List<PolicySet> targetList,
- boolean checkOverrides) {
- // check overrides is true when policysets are to be copied from
- // componentType to component level
- if (checkOverrides) {
- // aggregate all the provided intents present in the target
- List<Intent> targetProvidedIntents = new ArrayList<Intent>();
- for (PolicySet policySet : targetList) {
- targetProvidedIntents.addAll(policySet.getProvidedIntents());
- }
-
- // for every policy set in the source check if it provides one of
- // the intents that is
- // already provided by the policysets in the destination and do not
- // copy them.
- for (PolicySet policySet : sourceList) {
- for (Intent sourceProvidedIntent : policySet.getProvidedIntents()) {
- if (!targetProvidedIntents.contains(sourceProvidedIntent)) {
- targetList.add(policySet);
- }
- }
- }
- } else {
- targetList.addAll(sourceList);
- }
- }
-
- /**
- * This method is used to inherit intents and policy sets between hierarchical levels
- * within the same composite (e.g. between a component and its services and references).
- * In this case the source intents and policy sets provide defaults which are inherited
- * into the target lists only when there is no conflict. For example consider a component
- * with 3 references. The component level requires intent 'propagatesTransaction'.
- * Reference 1 and 2 do not specify an intent, but reference 3 requires 'suspendsTransaction'.
- * In this case the 'propagatesTransaction' intent is inherited by reference 1 and 2
- * but not by reference 3.
- */
- public static void addDefaultPolicies(List<Intent> sourceIntents,
- List<PolicySet> sourcePolicySets,
- List<Intent> targetIntents,
- List<PolicySet> targetPolicySets) {
- // form a list of all intents required by the target
- List<Intent> combinedTargetIntents = new ArrayList<Intent>();
- combinedTargetIntents.addAll(findAndExpandProfileIntents(targetIntents));
- for (PolicySet targetPolicySet : targetPolicySets) {
- combinedTargetIntents.addAll(findAndExpandProfileIntents(targetPolicySet.getProvidedIntents()));
- }
-
- // inherit intents in the source list that do not conflict with intents already in the target list
- for (Intent sourceIntent : findAndExpandProfileIntents(sourceIntents)) {
- boolean conflict = false;
- for (Intent excluded : sourceIntent.getExcludedIntents()) {
- if (combinedTargetIntents.contains(excluded)) {
- conflict = true;
- break;
- }
- }
- if (!conflict) {
- targetIntents.add(sourceIntent);
- }
- }
-
- // inherit policy sets in the source list that do not conflict with policy sets or intents
- // in the target list
- for (PolicySet sourcePolicySet : sourcePolicySets) {
- boolean conflict = false;
- List<Intent> providedIntents = findAndExpandProfileIntents(sourcePolicySet.getProvidedIntents());
- checkConflict: for (Intent intent : providedIntents) {
- for (Intent excluded : intent.getExcludedIntents()) {
- if (combinedTargetIntents.contains(excluded)) {
- conflict = true;
- break checkConflict;
- }
- }
- }
- if (!conflict)
- targetPolicySets.add(sourcePolicySet);
- }
-
- }
-
- public static void checkForMutuallyExclusiveIntents(List<Intent> intents,
- List<PolicySet> policySets,
- ExtensionType intentAttachPointType,
- String id) throws PolicyValidationException {
- // gather all intents (keeping track of where they come from)
- Map<Intent, PolicySet> combinedIntents = new HashMap<Intent, PolicySet>();
- for (PolicySet policySet : policySets) {
- for (Intent providedIntent : findAndExpandProfileIntents(policySet.getProvidedIntents())) {
- combinedIntents.put(providedIntent, policySet);
- }
- }
- for (Intent intent : intents) {
- combinedIntents.put(intent, null);
- }
-
- // check for conflicts
- for (Intent intent : combinedIntents.keySet()) {
- for (Intent excluded : intent.getExcludedIntents()) {
- if (combinedIntents.keySet().contains(excluded)) {
- String sIntent1, sIntent2;
- if (combinedIntents.get(intent) == null)
- sIntent1 = intent.getName().toString();
- else
- sIntent1 =
- intent.getName().toString() + " in policy set "
- + combinedIntents.get(intent).getName().toString();
- if (combinedIntents.get(excluded) == null)
- sIntent2 = excluded.getName().toString();
- else
- sIntent2 =
- excluded.getName().toString() + " in policy set "
- + combinedIntents.get(excluded).getName().toString();
- throw new PolicyValidationException(intentAttachPointType.getType() + " for "
- + id
- + " uses mutually-exclusive intents "
- + sIntent1
- + " and "
- + sIntent2);
- }
- }
- }
- }
-
- public static void expandProfileIntents(List<Intent> intents) {
- List<Intent> expandedIntents = null;
- if (intents.size() > 0) {
- expandedIntents = findAndExpandProfileIntents(intents);
- intents.clear();
- intents.addAll(expandedIntents);
- }
- }
-
- public static List<Intent> findAndExpandProfileIntents(List<Intent> intents) {
- List<Intent> expandedIntents = new ArrayList<Intent>();
- for (Intent intent : intents) {
- if (!intent.getRequiredIntents().isEmpty()) {
- List<Intent> requiredIntents = intent.getRequiredIntents();
- expandedIntents.addAll(findAndExpandProfileIntents(requiredIntents));
- } else {
- expandedIntents.add(intent);
- }
- }
- return expandedIntents;
- }
-
- private static byte[] addApplicablePolicySets(Document doc, Collection<PolicySet> policySets)
- throws XPathExpressionException, TransformerConfigurationException, TransformerException {
-
- for (PolicySet policySet : policySets) {
- if (policySet.getAppliesTo() != null) {
- addApplicablePolicySets(policySet, doc);
- }
- }
-
- StringWriter sw = new StringWriter();
- final Source domSource = new DOMSource(doc);
- final Result finalResult = new StreamResult(sw);
- final Transformer transformer = TransformerFactory.newInstance().newTransformer();
- // transformer.setOutputProperty("omit-xml-declaration", "yes");
- // Allow priviledged access to let transformers read property files. Requires
- // PropertyPermission in security policy.
- try {
- AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
- public Object run() throws TransformerException {
- transformer.transform(domSource, finalResult);
- return null;
- }
- });
- } catch (PrivilegedActionException e) {
- throw (TransformerException)e.getException();
- }
-
- return sw.toString().getBytes();
- }
-
- private static void addApplicablePolicySets(PolicySet policySet, Document doc) throws XPathExpressionException {
- XPathExpression expression = policySet.getAppliesToXPathExpression();
- NodeList result = (NodeList)expression.evaluate(doc, XPathConstants.NODESET);
-
- if (result != null) {
- for (int counter = 0; counter < result.getLength(); ++counter) {
- Node aResultNode = result.item(counter);
-
- String applicablePolicySets = null;
-
- String policySetPrefix = declareNamespace((Element)aResultNode, policySet.getName().getNamespaceURI());
- String appPolicyAttrPrefix = declareNamespace((Element)aResultNode, APPLICABLE_POLICYSET_ATTR_NS);
- if (aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS, APPLICABLE_POLICYSET_ATTR) != null) {
- applicablePolicySets =
- aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS,
- APPLICABLE_POLICYSET_ATTR).getNodeValue();
- }
-
- if (applicablePolicySets != null && applicablePolicySets.length() > 0) {
- applicablePolicySets =
- applicablePolicySets + " " + policySetPrefix + ":" + policySet.getName().getLocalPart();
- } else {
- applicablePolicySets = policySetPrefix + ":" + policySet.getName().getLocalPart();
- }
-
- ((Element)aResultNode).setAttributeNS(APPLICABLE_POLICYSET_ATTR_NS, appPolicyAttrPrefix + ":"
- + APPLICABLE_POLICYSET_ATTR, applicablePolicySets);
- }
- }
- }
-
- public static byte[] addApplicablePolicySets(InputStream is,
- Collection<PolicySet> domainPolicySets,
- DocumentBuilderFactory documentBuilderFactory) throws Exception {
- documentBuilderFactory.setNamespaceAware(true);
- DocumentBuilder db = documentBuilderFactory.newDocumentBuilder();
- Document doc = db.parse(is);
- is.close();
- return addApplicablePolicySets(doc, domainPolicySets);
- }
-
- private static class DOMNamespaceContext implements NamespaceContext {
- private Node node;
-
- /**
- * @param node
- */
- public DOMNamespaceContext(Node node) {
- super();
- this.node = node;
- }
-
- public String getNamespaceURI(String prefix) {
- return node.lookupNamespaceURI(prefix);
- }
-
- public String getPrefix(String namespaceURI) {
- return node.lookupPrefix(namespaceURI);
- }
-
- public Iterator<?> getPrefixes(String namespaceURI) {
- return null;
- }
-
- }
-
- private static String declareNamespace(Element element, String ns) {
- if (ns == null) {
- ns = "";
- }
- Node node = element;
- String prefix = "";
- boolean declared = false;
- while (node != null && node.getNodeType() == Node.ELEMENT_NODE) {
- if (node.lookupPrefix(ns) != null) {
- prefix = node.lookupPrefix(ns);
- declared = true;
- break;
- } else {
- /*NamedNodeMap attrs = node.getAttributes();
- if (attrs == null) {
- break;
- }
- Node attr = attrs.getNamedItem(qname);
- if (attr != null) {
- declared = ns.equals(attr.getNodeValue());
- break;
- }*/
- node = node.getParentNode();
- }
- }
- if (!declared) {
- // Find an available prefix
- for (int i = 1;; i++) {
- prefix = POLICYSET_PREFIX + i;
- if (element.lookupNamespaceURI(prefix) == null) {
- break;
- }
- }
- String qname = "xmlns:" + prefix;
- org.w3c.dom.Attr attr = element.getOwnerDocument().createAttributeNS(XMLNS_ATTRIBUTE_NS_URI, qname);
- attr.setValue(ns);
- element.setAttributeNodeNS(attr);
- }
- return prefix;
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationException.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationException.java
deleted file mode 100644
index 3ed4eac5a2..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationException.java
+++ /dev/null
@@ -1,38 +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.util;
-
-/**
- * Exception to be throw for invalid policy intents / policysets
- *
- * @version $Rev$ $Date$
- */
-public class PolicyValidationException extends Exception {
- private static final long serialVersionUID = 506979037642587755L;
-
- public PolicyValidationException(String message) {
- super(message);
- }
-
- public PolicyValidationException(Throwable e) {
- super(e);
- }
-
-}
diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java
deleted file mode 100644
index 616eab5737..0000000000
--- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java
+++ /dev/null
@@ -1,98 +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.util;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.policy.ExtensionType;
-import org.apache.tuscany.sca.policy.Intent;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.PolicySubject;
-
-/**
- * @version $Rev$ $Date$
- */
-public class PolicyValidationUtils {
-
- public static boolean isConstrained(ExtensionType constrained, ExtensionType attachPointType) {
- return (attachPointType != null
- && (attachPointType.equals(constrained)) || (attachPointType.getBaseType().equals(constrained)));
- }
-
- public static void validateIntents(PolicySubject attachPoint, ExtensionType attachPointType)
- throws PolicyValidationException {
- boolean found = false;
- if (attachPointType != null) {
- // validate intents specified against the parent (binding /
- // implementation)
- found = false;
- for (Intent intent : attachPoint.getRequiredIntents()) {
- if (!intent.isUnresolved()) {
- for (ExtensionType constrained : intent.getConstrainedTypes()) {
- if (isConstrained(constrained, attachPointType)) {
- found = true;
- break;
- }
- }
-
- if (!found) {
- throw new PolicyValidationException("Policy Intent '" + intent.getName()
- + "' does not constrain extension type "
- + attachPointType.getType());
- }
- } else {
- throw new PolicyValidationException("Policy Intent '" + intent.getName()
- + "' is not defined in this domain ");
- }
- }
- }
- }
-
- public static void validatePolicySets(PolicySubject subject) throws PolicyValidationException {
- // validatePolicySets(subject, subject.getType(), subject.getAttachedPolicySets());
- }
-
- public static void validatePolicySets(PolicySubject subject, ExtensionType attachPointType)
- throws PolicyValidationException {
- validatePolicySets(subject, attachPointType, subject.getPolicySets());
- }
-
- public static void validatePolicySets(PolicySubject subject,
- ExtensionType attachPointType,
- List<PolicySet> applicablePolicySets) throws PolicyValidationException {
- // Since the applicablePolicySets in a subject will already
- // have the list of policysets that might ever be applicable to this attachPoint,
- // just check if the defined policysets feature in the list of applicable
- // policysets
- for (PolicySet definedPolicySet : subject.getPolicySets()) {
- if (!definedPolicySet.isUnresolved()) {
- if (!applicablePolicySets.contains(definedPolicySet)) {
- throw new PolicyValidationException("Policy Set '" + definedPolicySet.getName()
- + "' does not apply to extension type "
- + attachPointType.getType());
- }
- } else {
- throw new PolicyValidationException("Policy Set '" + definedPolicySet.getName()
- + "' is not defined in this domain ");
-
- }
- }
- }
-}
diff --git a/java/sca/modules/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicyFactory b/java/sca/modules/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicyFactory
deleted file mode 100644
index 846b3b24a4..0000000000
--- a/java/sca/modules/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicyFactory
+++ /dev/null
@@ -1,18 +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.DefaultPolicyFactory \ No newline at end of file
diff --git a/java/sca/modules/policy/src/test/java/org/apache/tuscany/sca/policy/PolicyFactoryTestCase.java b/java/sca/modules/policy/src/test/java/org/apache/tuscany/sca/policy/PolicyFactoryTestCase.java
deleted file mode 100644
index 2775c4ac71..0000000000
--- a/java/sca/modules/policy/src/test/java/org/apache/tuscany/sca/policy/PolicyFactoryTestCase.java
+++ /dev/null
@@ -1,55 +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;
-
-import static org.junit.Assert.assertEquals;
-
-import javax.xml.namespace.QName;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Test building of policy model instances using the policy factory.
- *
- * @version $Rev$ $Date$
- */
-public class PolicyFactoryTestCase {
-
- PolicyFactory factory;
-
- @Before
- public void setUp() throws Exception {
- factory = new DefaultPolicyFactory();
- }
-
- @Test
- public void testCreateIntent() {
- Intent intent = factory.createIntent();
- intent.setName(new QName("http://test", "reliability"));
- assertEquals(intent.getName(), new QName("http://test", "reliability"));
- }
-
- @Test
- public void testCreatePolicySet() {
- PolicySet policySet = factory.createPolicySet();
- policySet.setName(new QName("http://test", "reliability"));
- assertEquals(policySet.getName(), new QName("http://test", "reliability"));
- }
-}