Author: jsdelfino
Date: Sun Feb 3 18:44:47 2008
New Revision: 618158
URL: http://svn.apache.org/viewvc?rev=618158&view=rev
Log:
Moved sca-contribution.xml processing to contribution-xml module. Minor clean
up of the test cases.
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java
- copied, changed from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ArtifactResolverTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java
- copied, changed from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
- copied, changed from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
- copied, changed from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java
incubator/tuscany/java/sca/modules/contribution-xml/src/main/resources/META-INF/
incubator/tuscany/java/sca/modules/contribution-xml/src/main/resources/META-INF/services/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessorTestCase.java
- copied, changed from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
(with props)
Removed:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ArtifactResolverTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/pom.xml
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/FolderContributionPackageProcessorTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/JarContributionPackageProcessorTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
incubator/tuscany/java/sca/modules/pom.xml
incubator/tuscany/java/sca/tools/eclipse/plugins/core/.classpath
Modified: incubator/tuscany/java/sca/modules/contribution-impl/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/pom.xml?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/pom.xml Sun Feb 3
18:44:47 2008
@@ -37,6 +37,12 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-contribution-xml</artifactId>
+ <version>1.2-incubating-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-contribution-java</artifactId>
<version>1.2-incubating-SNAPSHOT</version>
</dependency>
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ModelResolverImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ModelResolverImpl.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ModelResolverImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ModelResolverImpl.java
Sun Feb 3 18:44:47 2008
@@ -90,6 +90,8 @@
return map.remove(resolved);
}
+ //FIXME This method is a hack and should be removed, it's not even on
+ // the ModelResolver interface
public Collection<Object> getModels() {
return map.values();
}
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
Sun Feb 3 18:44:47 2008
@@ -48,6 +48,7 @@
import org.apache.tuscany.sca.contribution.service.ContributionService;
import
org.apache.tuscany.sca.contribution.service.ExtensibleContributionListener;
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
+import
org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
import org.apache.tuscany.sca.definitions.SCADefinitions;
/**
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/FolderContributionPackageProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/FolderContributionPackageProcessorTestCase.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/FolderContributionPackageProcessorTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/FolderContributionPackageProcessorTestCase.java
Sun Feb 3 18:44:47 2008
@@ -35,17 +35,10 @@
public class FolderContributionPackageProcessorTestCase extends TestCase {
private static final String FOLDER_CONTRIBUTION = ".";
- private File contributionRoot;
-
- @Override
- protected void setUp() throws Exception {
- this.contributionRoot = new File(FOLDER_CONTRIBUTION);
- }
-
public final void testProcessPackageArtifacts() throws Exception {
FolderContributionProcessor folderProcessor = new
FolderContributionProcessor();
- List<URI> artifacts =
folderProcessor.getArtifacts(contributionRoot.toURL(), null);
+ List<URI> artifacts = folderProcessor.getArtifacts(new
File(FOLDER_CONTRIBUTION).toURL(), null);
assertNotNull(artifacts);
}
}
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/JarContributionPackageProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/JarContributionPackageProcessorTestCase.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/JarContributionPackageProcessorTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/JarContributionPackageProcessorTestCase.java
Sun Feb 3 18:44:47 2008
@@ -38,10 +38,6 @@
public class JarContributionPackageProcessorTestCase extends TestCase {
private static final String JAR_CONTRIBUTION =
"/repository/sample-calculator.jar";
- @Override
- protected void setUp() throws Exception {
- }
-
public final void testProcessPackageArtifacts() throws Exception {
JarContributionProcessor jarProcessor = new JarContributionProcessor();
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/processor/URLartifactProcessorExtensionPointTestCase.java
Sun Feb 3 18:44:47 2008
@@ -36,7 +36,8 @@
* @version $Rev$ $Date$
*/
public class URLartifactProcessorExtensionPointTestCase extends TestCase {
- URLArtifactProcessorExtensionPoint artifactProcessors;
+
+ private URLArtifactProcessorExtensionPoint artifactProcessors;
@Override
protected void setUp() throws Exception {
@@ -47,23 +48,13 @@
public final void testFileTypeProcessor() {
- URLArtifactProcessor processor = null;
-
- processor = artifactProcessors.getProcessor(".m1");
- assertNotNull(processor);
+ assertNotNull(artifactProcessors.getProcessor(".m1"));
}
public final void testFileNameProcessor() {
- URLArtifactProcessor processor = null;
+ assertNotNull(artifactProcessors.getProcessor("file.m2"));
- processor = artifactProcessors.getProcessor("file.m2");
- assertNotNull(processor);
-
- }
-
- @Override
- protected void tearDown() throws Exception {
}
/**
@@ -71,15 +62,13 @@
*
*/
- class M1 {
-
+ private class M1 {
}
- class M2 {
-
+ private class M2 {
}
- class FileTypeArtifactProcessor implements URLArtifactProcessor<M1> {
+ private class FileTypeArtifactProcessor implements
URLArtifactProcessor<M1> {
public FileTypeArtifactProcessor() {
}
@@ -88,7 +77,6 @@
}
public void resolve(M1 m1, ModelResolver resolver) throws
ContributionResolveException {
- //stub
}
public String getArtifactType() {
@@ -100,7 +88,7 @@
}
}
- class FileNameArtifactProcessor implements URLArtifactProcessor<M2> {
+ private class FileNameArtifactProcessor implements
URLArtifactProcessor<M2> {
public FileNameArtifactProcessor() {
}
@@ -109,7 +97,6 @@
}
public void resolve(M2 m2, ModelResolver resolver) throws
ContributionResolveException {
- //stub
}
public String getArtifactType() {
Copied:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java
(from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ArtifactResolverTestCase.java)
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java?p2=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ArtifactResolverTestCase.java&r1=618074&r2=618158&rev=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ArtifactResolverTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverTestCase.java
Sun Feb 3 18:44:47 2008
@@ -27,11 +27,11 @@
import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
/**
- * Test DefaultArtifactResolver.
+ * Test the default model resolver implementation.
*
* @version $Rev$ $Date$
*/
-public class ArtifactResolverTestCase extends TestCase {
+public class DefaultModelResolverTestCase extends TestCase {
private ModelResolver resolver;
private ContributionFactory factory;
@@ -40,10 +40,6 @@
protected void setUp() throws Exception {
resolver = new ModelResolverImpl(getClass().getClassLoader());
factory = new DefaultContributionFactory();
- }
-
- @Override
- protected void tearDown() throws Exception {
}
public void testResolved() {
Copied:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java
(from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java)
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java?p2=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java&r1=618074&r2=618158&rev=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java
Sun Feb 3 18:44:47 2008
@@ -32,7 +32,7 @@
*
* @version $Rev$ $Date$
*/
-public class ExtensibleArtifactResolverTestCase extends TestCase {
+public class ExtensibleModelResolverTestCase extends TestCase {
private ExtensibleModelResolver resolver;
private ContributionFactory factory;
@@ -50,10 +50,6 @@
factory = new DefaultContributionFactory();
}
- @Override
- protected void tearDown() throws Exception {
- }
-
public void testResolvedDefault() {
OtherModel a = new OtherModel("a");
resolver.addModel(a);
@@ -92,7 +88,7 @@
assertTrue(x == artifact);
}
- class Model {
+ private class Model {
private String name;
Model(String name) {
@@ -110,7 +106,7 @@
}
}
- class OtherModel {
+ private class OtherModel {
private String name;
OtherModel(String name) {
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/TestModelResolver.java
Sun Feb 3 18:44:47 2008
@@ -26,19 +26,15 @@
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
/**
- * A default implementation of an artifact resolver, based on a map.
+ * A test implementation of a model resolver, based on a map.
*
* @version $Rev$ $Date$
*/
public class TestModelResolver implements ModelResolver {
- private static final long serialVersionUID = -7826976465762296634L;
private Map<Object, Object> map = new HashMap<Object, Object>();
- protected Contribution contribution;
-
public TestModelResolver(Contribution contribution,
ModelFactoryExtensionPoint modelFactories) {
- this.contribution = contribution;
}
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
Copied:
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
(from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java)
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java?p2=incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java&r1=618074&r2=618158&rev=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
Sun Feb 3 18:44:47 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.contribution.service.impl;
+package org.apache.tuscany.sca.contribution.xml;
import java.io.IOException;
import java.io.InputStream;
Copied:
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
(from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java)
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java?p2=incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java&r1=618074&r2=618158&rev=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
Sun Feb 3 18:44:47 2008
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.contribution.service.impl;
+package org.apache.tuscany.sca.contribution.xml;
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
@@ -86,8 +86,6 @@
// Read <contribution>
contribution =
this.contributionFactory.createContribution();
- //FIXME Remove dependency on classloaders
- contribution.setClassLoader(new
ContributionClassLoader(contribution));
} else if (DEPLOYABLE.equals(element)) {
Copied:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessorTestCase.java
(from r618074,
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java)
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessorTestCase.java?p2=incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessorTestCase.java&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java&r1=618074&r2=618158&rev=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessorTestCase.java
Sun Feb 3 18:44:47 2008
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.tuscany.sca.contribution.services;
+package org.apache.tuscany.sca.contribution.xml;
import java.io.StringReader;
@@ -31,12 +31,11 @@
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ContributionFactory;
import org.apache.tuscany.sca.contribution.DefaultContributionFactory;
-import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import
org.apache.tuscany.sca.contribution.service.impl.ContributionClassLoader;
-import
org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
/**
+ * Test the contribution metadata processor.
+ *
* @version $Rev$ $Date$
*/
@@ -70,7 +69,7 @@
ContributionMetadataProcessor loader =
new ContributionMetadataProcessor(assemblyFactory,
contributionFactory, null);
Contribution contribution = contributionFactory.createContribution();
- contribution.setModelResolver(new
ModelResolverImpl(getClass().getClassLoader()));
+ contribution.setModelResolver(new TestModelResolver(contribution,
null));
contribution = loader.read(reader);
assertNotNull(contribution);
assertEquals(2, contribution.getDeployables().size());
@@ -83,7 +82,7 @@
ContributionMetadataProcessor loader =
new ContributionMetadataProcessor(assemblyFactory,
contributionFactory, null);
Contribution contribution = contributionFactory.createContribution();
- contribution.setModelResolver(new
ModelResolverImpl(getClass().getClassLoader()));
+ contribution.setModelResolver(new TestModelResolver(contribution,
null));
try {
loader.read(reader);
fail("InvalidException should have been thrown");
Added:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java?rev=618158&view=auto
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
(added)
+++
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
Sun Feb 3 18:44:47 2008
@@ -0,0 +1,59 @@
+/*
+ * 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.contribution.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+
+/**
+ * A test implementation of a model resolver, based on a map.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TestModelResolver implements ModelResolver {
+
+ private Map<Object, Object> map = new HashMap<Object, Object>();
+
+ public TestModelResolver(Contribution contribution,
ModelFactoryExtensionPoint modelFactories) {
+ }
+
+ public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+ Object resolved = map.get(unresolved);
+ if (resolved != null) {
+ // Return the resolved object
+ return modelClass.cast(resolved);
+ }
+ // Return the unresolved object
+ return unresolved;
+ }
+
+ public void addModel(Object resolved) {
+ map.put(resolved, resolved);
+ }
+
+ public Object removeModel(Object resolved) {
+ return map.remove(resolved);
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/modules/contribution-xml/src/test/java/org/apache/tuscany/sca/contribution/xml/TestModelResolver.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
(original)
+++
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
Sun Feb 3 18:44:47 2008
@@ -58,10 +58,10 @@
import org.apache.tuscany.sca.contribution.service.ContributionService;
import
org.apache.tuscany.sca.contribution.service.ExtensibleContributionListener;
import org.apache.tuscany.sca.contribution.service.TypeDescriber;
-import
org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
import
org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
import
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
import
org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
+import org.apache.tuscany.sca.contribution.xml.ContributionMetadataProcessor;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.assembly.ActivationException;
import org.apache.tuscany.sca.core.assembly.CompositeActivator;
Modified: incubator/tuscany/java/sca/modules/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Sun Feb 3 18:44:47 2008
@@ -62,6 +62,7 @@
<module>contribution-java</module>
<module>contribution-impl</module>
<module>contribution-osgi</module>
+ <module>contribution-xml</module>
<module>core</module>
<module>core-databinding</module>
<module>core-spi</module>
Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/.classpath
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/.classpath?rev=618158&r1=618157&r2=618158&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/.classpath (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/.classpath Sun Feb 3
18:44:47 2008
@@ -3,55 +3,55 @@
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <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/team/core/3.2.100-I20070531/core-3.2.100-I20070531.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/ui/navigator/resources/3.2.100-I20070530-0100/resources-3.2.100-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/core/jobs/3.3.0-v20070423/jobs-3.3.0-v20070423.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/jdt/ui/3.3.0-v20070531-1300/ui-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/jdt/debug/ui/3.2.100-v20070531-1800/ui-3.2.100-v20070531-1800.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/ui/navigator/3.3.0-I20070531-1800/navigator-3.3.0-I20070531-1800.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/update/configurator/3.2.100-v20070507/configurator-3.2.100-v20070507.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/ui/console/3.2.0-v20070530/console-3.2.0-v20070530.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/ltk/ui/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.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/ui/views/properties/tabbed/3.2.100-I20070424-0010/tabbed-3.2.100-I20070424-0010.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/core/expressions/3.3.0-v20070531-1300/expressions-3.3.0-v20070531-1300.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/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/jdt/core/3.3.0-v_768/core-3.3.0-v_768.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/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/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/core/filesystem/1.1.0-v20070510/filesystem-1.1.0-v20070510.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/team/ui/3.3.0-I20070524/ui-3.3.0-I20070524.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/net/1.0.0-I20070531/net-1.0.0-I20070531.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/equinox/common/3.3.0-v20070426/common-3.3.0-v20070426.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/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/osgi/3.3.0-v20070530/osgi-3.3.0-v20070530.jar"/>
- <classpathentry kind="var"
path="M2_REPO/org/eclipse/swt/win32/win32/x86/3.3.0-v3346/x86-3.3.0-v3346.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/jdt/launching/3.3.0-v20070510/launching-3.3.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/jface/text/3.3.0-v20070531-1300/text-3.3.0-v20070531-1300.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/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/help/3.3.0-v20070524/help-3.3.0-v20070524.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/3.3.0-I20070601-1200/ui-3.3.0-I20070601-1200.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/ltk/core/refactoring/3.3.0-v20070531-1300/refactoring-3.3.0-v20070531-1300.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/ui/workbench/texteditor/3.3.0-v20070531-1300/texteditor-3.3.0-v20070531-1300.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/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/ui/ide/3.3.0-I20070531-1800/ide-3.3.0-I20070531-1800.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/runtime/3.3.100-v20070530/runtime-3.3.100-v20070530.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/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/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/swt/win32/win32/x86/3.3.0-v3346/x86-3.3.0-v3346.jar"/>
</classpath>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]