Author: lresende
Date: Tue Jul 8 16:04:16 2008
New Revision: 675018
URL: http://svn.apache.org/viewvc?rev=675018&view=rev
Log:
TUSCANY-2354 - Applying a slightly modified version of Ram's patch to
get
a sucessful build
Added:
tuscany/java/sca/itest/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
(with props)
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
(with props)
Modified:
tuscany/java/sca/itest/policy/src/main/resources/definitions.xml
tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar
tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/mixed/definitions.xml
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java
tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
tuscany/java/sca/modules/policy-xml/src/main/resources/policy-xml-validation-messages.properties
tuscany/java/sca/modules/policy-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java
tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml
tuscany/java/sca/samples/binding-echo-extension/src/test/resources/definitions.xml
tuscany/java/sca/tools/eclipse/plugins/core/.classpath
Added:
tuscany/java/sca/itest/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=675018&view=auto
==============================================================================
---
tuscany/java/sca/itest/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
(added)
+++
tuscany/java/sca/itest/policy/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
Tue Jul 8 16:04:16 2008
@@ -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
+org.apache.tuscany.sca.itest.TestPolicyProcessor;qname=http://schemas.xmlsoap.org/ws/2004/09/policy#Policy,model=org.apache.tuscany.sca.itest.Policy
Modified:
tuscany/java/sca/itest/policy/src/main/resources/definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policy/src/main/resources/definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
--- tuscany/java/sca/itest/policy/src/main/resources/definitions.xml
(original)
+++ tuscany/java/sca/itest/policy/src/main/resources/definitions.xml Tue
Jul 8 16:04:16 2008
@@ -44,8 +44,7 @@
</sca:intent>
<sca:intent name="TestIntent_1.Qualifier_1" />
-
-
+ <sca:intent name="TestIntent_4.Qualifier_1" />
<!-- PolicySets -->
<sca:policySet name="TestPolicySet_1_implementation"
provides="ip:TestIntent_1"
Added:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java?rev=675018&view=auto
==============================================================================
---
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
(added)
+++
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
Tue Jul 8 16:04:16 2008
@@ -0,0 +1,33 @@
+/*
+ * 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.itest;
+
+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 Policy {
+ QName getSchemaName();
+ void setUnresolved(boolean unresolved);
+ boolean isUnresolved();
+}
Propchange:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/Policy.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java?rev=675018&view=auto
==============================================================================
---
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
(added)
+++
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
Tue Jul 8 16:04:16 2008
@@ -0,0 +1,82 @@
+/*
+ * 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.itest;
+
+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.ModelFactoryExtensionPoint;
+import
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import
org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import
org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.policy.Policy;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+
+/**
+ * A PolicyProcessor used for testing.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TestPolicyProcessor implements
StAXArtifactProcessor<Policy>
{
+
+ public TestPolicyProcessor(ModelFactoryExtensionPoint
modelFactories,
Monitor monitor) {
+
+ }
+
+ public QName getArtifactType() {
+ return new
QName("http://schemas.xmlsoap.org/ws/2004/09/policy",
"Policy");
+ }
+
+ public Policy read(XMLStreamReader arg0) throws
ContributionReadException, XMLStreamException {
+ return new MockPolicyImplOne();
+ }
+
+ public void write(Policy arg0, XMLStreamWriter arg1) throws
ContributionWriteException,
+ XMLStreamException {
+ }
+
+ public Class<Policy> getModelType() {
+ // TODO Auto-generated method stub
+ return Policy.class;
+ }
+
+ public void resolve(Policy arg0, ModelResolver arg1) throws
ContributionResolveException {
+
+ }
+
+
+ public class MockPolicyImplOne implements Policy {
+ public QName getSchemaName() {
+ return new
QName("http://schemas.xmlsoap.org/ws/2004/09/policy", "Policy");
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ }
+
+ }
+}
Propchange:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tuscany/java/sca/itest/policy/src/test/java/org/apache/tuscany/sca/itest/TestPolicyProcessor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/MissingComponentTypeFile/OSGiTestService.jar?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
Binary files - no diff available.
Modified:
tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/itest/validation/src/main/resources/impl/osgi/PropertyShouldSpecifySR/OSGiTestService.jar?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
Binary files - no diff available.
Modified:
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/mixed/definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/mixed/definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/mixed/definitions.xml
(original)
+++
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/mixed/definitions.xml
Tue Jul 8 16:04:16 2008
@@ -23,15 +23,6 @@
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
<!-- WS Security POLICY SETS -->
- <!-- A policyset that uses WS Policy -->
- <sca:intent name="wsAuthentication"
- constrains="sca:binding.ws">
- <description>
- Communitcation thro this binding required Authentication.
- </description>
- </sca:intent>
-
- <!-- WS Security POLICY SETS -->
<sca:policySet name="wsAuthenticationPolicy"
provides="sca:authentication"
appliesTo="//sca:binding.ws"
Modified:
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
(original)
+++
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
Tue Jul 8 16:04:16 2008
@@ -27,7 +27,7 @@
so for this composite the service is:
http://localhost:8085/myExplicitURI
-->
- <service name="helloWorld" promote="HelloWorldService"
policySets="tuscany:wsSecurityPolicyForAuthentication">
+ <service name="helloWorld" promote="HelloWorldService"
policySets="tuscany:wsAuthenticationPolicy">
<interface.wsdl
interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
<binding.ws
wsdlElement="http://helloworld-om-uri#wsdl.port(HelloWorldService/HelloWorldSoapPort)"
/>
</service>
@@ -41,7 +41,7 @@
<reference name="helloWorldWS" />
</component>
- <reference name="helloWorldWS"
promote="HelloWorldComponent/helloWorldWS"
policySets="tuscany:wsSecurityPolicyForAuthentication">
+ <reference name="helloWorldWS"
promote="HelloWorldComponent/helloWorldWS"
policySets="tuscany:wsAuthenticationPolicy">
<interface.wsdl
interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
<binding.ws
wsdlElement="http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding)"
uri="http://localhost:8085/myExplicitURI"/>
Modified:
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
(original)
+++
tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
Tue Jul 8 16:04:16 2008
@@ -21,20 +21,12 @@
targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
-
- <sca:intent name="wsAuthentication"
- constrains="sca:binding.ws">
- <description>
- Communitcation thro this binding required Authentication.
- </description>
- </sca:intent>
<!-- WS Security POLICY SETS -->
<!-- A policyset that uses WS Policy -->
- <sca:policySet name="wsSecurityPolicyForAuthentication"
+ <sca:policySet name="wsAuthenticationPolicy"
provides="sca:authentication"
- appliesTo="sca:binding.ws"
- >
+ appliesTo="sca:binding.ws">
<wsp:Policy wsu:Id="UTOverTransport"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
Modified:
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java
(original)
+++
tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java
Tue Jul 8 16:04:16 2008
@@ -22,6 +22,9 @@
import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+import java.util.List;
+import java.util.ArrayList;
+
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
@@ -40,6 +43,7 @@
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.IntentAttachPointType;
import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.ProfileIntent;
import org.apache.tuscany.sca.policy.QualifiedIntent;
import org.apache.tuscany.sca.monitor.Monitor;
@@ -173,12 +177,28 @@
// start by adding all of the top level artifacts into the
resolver
as there
// are many cross artifact references in a definitions file and
we
don't want
// to be dependent on the order things appear
+
+ List<Intent> simpleIntents = new ArrayList<Intent>();
+ List<ProfileIntent> profileIntents = new
ArrayList<ProfileIntent>();
+ List<QualifiedIntent> qualifiedIntents = new
ArrayList<QualifiedIntent>();
+ List<PolicySet> simplePolicySets = new ArrayList<PolicySet>();
+ List<PolicySet> referredPolicySets = new
ArrayList<PolicySet>();
for (Intent policyIntent : scaDefns.getPolicyIntents()) {
- resolver.addModel(policyIntent);
- }
+ if (policyIntent instanceof ProfileIntent)
+ profileIntents.add((ProfileIntent)policyIntent);
+ else if (policyIntent instanceof QualifiedIntent)
+ qualifiedIntents.add((QualifiedIntent)policyIntent);
+ else simpleIntents.add(policyIntent);
+
+ resolver.addModel(policyIntent);
+ }
for (PolicySet policySet : scaDefns.getPolicySets()) {
+ if (policySet.getReferencedPolicySets().isEmpty())
+ simplePolicySets.add(policySet);
+ else referredPolicySets.add(policySet);
+
resolver.addModel(policySet);
}
@@ -193,15 +213,20 @@
// now resolve everything to ensure that any references between
// artifacts are satisfied
- for (int count = 0, size = scaDefns.getPolicyIntents().size();
count < size; count++) {
- Intent intent = scaDefns.getPolicyIntents().get(count);
- extensionProcessor.resolve(intent, resolver);
- }
+ for (Intent policyIntent : simpleIntents)
+ extensionProcessor.resolve(policyIntent, resolver);
- for (int count = 0, size = scaDefns.getPolicySets().size();
count
< size; count++) {
- PolicySet policySet = scaDefns.getPolicySets().get(count);
+ for (ProfileIntent policyIntent : profileIntents)
+ extensionProcessor.resolve(policyIntent, resolver);
+
+ for (QualifiedIntent policyIntent : qualifiedIntents)
+ extensionProcessor.resolve(policyIntent, resolver);
+
+ for (PolicySet policySet : simplePolicySets)
extensionProcessor.resolve(policySet, resolver);
- }
+
+ for (PolicySet policySet : referredPolicySets)
+ extensionProcessor.resolve(policySet, resolver);
for (int count = 0, size = scaDefns.getBindingTypes().size();
count
< size; count++) {
IntentAttachPointType bindingType =
scaDefns.getBindingTypes().get(count);
Modified:
tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml
(original)
+++
tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml
Tue Jul 8 16:04:16 2008
@@ -30,8 +30,7 @@
<!-- Intents and Policysets to assume targetnamespace -->
<intent name="TestIntentOne"
- constrains="sca:binding"
- >
+ constrains="sca:binding">
<description>
Test Intent
</description>
@@ -39,7 +38,7 @@
<intent name="TestIntentTwo"
constrains="sca:binding"
- requires="TestIntentOne">
+ requires="test:TestIntentOne">
<description>
Protect messages from unauthorized reading or modification
</description>
Modified:
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
(original)
+++
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
Tue Jul 8 16:04:16 2008
@@ -247,10 +247,24 @@
for (Intent requiredIntent :
policyIntent.getRequiredIntents())
{
if (requiredIntent.isUnresolved()) {
Intent resolvedRequiredIntent =
resolver.resolveModel(Intent.class, requiredIntent);
- if (resolvedRequiredIntent != null) {
+ // At this point, when the required intent is not
resolved, it does not mean
+ // its undeclared, chances are that their
dependency
are not resolved yet.
+ // Lets try to resolve them first.
+ if (resolvedRequiredIntent.isUnresolved()) {
+ if (resolvedRequiredIntent instanceof
ProfileIntent) {
+ if
((((ProfileIntent)resolvedRequiredIntent).getRequiredIntents()).contains(policyIntent))
{
+ error("CyclicReferenceFound", resolver,
requiredIntent, policyIntent);
+ return;
+ }
+ resolveDependent(resolvedRequiredIntent,
resolver);
+ }
+ }
+
+ if (!resolvedRequiredIntent.isUnresolved()) {
requiredIntents.add(resolvedRequiredIntent);
} else {
error("RequiredIntentNotFound", resolver,
requiredIntent, policyIntent);
+ return;
//throw new
ContributionResolveException("Required
Intent - " + requiredIntent
//+ " not found for
ProfileIntent " + policyIntent);
}
@@ -270,19 +284,36 @@
Intent qualifiableIntent =
policyIntent.getQualifiableIntent();
if (qualifiableIntent.isUnresolved()) {
Intent resolvedQualifiableIntent =
resolver.resolveModel(Intent.class, qualifiableIntent);
-
- if (resolvedQualifiableIntent != null) {
+ // At this point, when the qualifiable intent is not
resolved, it does not mean
+ // its undeclared, chances are that their dependency
are
not resolved yet.
+ // Lets try to resolve them first.
+ if (resolvedQualifiableIntent.isUnresolved()) {
+ if (resolvedQualifiableIntent instanceof
QualifiedIntent) {
+ resolveDependent(resolvedQualifiableIntent,
resolver);
+ }
+ }
+
+ if (!resolvedQualifiableIntent.isUnresolved()) {
policyIntent.setQualifiableIntent(resolvedQualifiableIntent);
} else {
error("QualifiableIntentNotFound", resolver,
qualifiableIntent, policyIntent);
//throw new ContributionResolveException("Qualifiable
Intent - " + qualifiableIntent
//+ " not found for
QualifiedIntent " + policyIntent);
- }
-
+ }
}
}
}
+ public void resolveDependent(Intent policyIntent, ModelResolver
resolver) throws ContributionResolveException {
+ if (policyIntent instanceof ProfileIntent)
+ resolveProfileIntent((ProfileIntent)policyIntent,
resolver);
+
+ if (policyIntent instanceof QualifiedIntent)
+ resolveQualifiedIntent((QualifiedIntent)policyIntent,
resolver);
+
+ resolveContrainedArtifacts(policyIntent, resolver);
+ }
+
public void resolve(T policyIntent, ModelResolver resolver) throws
ContributionResolveException {
if (policyIntent instanceof ProfileIntent) {
resolveProfileIntent((ProfileIntent)policyIntent, resolver);
@@ -360,11 +391,12 @@
List<Intent> excludedIntents = new ArrayList<Intent>();
for (Intent excludedIntent :
policyIntent.getExcludedIntents())
{
if (excludedIntent.isUnresolved()) {
- Intent resolvedExcludedIntent =
resolver.resolveModel(Intent.class, excludedIntent);
- if (resolvedExcludedIntent != null) {
+ Intent resolvedExcludedIntent =
resolver.resolveModel(Intent.class, excludedIntent);
+ if (!resolvedExcludedIntent.isUnresolved()) {
excludedIntents.add(resolvedExcludedIntent);
} else {
error("ExcludedIntentNotFound", resolver,
excludedIntent, policyIntent);
+ return;
//throw new
ContributionResolveException("Excluded
Intent " + excludedIntent
//+ " not found
for intent " + policyIntent);
}
Modified:
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
(original)
+++
tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
Tue Jul 8 16:04:16 2008
@@ -371,13 +371,13 @@
for (Intent providedIntent : policySet.getProvidedIntents())
{
if (providedIntent.isUnresolved()) {
Intent resolvedProvidedIntent =
resolver.resolveModel(Intent.class, providedIntent);
- if (resolvedProvidedIntent != null) {
+ if (!resolvedProvidedIntent.isUnresolved()) {
providedIntents.add(resolvedProvidedIntent);
} else {
error("ProvidedIntentNotFound", policySet,
providedIntent, policySet);
+ return;
//throw new
ContributionResolveException("Provided
Intent - " + providedIntent
//+ " not
found
for PolicySet " + policySet);
-
}
} else {
providedIntents.add(providedIntent);
@@ -394,11 +394,11 @@
Intent mappedIntent = entry.getKey();
if (mappedIntent.isUnresolved()) {
Intent resolvedMappedIntent =
resolver.resolveModel(Intent.class, mappedIntent);
-
- if (resolvedMappedIntent != null) {
+ if (!resolvedMappedIntent.isUnresolved()) {
mappedPolicies.put(resolvedMappedIntent,
entry.getValue());
} else {
error("MappedIntentNotFound", policySet, mappedIntent,
policySet);
+ return;
//throw new ContributionResolveException("Mapped
Intent
- " + mappedIntent
//+ " not found for
PolicySet " + policySet);
}
@@ -417,10 +417,11 @@
for (PolicySet referredPolicySet :
policySet.getReferencedPolicySets()) {
if (referredPolicySet.isUnresolved()) {
PolicySet resolvedReferredPolicySet =
resolver.resolveModel(PolicySet.class, referredPolicySet);
- if (resolvedReferredPolicySet != null) {
+ if (!resolvedReferredPolicySet.isUnresolved()) {
referredPolicySets.add(resolvedReferredPolicySet);
} else {
error("ReferredPolicySetNotFound", policySet,
referredPolicySet, policySet);
+ return;
//throw new ContributionResolveException("Referred
PolicySet - " + referredPolicySet
//+ "not
found
for PolicySet - " + policySet);
}
@@ -453,9 +454,9 @@
//resolve the policy attachments
resolvePolicies(policySet, resolver);
- if ( !policySet.isUnresolved() ) {
+ /*if ( !policySet.isUnresolved() ) {
resolver.addModel(policySet);
- }
+ }*/
}
}
}
Modified:
tuscany/java/sca/modules/policy-xml/src/main/resources/policy-xml-validation-messages.properties
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/main/resources/policy-xml-validation-messages.properties?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/policy-xml/src/main/resources/policy-xml-validation-messages.properties
(original)
+++
tuscany/java/sca/modules/policy-xml/src/main/resources/policy-xml-validation-messages.properties
Tue Jul 8 16:04:16 2008
@@ -33,4 +33,5 @@
RequiredAttributeMissing = Required attribute {0} missing from
BindingType
Definition
AlwaysProvidedIntentNotFound = Always Provided Intent - {0} not found
for
ExtensionType {1}
MayProvideIntentNotFound = May Provide Intent - {0} not found for
ExtensionType {1}
-ContributionReadException = ContributionReadException occured due to:
{0}
\ No newline at end of file
+ContributionReadException = ContributionReadException occured due to:
{0}
+CyclicReferenceFound = Cyclic reference detected in required attributes
of ProfileIntents {0} and {1}
\ No newline at end of file
Modified:
tuscany/java/sca/modules/policy-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/policy-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java
(original)
+++
tuscany/java/sca/modules/policy-xml/src/test/java/org/apache/tuscany/sca/policy/xml/ReadDocumentTestCase.java
Tue Jul 8 16:04:16 2008
@@ -23,7 +23,9 @@
import java.io.InputStream;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Hashtable;
+import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -38,6 +40,10 @@
import
org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.impl.DefaultMonitorFactoryImpl;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.IntentAttachPointType;
import org.apache.tuscany.sca.policy.PolicySet;
@@ -55,7 +61,7 @@
private ModelResolver resolver;
private StAXArtifactProcessor<Object> staxProcessor;
-
+ private Monitor monitor;
private Map<QName, Intent> intentTable = new Hashtable<QName,
Intent>();
private Map<QName, PolicySet> policySetTable = new Hashtable<QName,
PolicySet>();
@@ -82,8 +88,15 @@
DefaultExtensionPointRegistry extensionPoints = new
DefaultExtensionPointRegistry();
resolver = new DefaultModelResolver();
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ // Create a monitor
+ UtilityExtensionPoint utilities =
extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+ MonitorFactory monitorFactory = new
DefaultMonitorFactoryImpl();
+ if (monitorFactory != null) {
+ monitor = monitorFactory.createMonitor();
+ utilities.addUtility(monitorFactory);
+ }
StAXArtifactProcessorExtensionPoint staxProcessors =
extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- staxProcessor = new
ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null,
null);
+ staxProcessor = new
ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null,
monitor);
staxProcessors.addArtifactProcessor(new TestPolicyProcessor());
URL url = getClass().getResource("test_definitions.xml");
@@ -187,12 +200,35 @@
assertNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription());
assertNull(javaImplType.getMayProvideIntents().get(0).getDescription());
- for ( Intent intent : intentTable.values() ) {
+ List<Intent> simpleIntents = new ArrayList<Intent>();
+ List<ProfileIntent> profileIntents = new
ArrayList<ProfileIntent>();
+ List<QualifiedIntent> qualifiedIntents = new
ArrayList<QualifiedIntent>();
+
+ for (Intent intent : intentTable.values()) {
+ if (intent instanceof ProfileIntent)
+ profileIntents.add((ProfileIntent)intent);
+ else if (intent instanceof QualifiedIntent)
+ qualifiedIntents.add((QualifiedIntent)intent);
+ else simpleIntents.add(intent);
+ }
+
+ for (Intent intent : simpleIntents)
+ staxProcessor.resolve(intent, resolver);
+
+ for (ProfileIntent intent : profileIntents)
staxProcessor.resolve(intent, resolver);
+
+ for (QualifiedIntent intent : qualifiedIntents)
+ staxProcessor.resolve(intent, resolver);
+
+ for ( PolicySet policySet : policySetTable.values() ) {
+ if (policySet.getReferencedPolicySets().isEmpty())
+ staxProcessor.resolve(policySet, resolver);
}
for ( PolicySet policySet : policySetTable.values() ) {
- staxProcessor.resolve(policySet, resolver);
+ if (!policySet.getReferencedPolicySets().isEmpty())
+ staxProcessor.resolve(policySet, resolver);
}
for ( IntentAttachPointType bindingType :
bindingTypesTable.values() ) {
@@ -203,8 +239,6 @@
staxProcessor.resolve(implType, resolver);
}
-
-
//testing if policy intents have been linked have property been
linked up
assertNotNull(profileIntent.getRequiredIntents().get(0).getDescription());
assertNotNull(qualifiedIntent.getQualifiableIntent().getDescription());
Modified:
tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml
(original)
+++
tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml
Tue Jul 8 16:04:16 2008
@@ -30,8 +30,7 @@
<!-- Intents and Policysets to assume targetnamespace -->
<intent name="TestIntentOne"
- constrains="sca:binding"
- >
+ constrains="sca:binding">
<description>
Test Intent
</description>
@@ -39,7 +38,7 @@
<intent name="TestIntentTwo"
constrains="sca:binding"
- requires="TestIntentOne">
+ requires="test:TestIntentOne">
<description>
Protect messages from unauthorized reading or modification
</description>
Modified:
tuscany/java/sca/samples/binding-echo-extension/src/test/resources/definitions.xml
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/samples/binding-echo-extension/src/test/resources/definitions.xml?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
---
tuscany/java/sca/samples/binding-echo-extension/src/test/resources/definitions.xml
(original)
+++
tuscany/java/sca/samples/binding-echo-extension/src/test/resources/definitions.xml
Tue Jul 8 16:04:16 2008
@@ -24,9 +24,16 @@
xmlns:p="http://sample/policy">
<!-- POLICY SETS -->
<sca:policySet name="EncryptionPolicy"
- provides="sca:confidentiality"
- appliesTo="e:binding.echo"
- >
+ provides="confidentiality"
+ appliesTo="e:binding.echo">
<p:echoBindingPolicy name="Encryption"
strategy="echo.provider.policy.ReverseEncryptionStrategy" />
- </sca:policySet>
+ </sca:policySet>
+
+ <sca:intent name="confidentiality"
+ constrains="sca:binding">
+ <description>
+ Communitcation thro this binding must prevent
+ unauthorized users from reading the messages.
+ </description>
+ </sca:intent>
</sca:definitions>
\ No newline at end of file
Modified: tuscany/java/sca/tools/eclipse/plugins/core/.classpath
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/tools/eclipse/plugins/core/.classpath?rev=675018&r1=675017&r2=675018&view=diff
==============================================================================
--- tuscany/java/sca/tools/eclipse/plugins/core/.classpath (original)
+++ tuscany/java/sca/tools/eclipse/plugins/core/.classpath Tue Jul 8
16:04:16 2008
@@ -2,55 +2,55 @@
<classpathentry kind="src" path="."/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/debug/ui/3.2.100-v20070531-1800/ui-3.2.100-v20070531-1800.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/ide/3.3.0-I20070531-1800/ide-3.3.0-I20070531-1800.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/resources/3.3.0-v20070530/resources-3.3.0-v20070530.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/expressions/3.3.0-v20070531-1300/expressions-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/runtime/3.3.100-v20070530/runtime-3.3.100-v20070530.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/osgi/3.3.0-v20070530/osgi-3.3.0-v20070530.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/app/1.0.0-v20070423/app-1.0.0-v20070423.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/commands/3.3.0-I20070523-1500/commands-3.3.0-I20070523-1500.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/common/3.3.0-v20070426/common-3.3.0-v20070426.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/jobs/3.3.0-v20070423/jobs-3.3.0-v20070423.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/registry/3.3.0-v20070522/registry-3.3.0-v20070522.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/preferences/3.2.100-v20070522/preferences-3.2.100-v20070522.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/compare/3.3.0-I20070528/compare-3.3.0-I20070528.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/configurator/3.2.100-v20070507/configurator-3.2.100-v20070507.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/console/3.2.0-v20070530/console-3.2.0-v20070530.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/core/contenttype/3.2.100-v20070319/contenttype-3.2.100-v20070319.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/app/1.0.0-v20070423/app-1.0.0-v20070423.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/debug/core/3.3.0-v20070531-1800/core-3.3.0-v20070531-1800.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/core/3.3.0-v_768/core-3.3.0-v_768.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/team/core/3.2.100-I20070531/core-3.2.100-I20070531.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/core/3.2.100-v20070522/core-3.2.100-v20070522.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/databinding/1.0.0-I20070530-0100/databinding-1.0.0-I20070530-0100.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jface/databinding/1.1.0-I20070530-0100/databinding-1.1.0-I20070530-0100.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/debug/3.3.0-v20070530a/debug-3.3.0-v20070530a.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/editors/3.3.0-v20070531-1300/editors-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/expressions/3.3.0-v20070531-1300/expressions-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/filebuffers/3.3.0-v20070531-1300/filebuffers-3.3.0-v20070531-1300.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/core/filesystem/1.1.0-v20070510/filesystem-1.1.0-v20070510.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/forms/3.3.0-v20070511/forms-3.3.0-v20070511.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/help/3.3.0-v20070524/help-3.3.0-v20070524.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/3.3.0-I20070601-1200/ui-3.3.0-I20070601-1200.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/swt/3.3.0-v3345b/swt-3.3.0-v3345b.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/ide/3.3.0-I20070531-1800/ide-3.3.0-I20070531-1800.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/jface/3.3.0-I20070601-1200/jface-3.3.0-I20070601-1200.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/commands/3.3.0-I20070523-1500/commands-3.3.0-I20070523-1500.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/workbench/3.3.0-I20070601-0010/workbench-3.3.0-I20070601-0010.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jface/databinding/1.1.0-I20070530-0100/databinding-1.1.0-I20070530-0100.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/databinding/1.0.0-I20070530-0100/databinding-1.0.0-I20070530-0100.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/views/3.2.100-I20070319-0010/views-3.2.100-I20070319-0010.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/configurator/3.2.100-v20070507/configurator-3.2.100-v20070507.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/core/3.2.100-v20070522/core-3.2.100-v20070522.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/jobs/3.3.0-v20070423/jobs-3.3.0-v20070423.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/launching/3.3.0-v20070510/launching-3.3.0-v20070510.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/core/manipulation/1.1.0-v20070531-1300/manipulation-1.1.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/navigator/3.3.0-I20070531-1800/navigator-3.3.0-I20070531-1800.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/core/net/1.0.0-I20070531/net-1.0.0-I20070531.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/ui/3.2.100-v20070601a/ui-3.2.100-v20070601a.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/forms/3.3.0-v20070511/forms-3.3.0-v20070511.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jface/text/3.3.0-v20070531-1300/text-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/osgi/3.3.0-v20070530/osgi-3.3.0-v20070530.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/preferences/3.2.100-v20070522/preferences-3.2.100-v20070522.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ltk/core/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ltk/ui/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/equinox/registry/3.3.0-v20070522/registry-3.3.0-v20070522.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/resources/3.3.0-v20070530/resources-3.3.0-v20070530.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/navigator/resources/3.2.100-I20070530-0100/resources-3.2.100-I20070530-0100.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/runtime/3.3.100-v20070530/runtime-3.3.100-v20070530.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/search/3.3.0-v20070531-1300/search-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/swt/3.3.0-v3345b/swt-3.3.0-v3345b.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/views/properties/tabbed/3.2.100-I20070424-0010/tabbed-3.2.100-I20070424-0010.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/text/3.3.0-v20070531-1300/text-3.3.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jface/text/3.3.0-v20070531-1300/text-3.3.0-v20070531-1300.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/workbench/texteditor/3.3.0-v20070531-1300/texteditor-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/editors/3.3.0-v20070531-1300/editors-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/filebuffers/3.3.0-v20070531-1300/filebuffers-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/variables/3.2.0-v20070426/variables-3.2.0-v20070426.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/core/3.3.0-v_768/core-3.3.0-v_768.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/3.3.0-I20070601-1200/ui-3.3.0-I20070601-1200.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/debug/ui/3.3.0-v20070531-1800/ui-3.3.0-v20070531-1800.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/console/3.2.0-v20070530/console-3.2.0-v20070530.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/debug/core/3.3.0-v20070531-1800/core-3.3.0-v20070531-1800.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/debug/3.3.0-v20070530a/debug-3.3.0-v20070530a.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/launching/3.3.0-v20070510/launching-3.3.0-v20070510.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/ui/3.3.0-v20070531-1300/ui-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/search/3.3.0-v20070531-1300/search-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/compare/3.3.0-I20070528/compare-3.3.0-I20070528.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/debug/ui/3.2.100-v20070531-1800/ui-3.2.100-v20070531-1800.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/team/ui/3.3.0-I20070524/ui-3.3.0-I20070524.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/team/core/3.2.100-I20070531/core-3.2.100-I20070531.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/navigator/3.3.0-I20070531-1800/navigator-3.3.0-I20070531-1800.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/navigator/resources/3.2.100-I20070530-0100/resources-3.2.100-I20070530-0100.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/views/properties/tabbed/3.2.100-I20070424-0010/tabbed-3.2.100-I20070424-0010.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ltk/core/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/ltk/ui/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/jdt/core/manipulation/1.1.0-v20070531-1300/manipulation-1.1.0-v20070531-1300.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/update/ui/3.2.100-v20070601a/ui-3.2.100-v20070601a.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/core/variables/3.2.0-v20070426/variables-3.2.0-v20070426.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/views/3.2.100-I20070319-0010/views-3.2.100-I20070319-0010.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/eclipse/ui/workbench/3.3.0-I20070601-0010/workbench-3.3.0-I20070601-0010.jar"/>
<classpathentry kind="var"
path="M2_REPO/org/eclipse/swt/win32/win32/x86/3.3.0-v3346/x86-3.3.0-v3346.jar"/>
</classpath>
\ No newline at end of file