summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy')
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/pom.xml67
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/META-INF/maven/archetype-metadata.xml70
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/META-INF/MANIFEST.MF28
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/pom.xml43
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__Policy.java66
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyBuilder.java93
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyFactory.java37
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyProcessor.java115
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ImplementationPolicyProvider.java63
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyInterceptor.java71
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyProviderFactory.java77
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ReferencePolicyProvider.java54
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ServicePolicyProvider.java55
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/util/PolicyHelper.java74
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder17
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor19
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions17
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory19
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/__policyName__/definitions.xml34
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/definitions.xml41
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/java/PolicyReadTestCase.java87
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/mock_policies.xml25
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/org/apache/tuscany/sca/policy/logging/jdk/mock_policies.xml19
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/archetype.properties22
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/goal.txt0
25 files changed, 1213 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/pom.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/pom.xml
new file mode 100644
index 0000000000..f856e72713
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/pom.xml
@@ -0,0 +1,67 @@
+<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-sca</artifactId>
+ <version>2.0.1</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>tuscany-policy-archetype</artifactId>
+ <packaging>maven-archetype</packaging>
+ <name>Create a Tuscany policy extension project</name>
+ <description>Create a Tuscany policy extension project</description>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>2.2</version>
+ </extension>
+ </extensions>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-archetype-plugin</artifactId>
+ <version>2.2</version>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <distributionManagement>
+ <repository>
+ <id>apache.releases.https</id>
+ <name>Apache Release Distribution Repository</name>
+ <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
+ </repository>
+ <snapshotRepository>
+ <uniqueVersion>false</uniqueVersion>
+ <id>apache.snapshots.https</id>
+ <name>Apache Development Snapshot Repository</name>
+ <url>https://repository.apache.org/content/repositories/snapshots</url>
+ </snapshotRepository>
+ </distributionManagement>
+</project>
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/META-INF/maven/archetype-metadata.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000000..1d260f241b
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,70 @@
+<?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.
+-->
+<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="tuscany-policy-logging"
+ xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <requiredProperties>
+ <requiredProperty key="policyName">
+ </requiredProperty>
+ </requiredProperties>
+
+ <fileSets>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.*</include>
+ </includes>
+ <excludes>
+ <exclude>**/definitions.xml</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet filtered="true" packaged="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/definitions.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.*</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>META-INF</directory>
+ <includes>
+ <include>MANIFEST.MF</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</archetype-descriptor>
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/META-INF/MANIFEST.MF b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..a41ac55cb6
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Private-Package: org.apache.tuscany.sca.policy.logging;version="2.0.0",o
+ rg.apache.tuscany.sca.policy.logging.jdk;version="2.0.0"
+SCA-Version: 1.1
+Bundle-Name: Apache Tuscany ${policyName} Policy 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 ${policyName} Policy Model
+Import-Package: javax.xml.namespace,
+ javax.xml.stream,
+ org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.assembly.builder;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.interfacedef;version="2.0.0",
+ org.apache.tuscany.sca.invocation;version="2.0.0",
+ org.apache.tuscany.sca.monitor;version="2.0.0",
+ org.apache.tuscany.sca.policy;version="2.0.0",
+ org.apache.tuscany.sca.provider;version="2.0.0",
+ org.apache.tuscany.sca.runtime;version="2.0.0",
+ org.oasisopen.sca.annotation
+Bundle-SymbolicName: ${package}.${policyName}
+Bundle-DocURL: http://www.apache.org/
+
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/pom.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000000..65bb4aa7db
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,43 @@
+<?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.1</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <name>Apache Tuscany SCA Extension Policy ${policyName}</name>
+ <version>${version}</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-core-runtime-pom</artifactId>
+ <type>pom</type>
+ <scope>provided</scope>
+ <version>2.0.1</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__Policy.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__Policy.java
new file mode 100644
index 0000000000..dec23b38f7
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__Policy.java
@@ -0,0 +1,66 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName};
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.Base;
+
+/**
+ * Implementation for policies that could be injected as parameter
+ * into the axis2config.
+ *
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}Policy {
+ static final String SCA11_NS = Base.SCA11_NS;
+ static final String SCA11_TUSCANY_NS = Base.SCA11_TUSCANY_NS;
+
+ public static final QName POLICY_QNAME = new QName(SCA11_TUSCANY_NS, "${policyName}");
+
+ private String configProperty;
+
+ public String getConfigProperty() {
+ return configProperty;
+ }
+
+ public void setConfigProperty(String configProperty) {
+ this.configProperty = configProperty;
+ }
+
+ public QName getSchemaName() {
+ return POLICY_QNAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ }
+
+ @Override
+ public String toString() {
+ return "${policyName}Policy [configProperty=" + configProperty
+ + "]";
+ }
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyBuilder.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyBuilder.java
new file mode 100644
index 0000000000..ef37957a62
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyBuilder.java
@@ -0,0 +1,93 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName};
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+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;
+
+/**
+ *
+ */
+public class ${policyName}PolicyBuilder implements PolicyBuilder<${policyName}Policy> {
+
+ @Override
+ public boolean build(Endpoint endpoint, BuilderContext context) {
+ List<${policyName}Policy> polices = getPolicies(endpoint);
+ System.out.println(endpoint + ": " + polices);
+ return true;
+ }
+
+ @Override
+ public boolean build(EndpointReference endpointReference, BuilderContext context) {
+ List<${policyName}Policy> polices = getPolicies(endpointReference);
+ System.out.println(endpointReference + ": " + polices);
+ return true;
+ }
+
+ @Override
+ public boolean build(Component component, Implementation implementation, BuilderContext context) {
+ List<${policyName}Policy> polices = getPolicies(implementation);
+ System.out.println(implementation + ": " + polices);
+ return true;
+ }
+
+ @Override
+ public QName getPolicyType() {
+ return ${policyName}Policy.POLICY_QNAME;
+ }
+
+ @Override
+ public List<QName> getSupportedBindings() {
+ return null;
+ }
+
+ private List<${policyName}Policy> getPolicies(PolicySubject subject) {
+ List<${policyName}Policy> polices = new ArrayList<${policyName}Policy>();
+ for (PolicySet ps : subject.getPolicySets()) {
+ for (PolicyExpression exp : ps.getPolicies()) {
+ if (getPolicyType().equals(exp.getName())) {
+ polices.add((${policyName}Policy)exp.getPolicy());
+ }
+ }
+ }
+ return polices;
+ }
+
+ @Override
+ public boolean build(EndpointReference endpointReference, Endpoint endpoint, BuilderContext context) {
+ return true;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyFactory.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyFactory.java
new file mode 100644
index 0000000000..d3d760531d
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyFactory.java
@@ -0,0 +1,37 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName};
+
+/**
+ * Factory for ${policyName} Policy
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ${policyName}PolicyFactory {
+
+
+ /**
+ * Creates a new ${policyName} Policy
+ * @return the new ${policyName} policy
+ */
+ ${policyName}Policy create${policyName}Policy();
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyProcessor.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyProcessor.java
new file mode 100644
index 0000000000..2a1313a115
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/__policyName__PolicyProcessor.java
@@ -0,0 +1,115 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName};
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.contribution.processor.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;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+
+/**
+ *
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}PolicyProcessor implements StAXArtifactProcessor<${policyName}Policy> {
+
+ public ${policyName}PolicyProcessor(FactoryExtensionPoint modelFactories) {
+ }
+
+ @Override
+ public QName getArtifactType() {
+ return ${policyName}Policy.POLICY_QNAME;
+ }
+
+ @Override
+ public ${policyName}Policy read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ ${policyName}Policy policy = new ${policyName}Policy();
+ int event = reader.getEventType();
+ QName name = null;
+
+
+ while (reader.hasNext()) {
+ event = reader.getEventType();
+ switch (event) {
+ case START_ELEMENT : {
+ name = reader.getName();
+ if ( name.equals(${policyName}Policy.POLICY_QNAME) ) {
+ String config = reader.getAttributeValue(null, "name");
+ policy.setConfigProperty(config);
+ }
+ break;
+ }
+ }
+
+ if ( event == END_ELEMENT ) {
+ if ( ${policyName}Policy.POLICY_QNAME.equals(reader.getName()) ) {
+ break;
+ }
+ }
+
+ //Read the next element
+ if (reader.hasNext()) {
+ reader.next();
+ }
+ }
+
+ return policy;
+ }
+
+ @Override
+ public void write(${policyName}Policy policy, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException,
+ XMLStreamException {
+ String prefix = "tuscany";
+ writer.writeStartElement(prefix,
+ ${policyName}Policy.POLICY_QNAME.getLocalPart(),
+ ${policyName}Policy.POLICY_QNAME.getNamespaceURI());
+ writer.writeNamespace("tuscany", ${policyName}Policy.SCA11_TUSCANY_NS);
+
+ if (policy.getConfigProperty() != null) {
+ writer.writeAttribute("name", policy.getConfigProperty());
+ }
+
+ writer.writeEndElement();
+ }
+
+ @Override
+ public Class<${policyName}Policy> getModelType() {
+ return ${policyName}Policy.class;
+ }
+
+ @Override
+ public void resolve(${policyName}Policy arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException {
+
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ImplementationPolicyProvider.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ImplementationPolicyProvider.java
new file mode 100644
index 0000000000..129f0add6c
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ImplementationPolicyProvider.java
@@ -0,0 +1,63 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName}.provider;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Phase;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.provider.BasePolicyProvider;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
+
+import ${package}.util.PolicyHelper;
+import ${package}.${policyName}.${policyName}Policy;
+
+/**
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}ImplementationPolicyProvider extends BasePolicyProvider<${policyName}Policy> {
+ private RuntimeComponent component;
+
+ public ${policyName}ImplementationPolicyProvider(RuntimeComponent component) {
+ super(${policyName}Policy.class, component.getImplementation());
+ this.component = component;
+ }
+
+ /**
+ * @see ${groupId}.provider.PolicyProvider${symbol_pound}createInterceptor(${groupId}.interfacedef.Operation)
+ */
+ @Override
+ public PhasedInterceptor createInterceptor(Operation operation) {
+ List<PolicySet> policySets = PolicyHelper.findPolicySets(component, ${policyName}Policy.POLICY_QNAME);
+
+
+ return policySets.isEmpty() ? null : new ${policyName}PolicyInterceptor(getContext(), operation, getPhase());
+ }
+
+ public String getPhase() {
+ return Phase.IMPLEMENTATION_POLICY;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyInterceptor.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyInterceptor.java
new file mode 100644
index 0000000000..164d59be90
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyInterceptor.java
@@ -0,0 +1,71 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName}.provider;
+
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+
+/**
+ * Policy handler to handle PolicySet related to Logging with the QName
+ * {http://tuscany.apache.org/xmlns/sca/1.1/impl/java}${policyName}Policy
+ *
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}PolicyInterceptor implements PhasedInterceptor {
+ private Invoker next;
+ private Operation operation;
+ private String context;
+ private String phase;
+
+ public ${policyName}PolicyInterceptor(String context, Operation operation, String phase) {
+ super();
+ this.operation = operation;
+ this.context = context;
+ this.phase = phase;
+ }
+
+ @Override
+ public Message invoke(Message msg) {
+ // DO SOMETHING HERE
+ System.out.println("Inside policy interceptor invoke method");
+
+ return getNext().invoke(msg);
+ }
+
+ @Override
+ public Invoker getNext() {
+ return next;
+ }
+
+ @Override
+ public void setNext(Invoker next) {
+ this.next = next;
+ }
+
+ @Override
+ public String getPhase() {
+ return phase;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyProviderFactory.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyProviderFactory.java
new file mode 100644
index 0000000000..44c962bc2c
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__PolicyProviderFactory.java
@@ -0,0 +1,77 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName}.provider;
+
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.provider.PolicyProvider;
+import org.apache.tuscany.sca.provider.PolicyProviderFactory;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
+
+import ${package}.${policyName}.${policyName}Policy;
+
+/**
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}PolicyProviderFactory implements PolicyProviderFactory<${policyName}Policy> {
+ private ExtensionPointRegistry registry;
+
+ public ${policyName}PolicyProviderFactory(ExtensionPointRegistry registry) {
+ super();
+ this.registry = registry;
+ }
+
+ /**
+ * @see ${groupId}.provider.PolicyProviderFactory${symbol_pound}createImplementationPolicyProvider(${groupId}.runtime.RuntimeComponent, ${groupId}.assembly.Implementation)
+ */
+ @Override
+ public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) {
+ return new ${policyName}ImplementationPolicyProvider(component);
+ }
+
+ /**
+ * @see ${groupId}.provider.PolicyProviderFactory${symbol_pound}createReferencePolicyProvider(${groupId}.runtime.RuntimeComponent, ${groupId}.runtime.RuntimeComponentReference, ${groupId}.assembly.Binding)
+ */
+ @Override
+ public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) {
+ return new ${policyName}ReferencePolicyProvider(endpointReference);
+ }
+
+ /**
+ * @see ${groupId}.provider.PolicyProviderFactory${symbol_pound}createServicePolicyProvider(${groupId}.runtime.RuntimeComponent, ${groupId}.runtime.RuntimeComponentService, ${groupId}.assembly.Binding)
+ */
+ @Override
+ public PolicyProvider createServicePolicyProvider(Endpoint endpoint) {
+ return new ${policyName}ServicePolicyProvider(endpoint);
+ }
+
+ /**
+ * @see ${groupId}.provider.ProviderFactory${symbol_pound}getModelType()
+ */
+ @Override
+ public Class<${policyName}Policy> getModelType() {
+ return ${policyName}Policy.class;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ReferencePolicyProvider.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ReferencePolicyProvider.java
new file mode 100644
index 0000000000..70ea13de2f
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ReferencePolicyProvider.java
@@ -0,0 +1,54 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName}.provider;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Phase;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.provider.BasePolicyProvider;
+
+import ${package}.util.PolicyHelper;
+import ${package}.${policyName}.${policyName}Policy;
+/**
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}ReferencePolicyProvider extends BasePolicyProvider<${policyName}Policy> {
+ private EndpointReference endpointReference;
+
+ public ${policyName}ReferencePolicyProvider(EndpointReference endpointReference) {
+ super(${policyName}Policy.class, endpointReference);
+ this.endpointReference = endpointReference;
+ }
+
+ @Override
+ public PhasedInterceptor createInterceptor(Operation operation) {
+ List<PolicySet> policySets = PolicyHelper.findPolicySets(endpointReference, ${policyName}Policy.POLICY_QNAME);
+
+ return (policySets.isEmpty()) ? null : new ${policyName}PolicyInterceptor(getContext(), operation, Phase.REFERENCE_POLICY);
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ServicePolicyProvider.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ServicePolicyProvider.java
new file mode 100644
index 0000000000..cb23eb6dad
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/__policyName__/provider/__policyName__ServicePolicyProvider.java
@@ -0,0 +1,55 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.${policyName}.provider;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Phase;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.provider.BasePolicyProvider;
+
+import ${package}.util.PolicyHelper;
+import ${package}.${policyName}.${policyName}Policy;
+
+/**
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class ${policyName}ServicePolicyProvider extends BasePolicyProvider<${policyName}Policy> {
+ private Endpoint endpoint;
+
+ public ${policyName}ServicePolicyProvider(Endpoint endpoint) {
+ super(${policyName}Policy.class, endpoint);
+ this.endpoint = endpoint;
+ }
+
+ @Override
+ public PhasedInterceptor createInterceptor(Operation operation) {
+ List<PolicySet> policySets = PolicyHelper.findPolicySets(endpoint, ${policyName}Policy.POLICY_QNAME);
+
+ return policySets.isEmpty() ? null : new ${policyName}PolicyInterceptor(getContext(), operation, Phase.SERVICE_POLICY);
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/util/PolicyHelper.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/util/PolicyHelper.java
new file mode 100644
index 0000000000..2f21ae2e4b
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/java/util/PolicyHelper.java
@@ -0,0 +1,74 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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 ${package}.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.PolicyExpression;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.PolicySubject;
+
+public class PolicyHelper {
+
+ /**
+ * Find a list of policy sets that provide the given intent
+ * @param subject
+ * @param providedIntent
+ * @return
+ */
+ public static List<PolicySet> findPolicySets(PolicySubject subject, QName providedIntent) {
+ List<PolicySet> policies = new ArrayList<PolicySet>();
+ List<PolicySet> policySets = subject.getPolicySets();
+ for (PolicySet ps : policySets) {
+ for (Intent i : ps.getProvidedIntents()) {
+ if (i.getName().equals(providedIntent)) {
+ policies.add(ps);
+ }
+ }
+ }
+ return policies;
+ }
+
+ /**
+ * Find a list of policies of the given type
+ * @param <T>
+ * @param subject
+ * @param policyType
+ * @return
+ */
+ public static <T> List<T> findPolicies(PolicySubject subject, QName providedIntent, Class<T> policyType) {
+ List<T> policies = new ArrayList<T>();
+ List<PolicySet> policySets = findPolicySets(subject, providedIntent);
+ for (PolicySet ps : policySets) {
+ for (PolicyExpression exp : ps.getPolicies()) {
+ if (policyType.isInstance(exp.getPolicy())) {
+ policies.add(policyType.cast(exp.getPolicy()));
+ }
+ }
+ }
+ return policies;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder
new file mode 100644
index 0000000000..26ca8d5fdf
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.PolicyBuilder
@@ -0,0 +1,17 @@
+# 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}.${policyName}.${policyName}PolicyBuilder;qname=http://tuscany.apache.org/xmlns/sca/1.1#${policyName}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
new file mode 100644
index 0000000000..9b97157f57
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
@@ -0,0 +1,19 @@
+# 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
+${package}.${policyName}.${policyName}PolicyProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#${policyName}Policy,model=${package}.${policyName}.${policyName}Policy \ No newline at end of file
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
new file mode 100644
index 0000000000..a186ac7367
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions
@@ -0,0 +1,17 @@
+# 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.
+${policyName}/definitions.xml
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
new file mode 100644
index 0000000000..4d41d2281c
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.PolicyProviderFactory
@@ -0,0 +1,19 @@
+# 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 policy extension
+${package}.${policyName}.provider.${policyName}PolicyProviderFactory;model=${package}.${policyName}.${policyName}Policy
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/__policyName__/definitions.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/__policyName__/definitions.xml
new file mode 100644
index 0000000000..a956d3417f
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/__policyName__/definitions.xml
@@ -0,0 +1,34 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?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://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+
+ <!-- Policy Intents Defined by the SCA Runtime -->
+ <intent name="${policyName}" constrains="implementation binding">
+ <description>
+ All operations should have a valid authenticated user
+ </description>
+ </intent>
+
+</definitions> \ No newline at end of file
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/definitions.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/definitions.xml
new file mode 100644
index 0000000000..4e24d0e93b
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/main/resources/definitions.xml
@@ -0,0 +1,41 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?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://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+
+ <!-- Policy Intents Defined by the Tuscany Runtime -->
+ <intent name="logging" constrains="implementation binding">
+ <description>
+ All messages to and from this implementation must be logged
+ </description>
+ </intent>
+
+ <!-- Policy Intents Defined by the Tuscany Runtime -->
+ <intent name="noLogging" constrains="implementation binding" excludes="tuscany:logging">
+ <description>
+ All messages to and from this implementation must be logged
+ </description>
+ </intent>
+
+</definitions> \ No newline at end of file
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/java/PolicyReadTestCase.java b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/java/PolicyReadTestCase.java
new file mode 100644
index 0000000000..436c429aad
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/java/PolicyReadTestCase.java
@@ -0,0 +1,87 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * 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.
+ */
+
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URL;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+
+import ${package}.${policyName}.${policyName}Policy;
+import ${package}.${policyName}.${policyName}PolicyProcessor;
+
+/**
+ * Test the reading of ws config params policy.
+ *
+ * @version ${symbol_dollar}Rev${symbol_dollar} ${symbol_dollar}Date${symbol_dollar}
+ */
+public class PolicyReadTestCase extends TestCase {
+ private ProcessorContext context = new ProcessorContext();
+
+ @Override
+ public void setUp() throws Exception {
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ }
+
+ public void testPolicyReading() throws Exception {
+ ${policyName}PolicyProcessor processor = new ${policyName}PolicyProcessor(null);
+// URL url = getClass().getResource("mock_policies.xml");
+// XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+//
+// InputStream urlStream = url.openStream();
+// XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream);
+//
+//
+// ${policyName}Policy policy = processor.read(reader, context);
+ }
+
+ public void testPolicyWriting() throws Exception {
+ ${policyName}PolicyProcessor processor = new ${policyName}PolicyProcessor(null);
+
+ ${policyName}Policy policy = new ${policyName}Policy();
+
+ XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
+ StringWriter sw = new StringWriter();
+ XMLStreamWriter writer = outputFactory.createXMLStreamWriter(sw);
+ processor.write(policy, writer, context);
+ writer.close();
+
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ StringReader sr = new StringReader(sw.toString());
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(sr);
+
+ policy = processor.read(reader, context);
+
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/mock_policies.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/mock_policies.xml
new file mode 100644
index 0000000000..a6071984e8
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/mock_policies.xml
@@ -0,0 +1,25 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?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.
+-->
+<tuscany:${policyName} xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" name="test.${policyName}">
+
+</tuscany:${policyName}> \ No newline at end of file
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/org/apache/tuscany/sca/policy/logging/jdk/mock_policies.xml b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/org/apache/tuscany/sca/policy/logging/jdk/mock_policies.xml
new file mode 100644
index 0000000000..956e2d763d
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/main/resources/archetype-resources/src/test/resources/org/apache/tuscany/sca/policy/logging/jdk/mock_policies.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/archetype.properties b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/archetype.properties
new file mode 100644
index 0000000000..6e140b54b7
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/archetype.properties
@@ -0,0 +1,22 @@
+# 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.
+#Sat Sep 04 08:10:22 BST 2010
+version=0.1-SNAPSHOT
+groupId=archetype.it
+package=archetype.it.basic
+artifactId=basic
+policyName=Basic
diff --git a/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/goal.txt b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/goal.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/sca-java-2.x/tags/2.0.1-RC1/maven/archetypes/policy/src/test/resources/projects/basic/goal.txt