summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src')
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponent.java27
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponentImpl.java55
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponent.java33
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponentImpl.java98
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponent.java33
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponentImpl.java97
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ComplexPropertyBean.java69
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideService.java25
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideServiceImpl.java24
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponent.java32
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponentImpl.java72
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyService.java24
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/PropertyTest.composite197
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/fileProperty.txt1
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/manyValuesFileProperty.txt6
-rw-r--r--sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/test/java/org/apache/tuscany/sca/itest/PropertyTestCase.java186
16 files changed, 979 insertions, 0 deletions
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponent.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponent.java
new file mode 100644
index 0000000000..667b854c10
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponent.java
@@ -0,0 +1,27 @@
+/*
+ * 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;
+
+public interface ABCDComponent {
+ String getA();
+ String getB();
+ String getC();
+ String getD();
+}
+
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponentImpl.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponentImpl.java
new file mode 100644
index 0000000000..51d4d9b3cb
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABCDComponentImpl.java
@@ -0,0 +1,55 @@
+/*
+ * 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 org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("COMPOSITE")
+public class ABCDComponentImpl implements ABCDComponent {
+ private ABComponent abComponent;
+ private CDComponent cdComponent;
+
+ @Reference
+ public void setAb(ABComponent component) {
+ this.abComponent = component;
+ }
+
+ @Reference
+ public void setCd(CDComponent component) {
+ this.cdComponent = component;
+ }
+
+ public String getA() {
+ return this.abComponent.getA();
+ }
+
+ public String getB() {
+ return this.abComponent.getB();
+ }
+
+ public String getC() {
+ return this.cdComponent.getC();
+ }
+
+ public String getD() {
+ return this.cdComponent.getD();
+ }
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponent.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponent.java
new file mode 100644
index 0000000000..4058ce92bd
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponent.java
@@ -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 java.util.Collection;
+
+public interface ABComponent {
+
+ String getA();
+ String getB();
+ String getZ();
+ int getIntValue();
+ String getF();
+ Collection<String> getManyStringValues();
+ Collection<Integer> getManyIntegers();
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponentImpl.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponentImpl.java
new file mode 100644
index 0000000000..b78d6380ef
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ABComponentImpl.java
@@ -0,0 +1,98 @@
+/*
+ * 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 java.util.Collection;
+
+import org.osoa.sca.annotations.Property;
+
+public class ABComponentImpl implements ABComponent {
+
+ private String aProperty;
+ private String bProperty;
+ private int intValue;
+ private Collection<String> manyStringValues;
+ private Collection<Integer> manyIntegerValues;
+ private String zProperty;
+ private String fProperty;
+
+ @Property(name="xpath")
+ public void setZProperty(final String value) {
+ this.zProperty = value;
+ }
+
+ @Property(name="foobar")
+ public void setManyStringValues(final Collection<String> value) {
+ this.manyStringValues = value;
+ }
+
+ @Property(name="fooInts")
+ public void setManyIntegers(final Collection<Integer> value) {
+ this.manyIntegerValues = value;
+ }
+
+ @Property
+ public void setA(final String A) {
+ this.aProperty = A;
+ }
+
+ @Property
+ public void setB(final String B) {
+ this.bProperty = B;
+ }
+
+ @Property
+ public void setF(final String F) {
+ this.fProperty = F;
+ }
+
+ @Property
+ public void setOne(final int value) {
+ this.intValue = value;
+ }
+
+ public String getA() {
+ return this.aProperty;
+ }
+
+ public String getB() {
+ return this.bProperty;
+ }
+
+ public int getIntValue() {
+ return this.intValue;
+ }
+
+ public String getZ() {
+ return this.zProperty;
+ }
+
+ public String getF() {
+ return this.fProperty;
+ }
+
+ public Collection<String> getManyStringValues() {
+ return manyStringValues;
+ }
+
+ public Collection<Integer> getManyIntegers() {
+ return manyIntegerValues;
+ }
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponent.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponent.java
new file mode 100644
index 0000000000..cd3046c62c
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponent.java
@@ -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 java.util.Collection;
+
+public interface CDComponent {
+
+ String getC();
+ String getC2();
+ String getD();
+ String getNoSource();
+ String getFileProperty();
+ Collection<String> getManyValuesFileProperty();
+ int getOverrideValue();
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponentImpl.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponentImpl.java
new file mode 100644
index 0000000000..aec71d30f9
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/CDComponentImpl.java
@@ -0,0 +1,97 @@
+/*
+ * 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 java.util.Collection;
+
+import org.osoa.sca.annotations.Property;
+
+public class CDComponentImpl implements CDComponent {
+
+ private String cProperty;
+ private String dProperty;
+ private String nosource;
+ private String fileProperty;
+ private Collection<String> manyValuesFileProperty;
+ private int overrideNumber;
+ private String cProperty2;
+
+ @Property(name="nonFileProperty")
+ public void setC2(final String value) {
+ this.cProperty2 = value;
+ }
+ @Property(name="two")
+ public void setOverrideNumber(final int value) {
+ this.overrideNumber = value;
+ }
+
+ @Property(name="fileProperty")
+ public void setFileProp(final String value) {
+ this.fileProperty = value;
+ }
+
+ @Property(name="manyValuesFileProperty")
+ public void setFileManyValueProp(final Collection<String> values) {
+ this.manyValuesFileProperty = values;
+ }
+
+ @Property
+ public void setC(final String C) {
+ this.cProperty = C;
+ }
+
+ @Property
+ public void setD(final String D) {
+ this.dProperty = D;
+ }
+
+ @Property
+ public void setNosource(final String value) {
+ this.nosource = value;
+ }
+
+ public String getFileProperty() {
+ return this.fileProperty;
+ }
+
+ public String getC() {
+ return this.cProperty;
+ }
+
+ public String getC2() {
+ return this.cProperty2;
+ }
+
+ public String getD() {
+ return this.dProperty;
+ }
+
+ public String getNoSource() {
+ return this.nosource;
+ }
+
+ public int getOverrideValue() {
+ return this.overrideNumber;
+ }
+ public Collection<String> getManyValuesFileProperty() {
+ return this.manyValuesFileProperty;
+ }
+}
+
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ComplexPropertyBean.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ComplexPropertyBean.java
new file mode 100644
index 0000000000..1f3e4a0a41
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/ComplexPropertyBean.java
@@ -0,0 +1,69 @@
+package org.apache.tuscany.sca.itest;
+
+public class ComplexPropertyBean {
+
+ protected int integerNumber = 25;
+ public float floatNumber = 50;
+ public double doubleNumber = 75;
+ public int[] intArray = null;
+ public double[] doubleArray = null;
+ protected String[] stringArray = null;
+
+ ComplexPropertyBean numberSet;
+ public ComplexPropertyBean[] numberSetArray = null;
+
+ public ComplexPropertyBean() {
+
+ }
+
+ public double getDoubleNumber() {
+ return doubleNumber;
+ }
+
+ public void setDoubleNumber(double doubleNumber) {
+ this.doubleNumber = doubleNumber;
+ }
+
+ public float getFloatNumber() {
+ return floatNumber;
+ }
+
+ public void setFloatNumber(float floatNumber) {
+ this.floatNumber = floatNumber;
+ }
+
+ public int getIntegerNumber() {
+ return integerNumber;
+ }
+
+ public void setIntegerNumber(int integerNumber) {
+ this.integerNumber = integerNumber;
+ }
+
+ public ComplexPropertyBean getNumberSet() {
+ return numberSet;
+ }
+
+ public void setNumberSet(ComplexPropertyBean numberSet) {
+ this.numberSet = numberSet;
+ }
+
+ public String toString() {
+ return Double.toString(integerNumber) + " - " +
+ Double.toString(floatNumber) + " - " +
+ Double.toString(doubleNumber) + " \n" +
+ ((intArray == null ) ? "no int array" : intArray[0] + " - " + intArray[1] + " \n " ) +
+ ((doubleArray == null ) ? "no double array" : doubleArray[0] + " - " + doubleArray[1] + " \n " ) +
+ ((stringArray == null ) ? "no string array" : stringArray[0] + " - " + stringArray[1] + " \n " ) +
+ ((numberSetArray == null ) ? "no numberset array" : numberSetArray[0] + " - " + numberSetArray[1] + " \n " ) +
+ ((numberSet == null ) ? "" : numberSet.toString());
+ }
+
+ public String[] getStringArray() {
+ return stringArray;
+ }
+
+ public void setStringArray(String[] stringArray) {
+ this.stringArray = stringArray;
+ }
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideService.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideService.java
new file mode 100644
index 0000000000..116cdef48f
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideService.java
@@ -0,0 +1,25 @@
+
+/*
+ * 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;
+
+public interface OverrideService {
+
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideServiceImpl.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideServiceImpl.java
new file mode 100644
index 0000000000..a36bb5e419
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/OverrideServiceImpl.java
@@ -0,0 +1,24 @@
+/*
+ * 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;
+
+public class OverrideServiceImpl implements OverrideService {
+
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponent.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponent.java
new file mode 100644
index 0000000000..a76f17bcad
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponent.java
@@ -0,0 +1,32 @@
+/*
+ * 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 java.util.Collection;
+
+
+public interface PropertyComponent {
+ public String getLocation();
+ public String getYear();
+ public ComplexPropertyBean getComplexPropertyOne();
+ public ComplexPropertyBean getComplexPropertyTwo();
+ public ComplexPropertyBean getComplexPropertyThree();
+ public Collection<ComplexPropertyBean> getComplexPropertyFour();
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponentImpl.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponentImpl.java
new file mode 100644
index 0000000000..be99611dfa
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyComponentImpl.java
@@ -0,0 +1,72 @@
+/*
+ * 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 java.util.Collection;
+
+import org.osoa.sca.annotations.Property;
+
+public class PropertyComponentImpl implements PropertyComponent {
+ @Property
+ protected ComplexPropertyBean complexPropertyOne;
+
+ @Property
+ protected ComplexPropertyBean complexPropertyTwo;
+
+ @Property
+ protected ComplexPropertyBean complexPropertyThree;
+
+ @Property
+ protected Collection<ComplexPropertyBean> complexPropertyFour;
+
+ @Property(name = "location")
+ protected String location = "RTP";
+
+ @Property(name = "year")
+ protected String year = "2006";
+
+ public String getLocation(){
+ return location;
+ }
+
+ public String getYear(){
+ return year;
+ }
+
+ public ComplexPropertyBean getComplexPropertyOne() {
+ //System.out.println(complexPropertyOne);
+ return complexPropertyOne;
+ }
+
+ public ComplexPropertyBean getComplexPropertyTwo() {
+ //System.out.println(complexPropertyTwo);
+ return complexPropertyTwo;
+ }
+
+ public ComplexPropertyBean getComplexPropertyThree() {
+ //System.out.println(complexPropertyThree);
+ return complexPropertyThree;
+ }
+
+ public Collection<ComplexPropertyBean> getComplexPropertyFour() {
+ //System.out.println(complexPropertyThree);
+ return complexPropertyFour;
+ }
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyService.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyService.java
new file mode 100644
index 0000000000..f20d295a06
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/java/org/apache/tuscany/sca/itest/PropertyService.java
@@ -0,0 +1,24 @@
+/*
+ * 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;
+
+public interface PropertyService {
+
+}
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/PropertyTest.composite b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/PropertyTest.composite
new file mode 100644
index 0000000000..e48a8cc606
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/PropertyTest.composite
@@ -0,0 +1,197 @@
+<?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:foo="http://foo"
+ name="PropertyTest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <property name="number" type="xsd:int">1</property>
+ <property name="complex" type="foo:MyComplexType" >
+ <foo:MyComplexValue xsi:type="foo:MyComplexType" >
+ <foo:a>a</foo:a>
+ <foo:b>b</foo:b>
+ <foo:c>c</foo:c>
+ <foo:d>d</foo:d>
+ <foo:x>
+ <foo:y>y</foo:y>
+ <foo:z>z</foo:z>
+ </foo:x>
+ </foo:MyComplexValue>
+ </property>
+
+ <property name="moreComplex" type="foo:MyMoreComplexType">
+ <foo:MyMoreComplexValue xsi:type="foo:MyMoreComplexType">
+ <foo:stringArray>TestString_1</foo:stringArray>
+ <foo:stringArray>TestString_2</foo:stringArray>
+ <foo:intArray>10</foo:intArray>
+ <foo:integerNumber>27</foo:integerNumber>
+ <foo:floatNumber>79.34</foo:floatNumber>
+ <foo:doubleArray>25.52</foo:doubleArray>
+ <foo:doubleNumber>184.52</foo:doubleNumber>
+ <foo:doubleArray>50.05</foo:doubleArray>
+ <foo:intArray>20</foo:intArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>1</foo:integerNumber>
+ <foo:floatNumber>11</foo:floatNumber>
+ <foo:doubleNumber>111</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>2</foo:integerNumber>
+ <foo:floatNumber>22</foo:floatNumber>
+ <foo:doubleNumber>222</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSet>
+ <foo:integerNumber>54</foo:integerNumber>
+ <foo:floatNumber>158.68</foo:floatNumber>
+ <foo:doubleNumber>369.04</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:MyMoreComplexValue>
+ </property>
+
+ <component name="ABCDComponent">
+ <implementation.java class="org.apache.tuscany.sca.itest.ABCDComponentImpl"/>
+ <reference name="ab" target="ABComponent"></reference>
+ <reference name="cd" target="CDComponent"></reference>
+ </component>
+
+ <component name="ABComponent">
+ <implementation.java class="org.apache.tuscany.sca.itest.ABComponentImpl"/>
+ <property name="a" source="$complex/foo:MyComplexValue/foo:a"/>
+ <property name="b" source="$complex/foo:MyComplexValue/foo:b"/>
+ <property name="f" source="$complex/foo:MyComplexValue/foo:a">f</property>
+ <property name="xpath" source="$complex/foo:MyComplexValue/foo:x/*[local-name()='z']"/>
+ <property name="one" source="$number"/>
+ <property name="foobar">
+ <value>Apache</value>
+ <value>Tuscany</value>
+ <value>Java SCA</value>
+ </property>
+ <property name="fooInts">
+ <value>123</value>
+ <value>456</value>
+ <value>789</value>
+ </property>
+ </component>
+
+
+ <component name="CDComponent">
+ <implementation.java class="org.apache.tuscany.sca.itest.CDComponentImpl"/>
+ <property name="c" source="$complex/foo:MyComplexValue/foo:c"/>
+ <property name="d" source="$complex/foo:MyComplexValue/foo:d"/>
+ <property name="nosource">aValue</property>
+ <property name="fileProperty" file="fileProperty.txt"/>
+ <property name="manyValuesFileProperty" file="manyValuesFileProperty.txt"/>
+ <property name="nonFileProperty" file="fileProperty.txt" source="$complex/foo:MyComplexValue/foo:c"/>
+ <property name="two" source="$number">2</property>
+ </component>
+
+ <component name="PropertyComponent">
+ <implementation.java class="org.apache.tuscany.sca.itest.PropertyComponentImpl"/>
+ <property name="complexPropertyOne" source="$moreComplex"></property>
+ <property name="complexPropertyTwo">
+ <foo:MyAnotherComplexValue>
+ <foo:stringArray>TestString_1</foo:stringArray>
+ <foo:stringArray>TestString_2</foo:stringArray>
+ <foo:intArray>10</foo:intArray>
+ <foo:integerNumber>27</foo:integerNumber>
+ <foo:floatNumber>79.34</foo:floatNumber>
+ <foo:doubleArray>25.52</foo:doubleArray>
+ <foo:doubleNumber>184.52</foo:doubleNumber>
+ <foo:doubleArray>50.05</foo:doubleArray>
+ <foo:intArray>20</foo:intArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>1</foo:integerNumber>
+ <foo:floatNumber>11</foo:floatNumber>
+ <foo:doubleNumber>111</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>2</foo:integerNumber>
+ <foo:floatNumber>22</foo:floatNumber>
+ <foo:doubleNumber>222</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSet>
+ <foo:integerNumber>54</foo:integerNumber>
+ <foo:floatNumber>158.68</foo:floatNumber>
+ <foo:doubleNumber>369.04</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:MyAnotherComplexValue>
+ </property>
+ <property name="complexPropertyThree" element="foo:PropertyThreeElement">
+ <foo:PropertyThreeElement>
+ <foo:stringArray>TestElementString_1</foo:stringArray>
+ <foo:stringArray>TestElementString_2</foo:stringArray>
+ <foo:intArray>10</foo:intArray>
+ <foo:integerNumber>27</foo:integerNumber>
+ <foo:floatNumber>79.34</foo:floatNumber>
+ <foo:doubleArray>25.52</foo:doubleArray>
+ <foo:doubleNumber>184.52</foo:doubleNumber>
+ <foo:doubleArray>50.05</foo:doubleArray>
+ <foo:intArray>20</foo:intArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>1</foo:integerNumber>
+ <foo:floatNumber>11</foo:floatNumber>
+ <foo:doubleNumber>111</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSetArray>
+ <foo:integerNumber>2</foo:integerNumber>
+ <foo:floatNumber>22</foo:floatNumber>
+ <foo:doubleNumber>222</foo:doubleNumber>
+ </foo:numberSetArray>
+ <foo:numberSet>
+ <foo:integerNumber>54</foo:integerNumber>
+ <foo:floatNumber>158.68</foo:floatNumber>
+ <foo:doubleNumber>369.04</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:PropertyThreeElement>
+ </property>
+ <property name="complexPropertyFour" element="foo:PropertyFourElement" >
+ <foo:PropertyFourElement>
+ <foo:integerNumber>1</foo:integerNumber>
+ <foo:floatNumber>11.11</foo:floatNumber>
+ <foo:doubleNumber>111.111</foo:doubleNumber>
+ <foo:numberSet>
+ <foo:integerNumber>11</foo:integerNumber>
+ <foo:floatNumber>1111.1111</foo:floatNumber>
+ <foo:doubleNumber>11111.11111</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:PropertyFourElement>
+ <foo:PropertyFourElement>
+ <foo:integerNumber>2</foo:integerNumber>
+ <foo:floatNumber>22.22</foo:floatNumber>
+ <foo:doubleNumber>222.222</foo:doubleNumber>
+ <foo:numberSet>
+ <foo:integerNumber>22</foo:integerNumber>
+ <foo:floatNumber>2222.2222</foo:floatNumber>
+ <foo:doubleNumber>22222.22222</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:PropertyFourElement>
+ <foo:PropertyFourElement>
+ <foo:integerNumber>3</foo:integerNumber>
+ <foo:floatNumber>33.33</foo:floatNumber>
+ <foo:doubleNumber>333.333</foo:doubleNumber>
+ <foo:numberSet>
+ <foo:integerNumber>33</foo:integerNumber>
+ <foo:floatNumber>3333.3333</foo:floatNumber>
+ <foo:doubleNumber>33333.33333</foo:doubleNumber>
+ </foo:numberSet>
+ </foo:PropertyFourElement>
+ </property>
+ </component>
+</composite>
+
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/fileProperty.txt b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/fileProperty.txt
new file mode 100644
index 0000000000..c530ae892d
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/fileProperty.txt
@@ -0,0 +1 @@
+<filePropertyTest>fileValue</filePropertyTest>
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/manyValuesFileProperty.txt b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/manyValuesFileProperty.txt
new file mode 100644
index 0000000000..328b9b3767
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/main/resources/manyValuesFileProperty.txt
@@ -0,0 +1,6 @@
+<manyFilePropertyValues>
+ <value>fileValueOne</value>
+ <value>fileValueTwo</value>
+ <value>fileValueThree</value>
+ <value>fileValueFour</value>
+</manyFilePropertyValues>
diff --git a/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/test/java/org/apache/tuscany/sca/itest/PropertyTestCase.java b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/test/java/org/apache/tuscany/sca/itest/PropertyTestCase.java
new file mode 100644
index 0000000000..e72cdd24bf
--- /dev/null
+++ b/sca-java-1.x/branches/sca-java-integration/testing/sca/itest/property/src/test/java/org/apache/tuscany/sca/itest/PropertyTestCase.java
@@ -0,0 +1,186 @@
+/*
+ * 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 static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+
+import java.util.Iterator;
+
+import org.apache.tuscany.api.SCARuntime;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osoa.sca.CurrentCompositeContext;
+
+public class PropertyTestCase {
+ private static ABComponent abService;
+ private static CDComponent cdService;
+ private static ABCDComponent abcdService;
+ private static PropertyComponent propertyService;
+
+ @Test
+ public void testA() {
+ assertEquals("a", abService.getA());
+ }
+
+ @Test
+ public void testB() {
+ assertEquals("b", abService.getB());
+ }
+
+ @Test
+ public void testC() {
+ assertEquals("c", cdService.getC());
+ }
+
+ @Test
+ public void testC2() {
+ assertEquals("c", cdService.getC2());
+ }
+
+ @Test
+ public void testD() {
+ assertEquals("d", cdService.getD());
+ }
+
+ @Test
+ public void testF() {
+ assertEquals("a", abService.getF());
+ }
+
+ @Test
+ public void testZ() {
+ assertEquals("z", abService.getZ());
+ }
+
+ @Test
+ public void testIntValue() {
+ assertEquals(1, abService.getIntValue());
+ }
+
+ @Test
+ public void testDefaultValue() {
+ assertEquals(1, abService.getIntValue());
+ }
+
+ @Test
+ public void testDefaultValueOverride() {
+ assertEquals(1, cdService.getOverrideValue());
+ }
+
+ @Test
+ public void testNoSource() {
+ assertEquals("aValue", cdService.getNoSource());
+ }
+
+ @Test
+ public void testFileProperty() {
+ assertEquals("fileValue", cdService.getFileProperty());
+ }
+
+ @Test
+ public void testManyValuesFileProperty() {
+ Iterator<String> iterator = cdService.getManyValuesFileProperty().iterator();
+ iterator.next();
+ String secondValue = iterator.next();
+ assertEquals(4, cdService.getManyValuesFileProperty().size());
+ assertEquals("fileValueTwo", secondValue);
+ }
+
+ @Test
+ public void testABCD() {
+ assertEquals("a", abcdService.getA());
+ assertEquals("b", abcdService.getB());
+ assertEquals("c", abcdService.getC());
+ assertEquals("d", abcdService.getD());
+ }
+
+ @Test
+ public void testDefaultProperty() {
+ assertEquals("RTP", propertyService.getLocation());
+ assertEquals("2006", propertyService.getYear());
+
+ }
+
+ @Test
+ public void testManySimpleStringValues() {
+ Iterator<String> iterator = abService.getManyStringValues().iterator();
+ assertEquals("Apache", iterator.next());
+ assertEquals("Tuscany", iterator.next());
+ assertEquals("Java SCA", iterator.next());
+ }
+
+ @Test
+ public void testManySimpleIntegerValues() {
+ Iterator<Integer> iterator = abService.getManyIntegers().iterator();
+ assertEquals(123, iterator.next().intValue());
+ assertEquals(456, iterator.next().intValue());
+ assertEquals(789, iterator.next().intValue());
+ }
+
+ @Test
+ public void testComplexPropertyOne() {
+ ComplexPropertyBean propBean = propertyService.getComplexPropertyOne();
+ assertNotNull(propBean);
+ assertEquals("TestString_1", propBean.getStringArray()[0]);
+ assertEquals(2, propBean.numberSetArray[1].integerNumber);
+ }
+
+ @Test
+ public void testComplexPropertyTwo() {
+ ComplexPropertyBean propBean = propertyService.getComplexPropertyTwo();
+ assertNotNull(propBean);
+ assertEquals(10, propBean.intArray[0]);
+ assertEquals((float)22, propBean.numberSetArray[1].floatNumber);
+ }
+
+ @Test
+ public void testComplexPropertyThree() {
+ ComplexPropertyBean propBean = propertyService.getComplexPropertyThree();
+ assertNotNull(propBean);
+ assertEquals("TestElementString_1", propBean.stringArray[0]);
+ assertEquals((float)22, propBean.numberSetArray[1].floatNumber);
+ }
+
+ @Test
+ public void testComplexPropertyFour() {
+ Object[] propBeanCollection = propertyService.getComplexPropertyFour().toArray();
+ assertNotNull(propBeanCollection);
+ assertEquals(1, ((ComplexPropertyBean)propBeanCollection[0]).getIntegerNumber());
+ assertEquals(222.222, ((ComplexPropertyBean)propBeanCollection[1]).getDoubleNumber());
+ assertEquals(33, ((ComplexPropertyBean)propBeanCollection[2]).getNumberSet().getIntegerNumber());
+ }
+
+ @BeforeClass
+ public static void init() throws Exception {
+ SCARuntime.start("PropertyTest.composite");
+ abService = CurrentCompositeContext.getContext().locateService(ABComponent.class, "ABComponent");
+ cdService = CurrentCompositeContext.getContext().locateService(CDComponent.class, "CDComponent");
+ abcdService = CurrentCompositeContext.getContext().locateService(ABCDComponent.class, "ABCDComponent");
+ propertyService =
+ CurrentCompositeContext.getContext().locateService(PropertyComponent.class, "PropertyComponent");
+ }
+
+ @AfterClass
+ public static void destroy() throws Exception {
+ SCARuntime.stop();
+ }
+}