First test for Assembly Model component section

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@673173 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
kwilliams 2008-07-01 19:00:22 +00:00
parent 692c698c97
commit fc1d68b406
8 changed files with 310 additions and 0 deletions

View file

@ -0,0 +1,49 @@
<?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>vtest-assembly</artifactId>
<version>1.4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>vtest-assembly-component</artifactId>
<name>Apache Tuscany SCA Assembly Verification Tests - Component</name>
<dependencies>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-host-embedded</artifactId>
<version>1.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-implementation-java-runtime</artifactId>
<version>1.4-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

View file

@ -0,0 +1,31 @@
/*
* 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.vtest.assembly.component;
/**
* Simple Remotable Service
*/
public interface AService {
public String getState();
public String getBProperty();
public String getB2Property();
}

View file

@ -0,0 +1,29 @@
/*
* 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.vtest.assembly.component;
/**
* Simple Service
*/
public interface BService {
public String getState();
public String getSomeProperty();
}

View file

@ -0,0 +1,49 @@
/*
* 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.vtest.assembly.component.impl;
import org.apache.tuscany.sca.vtest.assembly.component.AService;
import org.apache.tuscany.sca.vtest.assembly.component.BService;
import org.osoa.sca.annotations.Reference;
import org.osoa.sca.annotations.Service;
@Service(AService.class)
public class AServiceImpl implements AService {
@Reference
protected BService b;
@Reference
protected BService b2;
public String getState() {
return b.getState();
}
public String getBProperty() {
return b.getSomeProperty();
}
public String getB2Property() {
return b2.getSomeProperty();
}
}

View file

@ -0,0 +1,40 @@
/*
* 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.vtest.assembly.component.impl;
import org.apache.tuscany.sca.vtest.assembly.component.BService;
import org.osoa.sca.annotations.Property;
import org.osoa.sca.annotations.Service;
@Service(BService.class)
public class BServiceImpl implements BService {
@Property
protected String someProperty;
public String getState() {
return "SomeStateFromB";
}
public String getSomeProperty() {
return someProperty;
}
}

View file

@ -0,0 +1,41 @@
<?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.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://assembly-tests"
name="Assemby-component--Composite">
<component name="AComponent">
<implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.impl.AServiceImpl"/>
<reference name="b" target="BComponent"/>
<reference name="b2" target="B2Component"/>
</component>
<component name="BComponent">
<implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.impl.BServiceImpl"/>
<property name="someProperty">some b component value</property>
</component>
<component name="B2Component">
<implementation.java class="org.apache.tuscany.sca.vtest.assembly.component.impl.BServiceImpl"/>
<property name="someProperty">some b2 component value</property>
</component>
</composite>

View file

@ -0,0 +1,70 @@
/*
* 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.vtest.assembly.component;
import junit.framework.Assert;
import org.apache.tuscany.sca.vtest.utilities.ServiceFinder;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
*
*/
public class ComponentTestCase {
protected static String compositeName = "component.composite";
protected static AService aService = null;
@BeforeClass
public static void init() throws Exception {
try {
System.out.println("Setting up");
ServiceFinder.init(compositeName);
aService = ServiceFinder.getService(AService.class, "AComponent/AService");
} catch (Exception ex) {
ex.printStackTrace();
}
}
@AfterClass
public static void destroy() throws Exception {
System.out.println("Cleaning up");
ServiceFinder.cleanup();
}
/**
* Lines 92-94:
* <p>
* Components are configured instances of implementations. Components
* provide and consume services. More than one component can use and
* configure the same implementation, where each component configures the
* implementation differently.
*/
@Test
public void component1() throws Exception {
Assert.assertEquals("some b component value", aService.getBProperty());
Assert.assertEquals("some b2 component value", aService.getB2Property());
}
}

View file

@ -61,6 +61,7 @@
</activation>
<modules>
<module>ctypefile</module>
<module>component</module>
</modules>
</profile>
</profiles>