diff options
Diffstat (limited to 'branches/sca-java-integration/sca/kernel/spi/src')
311 files changed, 0 insertions, 24219 deletions
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/doc/Context Model.emx b/branches/sca-java-integration/sca/kernel/spi/src/doc/Context Model.emx deleted file mode 100644 index 0445ea5a6b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/doc/Context Model.emx +++ /dev/null @@ -1,673 +0,0 @@ -<?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.
--->
-<!--xtools2_universal_type_manager-->
-<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.ibm.com/xtools/1.5.0/Notation" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmlns:umlnotation="http://www.ibm.com/xtools/1.5.0/Umlnotation" xmi:id="_al1S8NovEdqRBPR5WyT36A" name="Context Model" appliedProfile="_al1S9NovEdqRBPR5WyT36A _al1S99ovEdqRBPR5WyT36A _al1S-tovEdqRBPR5WyT36A _al1S_dovEdqRBPR5WyT36A _al1TANovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1S8dovEdqRBPR5WyT36A" source="uml2.diagrams" references="_al1S8tovEdqRBPR5WyT36A">
- <contents xmi:type="notation:Diagram" xmi:id="_al1S8tovEdqRBPR5WyT36A" type="Class" name="Main">
- <children xmi:id="_ePDcYdovEdqRBPR5WyT36A" sourceEdges="_Fd3lQdowEdqRBPR5WyT36A _R5Rjwdo1EdqRBPR5WyT36A _pdfmkNo2EdqRBPR5WyT36A" targetEdges="_hmIF4dovEdqRBPR5WyT36A _mu9A4dovEdqRBPR5WyT36A _pe3jwNovEdqRBPR5WyT36A" element="_ePDcYNovEdqRBPR5WyT36A">
- <children xmi:id="_ePJjANovEdqRBPR5WyT36A" type="ImageCompartment" element="_ePDcYNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_ePJjAdovEdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_ePJjAtovEdqRBPR5WyT36A" type="Stereotype" element="_ePDcYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ePJjA9ovEdqRBPR5WyT36A" type="Kind" element="_ePDcYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ePJjBNovEdqRBPR5WyT36A" type="Name" element="_ePDcYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ePJjBdovEdqRBPR5WyT36A" type="AttributeCompartment" element="_ePDcYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ePJjBtovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_ePJjB9ovEdqRBPR5WyT36A" type="OperationCompartment" element="_ePDcYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ePJjCNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_ePJjCdovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_ePDcYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ePJjCtovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_ePDcYtovEdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ePDcY9ovEdqRBPR5WyT36A" x="6693" y="3545"/>
- </children>
- <children xmi:id="_fs1pANovEdqRBPR5WyT36A" sourceEdges="_hmIF4dovEdqRBPR5WyT36A _pe3jwNovEdqRBPR5WyT36A" targetEdges="_xInjYdovEdqRBPR5WyT36A" element="_fsviYNovEdqRBPR5WyT36A">
- <children xmi:id="_fs1pA9ovEdqRBPR5WyT36A" type="ImageCompartment" element="_fsviYNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_fs1pBNovEdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_fs1pBdovEdqRBPR5WyT36A" type="Stereotype" element="_fsviYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_fs1pBtovEdqRBPR5WyT36A" type="Kind" element="_fsviYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_fs1pB9ovEdqRBPR5WyT36A" type="Name" element="_fsviYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_fs1pCNovEdqRBPR5WyT36A" type="AttributeCompartment" element="_fsviYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_fs1pCdovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_fs1pCtovEdqRBPR5WyT36A" type="OperationCompartment" element="_fsviYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_fs1pC9ovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_fs1pDNovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_fsviYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_fs1pDdovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_fs1pAdovEdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fs1pAtovEdqRBPR5WyT36A" x="2226" y="8268"/>
- </children>
- <children xmi:id="_ikr_4NovEdqRBPR5WyT36A" sourceEdges="_mu9A4dovEdqRBPR5WyT36A" element="_ikl5QNovEdqRBPR5WyT36A">
- <children xmi:id="_ikr_49ovEdqRBPR5WyT36A" type="ImageCompartment" element="_ikl5QNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_ikr_5NovEdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_ikr_5dovEdqRBPR5WyT36A" type="Stereotype" element="_ikl5QNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ikr_5tovEdqRBPR5WyT36A" type="Kind" element="_ikl5QNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ikr_59ovEdqRBPR5WyT36A" type="Name" element="_ikl5QNovEdqRBPR5WyT36A"/>
- <children xmi:id="_ikr_6NovEdqRBPR5WyT36A" type="AttributeCompartment" element="_ikl5QNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ikr_6dovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_ikr_6tovEdqRBPR5WyT36A" type="OperationCompartment" element="_ikl5QNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ikr_69ovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_ikr_7NovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_ikl5QNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_ikr_7dovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_ikr_4dovEdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ikr_4tovEdqRBPR5WyT36A" x="9222" y="8268"/>
- </children>
- <children xmi:id="_tZF9odovEdqRBPR5WyT36A" sourceEdges="_xInjYdovEdqRBPR5WyT36A _BkUg0dowEdqRBPR5WyT36A" element="_tZF9oNovEdqRBPR5WyT36A">
- <children xmi:id="_tZF9pNovEdqRBPR5WyT36A" type="ImageCompartment" element="_tZF9oNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_tZF9pdovEdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_tZF9ptovEdqRBPR5WyT36A" type="Stereotype" element="_tZF9oNovEdqRBPR5WyT36A"/>
- <children xmi:id="_tZF9p9ovEdqRBPR5WyT36A" type="Kind" element="_tZF9oNovEdqRBPR5WyT36A"/>
- <children xmi:id="_tZF9qNovEdqRBPR5WyT36A" type="Name" element="_tZF9oNovEdqRBPR5WyT36A"/>
- <children xmi:id="_tZF9qdovEdqRBPR5WyT36A" type="AttributeCompartment" element="_tZF9oNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_tZF9qtovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_tZF9q9ovEdqRBPR5WyT36A" type="OperationCompartment" element="_tZF9oNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_tZF9rNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_tZF9rdovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_tZF9oNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_tZF9rtovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_tZF9otovEdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tZF9o9ovEdqRBPR5WyT36A" x="2226" y="12084"/>
- </children>
- <children xmi:id="_z_m-oNovEdqRBPR5WyT36A" sourceEdges="_cN4xsdo2EdqRBPR5WyT36A" targetEdges="_3Ic-4NovEdqRBPR5WyT36A _9XeF4tovEdqRBPR5WyT36A _Fd3lQdowEdqRBPR5WyT36A" element="_z_g4ANovEdqRBPR5WyT36A">
- <children xmi:id="_z_m-o9ovEdqRBPR5WyT36A" type="ImageCompartment" element="_z_g4ANovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_z_m-pNovEdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_z_m-pdovEdqRBPR5WyT36A" type="Stereotype" element="_z_g4ANovEdqRBPR5WyT36A"/>
- <children xmi:id="_z_m-ptovEdqRBPR5WyT36A" type="Kind" element="_z_g4ANovEdqRBPR5WyT36A"/>
- <children xmi:id="_z_m-p9ovEdqRBPR5WyT36A" type="Name" element="_z_g4ANovEdqRBPR5WyT36A"/>
- <children xmi:id="_z_m-qNovEdqRBPR5WyT36A" type="AttributeCompartment" element="_z_g4ANovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_z_m-qdovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_z_m-qtovEdqRBPR5WyT36A" type="OperationCompartment" element="_z_g4ANovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_z_m-q9ovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_z_m-rNovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_z_g4ANovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_z_m-rdovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_z_m-odovEdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z_m-otovEdqRBPR5WyT36A" x="17172" y="6996"/>
- </children>
- <children xmi:id="_1y-ZsNovEdqRBPR5WyT36A" sourceEdges="_3Ic-4NovEdqRBPR5WyT36A _9-BEUNo2EdqRBPR5WyT36A" targetEdges="_BkUg0dowEdqRBPR5WyT36A" element="_1yyMcNovEdqRBPR5WyT36A">
- <children xmi:id="_1y-Zs9ovEdqRBPR5WyT36A" type="ImageCompartment" element="_1yyMcNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_1y-ZtNovEdqRBPR5WyT36A" width="1320" height="1320"/>
- </children>
- <children xmi:id="_1y-ZtdovEdqRBPR5WyT36A" type="Stereotype" element="_1yyMcNovEdqRBPR5WyT36A"/>
- <children xmi:id="_1y-ZttovEdqRBPR5WyT36A" type="Name" element="_1yyMcNovEdqRBPR5WyT36A"/>
- <children xmi:id="_1y-Zt9ovEdqRBPR5WyT36A" type="AttributeCompartment" element="_1yyMcNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1y-ZuNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_1y-ZudovEdqRBPR5WyT36A" type="OperationCompartment" element="_1yyMcNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1y-ZutovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_1y-Zu9ovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_1yyMcNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1y-ZvNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_1y-ZvdovEdqRBPR5WyT36A" visible="false" type="StructureCompartment" element="_1yyMcNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_1y-ZvtovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_1y-ZsdovEdqRBPR5WyT36A" showStereotype="Label"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1y-ZstovEdqRBPR5WyT36A" x="13992" y="12084"/>
- </children>
- <children xmi:id="_4WSrANovEdqRBPR5WyT36A" sourceEdges="_9XeF4tovEdqRBPR5WyT36A _9PaR4No2EdqRBPR5WyT36A" element="_4WMkYNovEdqRBPR5WyT36A">
- <children xmi:id="_4WSrA9ovEdqRBPR5WyT36A" type="ImageCompartment" element="_4WMkYNovEdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_4WSrBNovEdqRBPR5WyT36A" width="1320" height="1320"/>
- </children>
- <children xmi:id="_4WSrBdovEdqRBPR5WyT36A" type="Stereotype" element="_4WMkYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_4WSrBtovEdqRBPR5WyT36A" type="Name" element="_4WMkYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_4WSrB9ovEdqRBPR5WyT36A" type="AttributeCompartment" element="_4WMkYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4WSrCNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_4WSrCdovEdqRBPR5WyT36A" type="OperationCompartment" element="_4WMkYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4WSrCtovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_4WSrC9ovEdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_4WMkYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4WSrDNovEdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_4WSrDdovEdqRBPR5WyT36A" visible="false" type="StructureCompartment" element="_4WMkYNovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_4WSrDtovEdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_4WSrAdovEdqRBPR5WyT36A" showStereotype="Label"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4WSrAtovEdqRBPR5WyT36A" x="19716" y="12084"/>
- </children>
- <children xmi:id="_o2m3oNo0EdqRBPR5WyT36A" targetEdges="_9PaR4No2EdqRBPR5WyT36A _9-BEUNo2EdqRBPR5WyT36A" element="_o2gxANo0EdqRBPR5WyT36A">
- <children xmi:id="_o2m3o9o0EdqRBPR5WyT36A" type="ImageCompartment" element="_o2gxANo0EdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_o2m3pNo0EdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_o2m3pdo0EdqRBPR5WyT36A" type="Stereotype" element="_o2gxANo0EdqRBPR5WyT36A"/>
- <children xmi:id="_o2m3pto0EdqRBPR5WyT36A" type="Kind" element="_o2gxANo0EdqRBPR5WyT36A"/>
- <children xmi:id="_o2m3p9o0EdqRBPR5WyT36A" type="Name" element="_o2gxANo0EdqRBPR5WyT36A"/>
- <children xmi:id="_o2m3qNo0EdqRBPR5WyT36A" type="AttributeCompartment" element="_o2gxANo0EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_o2m3qdo0EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_o2m3qto0EdqRBPR5WyT36A" type="OperationCompartment" element="_o2gxANo0EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_o2m3q9o0EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_o2m3rNo0EdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_o2gxANo0EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_o2m3rdo0EdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_o2m3odo0EdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o2m3oto0EdqRBPR5WyT36A" x="23532" y="6996"/>
- </children>
- <children xmi:id="_M0FLkNo1EdqRBPR5WyT36A" targetEdges="_R5Rjwdo1EdqRBPR5WyT36A _V7zlEdo1EdqRBPR5WyT36A" element="_Mz_E8No1EdqRBPR5WyT36A">
- <children xmi:id="_M0FLk9o1EdqRBPR5WyT36A" type="ImageCompartment" element="_Mz_E8No1EdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_M0FLlNo1EdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_M0FLldo1EdqRBPR5WyT36A" type="Stereotype" element="_Mz_E8No1EdqRBPR5WyT36A"/>
- <children xmi:id="_M0FLlto1EdqRBPR5WyT36A" type="Kind" element="_Mz_E8No1EdqRBPR5WyT36A"/>
- <children xmi:id="_M0FLl9o1EdqRBPR5WyT36A" type="Name" element="_Mz_E8No1EdqRBPR5WyT36A"/>
- <children xmi:id="_M0FLmNo1EdqRBPR5WyT36A" type="AttributeCompartment" element="_Mz_E8No1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M0FLmdo1EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_M0FLmto1EdqRBPR5WyT36A" type="OperationCompartment" element="_Mz_E8No1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M0FLm9o1EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_M0FLnNo1EdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_Mz_E8No1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M0FLndo1EdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_M0FLkdo1EdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M0FLkto1EdqRBPR5WyT36A" x="6678" y="318"/>
- </children>
- <children xmi:id="_TJHbANo1EdqRBPR5WyT36A" sourceEdges="_V7zlEdo1EdqRBPR5WyT36A" targetEdges="_cN4xsdo2EdqRBPR5WyT36A" element="_TI7NwNo1EdqRBPR5WyT36A">
- <children xmi:id="_TJHbA9o1EdqRBPR5WyT36A" type="ImageCompartment" element="_TI7NwNo1EdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_TJHbBNo1EdqRBPR5WyT36A" width="530" height="530"/>
- </children>
- <children xmi:id="_TJHbBdo1EdqRBPR5WyT36A" type="Stereotype" element="_TI7NwNo1EdqRBPR5WyT36A"/>
- <children xmi:id="_TJHbBto1EdqRBPR5WyT36A" type="Kind" element="_TI7NwNo1EdqRBPR5WyT36A"/>
- <children xmi:id="_TJHbB9o1EdqRBPR5WyT36A" type="Name" element="_TI7NwNo1EdqRBPR5WyT36A"/>
- <children xmi:id="_TJHbCNo1EdqRBPR5WyT36A" type="AttributeCompartment" element="_TI7NwNo1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_TJHbCdo1EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_TJHbCto1EdqRBPR5WyT36A" type="OperationCompartment" element="_TI7NwNo1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_TJHbC9o1EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_TJHbDNo1EdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_TI7NwNo1EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_TJHbDdo1EdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_TJHbAdo1EdqRBPR5WyT36A" showStereotype="Label" useClassifierShape="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TJHbAto1EdqRBPR5WyT36A" x="16854" y="318"/>
- </children>
- <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_al1S89ovEdqRBPR5WyT36A"/>
- <edges xmi:id="_hmIF4dovEdqRBPR5WyT36A" element="_hmIF4NovEdqRBPR5WyT36A" source="_fs1pANovEdqRBPR5WyT36A" target="_ePDcYdovEdqRBPR5WyT36A">
- <children xmi:id="_hmIF5NovEdqRBPR5WyT36A" type="NameLabel" element="_hmIF4NovEdqRBPR5WyT36A">
- <children xmi:id="_hmIF5tovEdqRBPR5WyT36A" type="Stereotype" element="_hmIF4NovEdqRBPR5WyT36A"/>
- <children xmi:id="_hmIF59ovEdqRBPR5WyT36A" type="Name" element="_hmIF4NovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_hmIF5dovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_hmIF4tovEdqRBPR5WyT36A" routing="Tree" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hmIF49ovEdqRBPR5WyT36A" points="[26, -31, -110, 148]$[140, -148, 4, 31]"/>
- </edges>
- <edges xmi:id="_mu9A4dovEdqRBPR5WyT36A" element="_mu9A4NovEdqRBPR5WyT36A" source="_ikr_4NovEdqRBPR5WyT36A" target="_ePDcYdovEdqRBPR5WyT36A">
- <children xmi:id="_mu9A5NovEdqRBPR5WyT36A" type="NameLabel" element="_mu9A4NovEdqRBPR5WyT36A">
- <children xmi:id="_mu9A5tovEdqRBPR5WyT36A" type="Stereotype" element="_mu9A4NovEdqRBPR5WyT36A"/>
- <children xmi:id="_mu9A59ovEdqRBPR5WyT36A" type="Name" element="_mu9A4NovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_mu9A5dovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_mu9A4tovEdqRBPR5WyT36A" routing="Tree" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mu9A49ovEdqRBPR5WyT36A" points="[-185, -820, 2937, 3916]$[-185, -3042, 2937, 1694]$[-3255, -3042, -133, 1694]$[-3255, -3916, -133, 820]"/>
- </edges>
- <edges xmi:id="_pe3jwNovEdqRBPR5WyT36A" element="_peM1YNovEdqRBPR5WyT36A" source="_fs1pANovEdqRBPR5WyT36A" target="_ePDcYdovEdqRBPR5WyT36A">
- <children xmi:id="_pe3jw9ovEdqRBPR5WyT36A" type="NameLabel" element="_peM1YNovEdqRBPR5WyT36A">
- <children xmi:id="_pe3jxdovEdqRBPR5WyT36A" type="Stereotype" element="_peM1YNovEdqRBPR5WyT36A"/>
- <children xmi:id="_pe3jxtovEdqRBPR5WyT36A" type="Name" element="_peM1YNovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3jxNovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_pe3jx9ovEdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_peM1YtovEdqRBPR5WyT36A">
- <children xmi:id="_pe3jydovEdqRBPR5WyT36A" type="ToMultiplicity" element="_peM1YtovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3jyNovEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_pe3jytovEdqRBPR5WyT36A" type="ToRoleLabel" element="_peM1YtovEdqRBPR5WyT36A">
- <children xmi:id="_pe3jzNovEdqRBPR5WyT36A" type="ToRole" element="_peM1YtovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3jy9ovEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_pe3jzdovEdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_peM1YdovEdqRBPR5WyT36A">
- <children xmi:id="_pe3jz9ovEdqRBPR5WyT36A" type="FromMultiplicity" element="_peM1YdovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3jztovEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_pe3j0NovEdqRBPR5WyT36A" type="FromRoleLabel" element="_peM1YdovEdqRBPR5WyT36A">
- <children xmi:id="_pe3j0tovEdqRBPR5WyT36A" type="FromRole" element="_peM1YdovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3j0dovEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_pe3j09ovEdqRBPR5WyT36A" type="ToQualifierLabel" element="_peM1YtovEdqRBPR5WyT36A">
- <children xmi:id="_pe3j1dovEdqRBPR5WyT36A" type="QualifierCompartment" element="_peM1YtovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pe3j1tovEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3j1NovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_pe3j19ovEdqRBPR5WyT36A" type="FromQualifierLabel" element="_peM1YdovEdqRBPR5WyT36A">
- <children xmi:id="_pe3j2dovEdqRBPR5WyT36A" type="QualifierCompartment" element="_peM1YdovEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pe3j2tovEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pe3j2NovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_pe3jwdovEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pe3jwtovEdqRBPR5WyT36A" points="[-317, -820, -3916, 3916]$[-1931, -4762, -5530, -26]$[2382, -4762, -1217, -26]"/>
- </edges>
- <edges xmi:id="_xInjYdovEdqRBPR5WyT36A" element="_xInjYNovEdqRBPR5WyT36A" source="_tZF9odovEdqRBPR5WyT36A" target="_fs1pANovEdqRBPR5WyT36A">
- <children xmi:id="_xInjZNovEdqRBPR5WyT36A" type="NameLabel" element="_xInjYNovEdqRBPR5WyT36A">
- <children xmi:id="_xInjZtovEdqRBPR5WyT36A" type="Stereotype" element="_xInjYNovEdqRBPR5WyT36A"/>
- <children xmi:id="_xInjZ9ovEdqRBPR5WyT36A" type="Name" element="_xInjYNovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_xInjZdovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_xInjYtovEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xInjY9ovEdqRBPR5WyT36A" points="[-4, -31, 1, 113]$[-4, -115, 1, 29]"/>
- </edges>
- <edges xmi:id="_3Ic-4NovEdqRBPR5WyT36A" element="_3IW4QNovEdqRBPR5WyT36A" source="_1y-ZsNovEdqRBPR5WyT36A" target="_z_m-oNovEdqRBPR5WyT36A">
- <children xmi:id="_3Ic-49ovEdqRBPR5WyT36A" type="NameLabel" element="_3IW4QNovEdqRBPR5WyT36A">
- <children xmi:id="_3Ic-5dovEdqRBPR5WyT36A" type="Stereotype" element="_3IW4QNovEdqRBPR5WyT36A"/>
- <children xmi:id="_3Ic-5tovEdqRBPR5WyT36A" type="Name" element="_3IW4QNovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_3Ic-5NovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_3Ic-4dovEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Ic-4tovEdqRBPR5WyT36A" points="[6, -24, -37, 154]$[-22, -170, -65, 8]"/>
- </edges>
- <edges xmi:id="_9XeF4tovEdqRBPR5WyT36A" element="_9XeF4NovEdqRBPR5WyT36A" source="_4WSrANovEdqRBPR5WyT36A" target="_z_m-oNovEdqRBPR5WyT36A">
- <children xmi:id="_9XeF5dovEdqRBPR5WyT36A" type="NameLabel" element="_9XeF4NovEdqRBPR5WyT36A">
- <children xmi:id="_9XeF59ovEdqRBPR5WyT36A" type="Stereotype" element="_9XeF4NovEdqRBPR5WyT36A"/>
- <children xmi:id="_9XeF6NovEdqRBPR5WyT36A" type="Name" element="_9XeF4NovEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9XeF5tovEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_9XeF49ovEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9XeF5NovEdqRBPR5WyT36A" points="[-23, -23, 162, 151]$[-121, -170, 64, 4]"/>
- </edges>
- <edges xmi:id="_BkUg0dowEdqRBPR5WyT36A" element="_Bj8GUNowEdqRBPR5WyT36A" source="_tZF9odovEdqRBPR5WyT36A" target="_1y-ZsNovEdqRBPR5WyT36A">
- <children xmi:id="_BkancNowEdqRBPR5WyT36A" type="NameLabel" element="_Bj8GUNowEdqRBPR5WyT36A">
- <children xmi:id="_BkanctowEdqRBPR5WyT36A" type="Stereotype" element="_Bj8GUNowEdqRBPR5WyT36A"/>
- <children xmi:id="_Bkanc9owEdqRBPR5WyT36A" type="Name" element="_Bj8GUNowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkancdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_BkandNowEdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_Bj8GUtowEdqRBPR5WyT36A">
- <children xmi:id="_BkandtowEdqRBPR5WyT36A" type="ToMultiplicity" element="_Bj8GUtowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkanddowEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_Bkand9owEdqRBPR5WyT36A" type="ToRoleLabel" element="_Bj8GUtowEdqRBPR5WyT36A">
- <children xmi:id="_BkanedowEdqRBPR5WyT36A" type="ToRole" element="_Bj8GUtowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkaneNowEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_BkanetowEdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_Bj8GUdowEdqRBPR5WyT36A">
- <children xmi:id="_BkanfNowEdqRBPR5WyT36A" type="FromMultiplicity" element="_Bj8GUdowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Bkane9owEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_BkanfdowEdqRBPR5WyT36A" type="FromRoleLabel" element="_Bj8GUdowEdqRBPR5WyT36A">
- <children xmi:id="_Bkanf9owEdqRBPR5WyT36A" type="FromRole" element="_Bj8GUdowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkanftowEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_BkangNowEdqRBPR5WyT36A" type="ToQualifierLabel" element="_Bj8GUtowEdqRBPR5WyT36A">
- <children xmi:id="_BkangtowEdqRBPR5WyT36A" type="QualifierCompartment" element="_Bj8GUtowEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Bkang9owEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkangdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_BkanhNowEdqRBPR5WyT36A" type="FromQualifierLabel" element="_Bj8GUdowEdqRBPR5WyT36A">
- <children xmi:id="_BkanhtowEdqRBPR5WyT36A" type="QualifierCompartment" element="_Bj8GUdowEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Bkanh9owEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BkanhdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_BkUg0towEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BkUg09owEdqRBPR5WyT36A" points="[83, -24, -490, 123]$[486, -151, -87, -4]"/>
- </edges>
- <edges xmi:id="_Fd3lQdowEdqRBPR5WyT36A" element="_FdlRYNowEdqRBPR5WyT36A" source="_ePDcYdovEdqRBPR5WyT36A" target="_z_m-oNovEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lRNowEdqRBPR5WyT36A" type="NameLabel" element="_FdlRYNowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lRtowEdqRBPR5WyT36A" type="Stereotype" element="_FdlRYNowEdqRBPR5WyT36A"/>
- <children xmi:id="_Fd3lR9owEdqRBPR5WyT36A" type="Name" element="_FdlRYNowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lRdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_Fd3lSNowEdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_FdlRYtowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lStowEdqRBPR5WyT36A" type="ToMultiplicity" element="_FdlRYtowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lSdowEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_Fd3lS9owEdqRBPR5WyT36A" type="ToRoleLabel" element="_FdlRYtowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lTdowEdqRBPR5WyT36A" type="ToRole" element="_FdlRYtowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lTNowEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_Fd3lTtowEdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_FdlRYdowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lUNowEdqRBPR5WyT36A" type="FromMultiplicity" element="_FdlRYdowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lT9owEdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_Fd3lUdowEdqRBPR5WyT36A" type="FromRoleLabel" element="_FdlRYdowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lU9owEdqRBPR5WyT36A" type="FromRole" element="_FdlRYdowEdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lUtowEdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_Fd3lVNowEdqRBPR5WyT36A" type="ToQualifierLabel" element="_FdlRYtowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lVtowEdqRBPR5WyT36A" type="QualifierCompartment" element="_FdlRYtowEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fd3lV9owEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lVdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_Fd3lWNowEdqRBPR5WyT36A" type="FromQualifierLabel" element="_FdlRYdowEdqRBPR5WyT36A">
- <children xmi:id="_Fd3lWtowEdqRBPR5WyT36A" type="QualifierCompartment" element="_FdlRYdowEdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fd3lW9owEdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Fd3lWdowEdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Fd3lQtowEdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fd3lQ9owEdqRBPR5WyT36A" points="[46, -11, -369, -9]$[351, -11, -64, -9]"/>
- </edges>
- <edges xmi:id="_R5Rjwdo1EdqRBPR5WyT36A" element="_R5RjwNo1EdqRBPR5WyT36A" source="_ePDcYdovEdqRBPR5WyT36A" target="_M0FLkNo1EdqRBPR5WyT36A">
- <children xmi:id="_R5RjxNo1EdqRBPR5WyT36A" type="NameLabel" element="_R5RjwNo1EdqRBPR5WyT36A">
- <children xmi:id="_R5Rjxto1EdqRBPR5WyT36A" type="Stereotype" element="_R5RjwNo1EdqRBPR5WyT36A"/>
- <children xmi:id="_R5Rjx9o1EdqRBPR5WyT36A" type="Name" element="_R5RjwNo1EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_R5Rjxdo1EdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_R5Rjwto1EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R5Rjw9o1EdqRBPR5WyT36A" points="[-2, -31, -2, 91]$[-2, -91, -2, 31]"/>
- </edges>
- <edges xmi:id="_V7zlEdo1EdqRBPR5WyT36A" element="_V7zlENo1EdqRBPR5WyT36A" source="_TJHbANo1EdqRBPR5WyT36A" target="_M0FLkNo1EdqRBPR5WyT36A">
- <children xmi:id="_V7zlFNo1EdqRBPR5WyT36A" type="NameLabel" element="_V7zlENo1EdqRBPR5WyT36A">
- <children xmi:id="_V7zlFto1EdqRBPR5WyT36A" type="Stereotype" element="_V7zlENo1EdqRBPR5WyT36A"/>
- <children xmi:id="_V7zlF9o1EdqRBPR5WyT36A" type="Name" element="_V7zlENo1EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_V7zlFdo1EdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_V7zlEto1EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V7zlE9o1EdqRBPR5WyT36A" points="[-73, 0, 339, 0]$[-457, 0, -45, 0]"/>
- </edges>
- <edges xmi:id="_cN4xsdo2EdqRBPR5WyT36A" targetEdges="_pdfmkNo2EdqRBPR5WyT36A" element="_cNskcNo2EdqRBPR5WyT36A" source="_z_m-oNovEdqRBPR5WyT36A" target="_TJHbANo1EdqRBPR5WyT36A">
- <children xmi:id="_cN4xtNo2EdqRBPR5WyT36A" type="NameLabel" element="_cNskcNo2EdqRBPR5WyT36A">
- <children xmi:id="_cN4xtto2EdqRBPR5WyT36A" type="Stereotype" element="_cNskcNo2EdqRBPR5WyT36A"/>
- <children xmi:id="_cN4xt9o2EdqRBPR5WyT36A" type="Name" element="_cNskcNo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN4xtdo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_cN4xuNo2EdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_cNskcto2EdqRBPR5WyT36A">
- <children xmi:id="_cN4xuto2EdqRBPR5WyT36A" type="ToMultiplicity" element="_cNskcto2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN4xudo2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_cN4xu9o2EdqRBPR5WyT36A" type="ToRoleLabel" element="_cNskcto2EdqRBPR5WyT36A">
- <children xmi:id="_cN4xvdo2EdqRBPR5WyT36A" type="ToRole" element="_cNskcto2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN4xvNo2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_cN_fYNo2EdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_cNskcdo2EdqRBPR5WyT36A">
- <children xmi:id="_cN_fYto2EdqRBPR5WyT36A" type="FromMultiplicity" element="_cNskcdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN_fYdo2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_cN_fY9o2EdqRBPR5WyT36A" type="FromRoleLabel" element="_cNskcdo2EdqRBPR5WyT36A">
- <children xmi:id="_cN_fZdo2EdqRBPR5WyT36A" type="FromRole" element="_cNskcdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN_fZNo2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_cN_fZto2EdqRBPR5WyT36A" type="ToQualifierLabel" element="_cNskcto2EdqRBPR5WyT36A">
- <children xmi:id="_cN_faNo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_cNskcto2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cN_fado2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN_fZ9o2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_cN_fato2EdqRBPR5WyT36A" type="FromQualifierLabel" element="_cNskcdo2EdqRBPR5WyT36A">
- <children xmi:id="_cN_fbNo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_cNskcdo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cN_fbdo2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_cN_fa9o2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cN4xsto2EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cN4xs9o2EdqRBPR5WyT36A" points="[-2, -29, 1, 91]$[26, -89, 29, 31]"/>
- </edges>
- <edges xmi:id="_pdfmkNo2EdqRBPR5WyT36A" element="_pdHMENo2EdqRBPR5WyT36A" source="_ePDcYdovEdqRBPR5WyT36A" target="_cN4xsdo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfml9o2EdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_pdTZUdo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmmdo2EdqRBPR5WyT36A" type="ToMultiplicity" element="_pdTZUdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmmNo2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_pdfmmto2EdqRBPR5WyT36A" type="ToRoleLabel" element="_pdTZUdo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmnNo2EdqRBPR5WyT36A" type="ToRole" element="_pdTZUdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmm9o2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_pdfmndo2EdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_pdTZUNo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmn9o2EdqRBPR5WyT36A" type="FromMultiplicity" element="_pdTZUNo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmnto2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_pdfmoNo2EdqRBPR5WyT36A" type="FromRoleLabel" element="_pdTZUNo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmoto2EdqRBPR5WyT36A" type="FromRole" element="_pdTZUNo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmodo2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_pdfmo9o2EdqRBPR5WyT36A" type="ToQualifierLabel" element="_pdTZUdo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmpdo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_pdTZUdo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pdfmpto2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmpNo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_pdfmp9o2EdqRBPR5WyT36A" type="FromQualifierLabel" element="_pdTZUNo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmqdo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_pdTZUNo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pdfmqto2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_pdfmqNo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_pdfmq9o2EdqRBPR5WyT36A" element="_pdHMENo2EdqRBPR5WyT36A">
- <children xmi:id="_pdfmrto2EdqRBPR5WyT36A" type="ImageCompartment" element="_pdHMENo2EdqRBPR5WyT36A">
- <layoutConstraint xmi:type="notation:Size" xmi:id="_pdfmr9o2EdqRBPR5WyT36A" width="1320" height="1320"/>
- </children>
- <children xmi:id="_pdfmsNo2EdqRBPR5WyT36A" type="Stereotype" element="_pdHMENo2EdqRBPR5WyT36A"/>
- <children xmi:id="_pdfmsdo2EdqRBPR5WyT36A" type="Name" element="_pdHMENo2EdqRBPR5WyT36A"/>
- <children xmi:id="_pdfmsto2EdqRBPR5WyT36A" type="AttributeCompartment" element="_pdHMENo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pdfms9o2EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_pdfmtNo2EdqRBPR5WyT36A" type="OperationCompartment" element="_pdHMENo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pdfmtdo2EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_pdfmtto2EdqRBPR5WyT36A" visible="false" type="SignalCompartment" element="_pdHMENo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pdfmt9o2EdqRBPR5WyT36A"/>
- </children>
- <children xmi:id="_pdfmuNo2EdqRBPR5WyT36A" visible="false" type="StructureCompartment" element="_pdHMENo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_pdfmudo2EdqRBPR5WyT36A"/>
- </children>
- <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_pdfmrNo2EdqRBPR5WyT36A" showStereotype="Label"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pdfmrdo2EdqRBPR5WyT36A" y="1323"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_pdfmkdo2EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pdfmkto2EdqRBPR5WyT36A" points="[46, 3, -366, 94]$[412, -91, 0, 0]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pdrz0No2EdqRBPR5WyT36A" id="100"/>
- </edges>
- <edges xmi:id="_9PaR4No2EdqRBPR5WyT36A" element="_9PH-ANo2EdqRBPR5WyT36A" source="_4WSrANovEdqRBPR5WyT36A" target="_o2m3oNo0EdqRBPR5WyT36A">
- <children xmi:id="_9PaR49o2EdqRBPR5WyT36A" type="NameLabel" element="_9PH-ANo2EdqRBPR5WyT36A">
- <children xmi:id="_9PaR5do2EdqRBPR5WyT36A" type="Stereotype" element="_9PH-ANo2EdqRBPR5WyT36A"/>
- <children xmi:id="_9PaR5to2EdqRBPR5WyT36A" type="Name" element="_9PH-ANo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PaR5No2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_9PaR59o2EdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_9PH-Ato2EdqRBPR5WyT36A">
- <children xmi:id="_9PaR6do2EdqRBPR5WyT36A" type="ToMultiplicity" element="_9PH-Ato2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PaR6No2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_9PaR6to2EdqRBPR5WyT36A" type="ToRoleLabel" element="_9PH-Ato2EdqRBPR5WyT36A">
- <children xmi:id="_9PaR7No2EdqRBPR5WyT36A" type="ToRole" element="_9PH-Ato2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PaR69o2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_9PaR7do2EdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_9PH-Ado2EdqRBPR5WyT36A">
- <children xmi:id="_9PaR79o2EdqRBPR5WyT36A" type="FromMultiplicity" element="_9PH-Ado2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PaR7to2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_9PaR8No2EdqRBPR5WyT36A" type="FromRoleLabel" element="_9PH-Ado2EdqRBPR5WyT36A">
- <children xmi:id="_9PaR8to2EdqRBPR5WyT36A" type="FromRole" element="_9PH-Ado2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PaR8do2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_9PgYgNo2EdqRBPR5WyT36A" type="ToQualifierLabel" element="_9PH-Ato2EdqRBPR5WyT36A">
- <children xmi:id="_9PgYgto2EdqRBPR5WyT36A" type="QualifierCompartment" element="_9PH-Ato2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_9PgYg9o2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PgYgdo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_9PgYhNo2EdqRBPR5WyT36A" type="FromQualifierLabel" element="_9PH-Ado2EdqRBPR5WyT36A">
- <children xmi:id="_9PgYhto2EdqRBPR5WyT36A" type="QualifierCompartment" element="_9PH-Ado2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_9PgYh9o2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9PgYhdo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_9PaR4do2EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9PaR4to2EdqRBPR5WyT36A" points="[12, -24, -94, 162]$[80, -155, -26, 31]"/>
- </edges>
- <edges xmi:id="_9-BEUNo2EdqRBPR5WyT36A" element="_99uwcNo2EdqRBPR5WyT36A" source="_1y-ZsNovEdqRBPR5WyT36A" target="_o2m3oNo0EdqRBPR5WyT36A">
- <children xmi:id="_9-BEU9o2EdqRBPR5WyT36A" type="NameLabel" element="_99uwcNo2EdqRBPR5WyT36A">
- <children xmi:id="_9-HK8No2EdqRBPR5WyT36A" type="Stereotype" element="_99uwcNo2EdqRBPR5WyT36A"/>
- <children xmi:id="_9-HK8do2EdqRBPR5WyT36A" type="Name" element="_99uwcNo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-BEVNo2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_9-HK8to2EdqRBPR5WyT36A" type="ToMultiplicityLabel" element="_99uwcto2EdqRBPR5WyT36A">
- <children xmi:id="_9-HK9No2EdqRBPR5WyT36A" type="ToMultiplicity" element="_99uwcto2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HK89o2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_9-HK9do2EdqRBPR5WyT36A" type="ToRoleLabel" element="_99uwcto2EdqRBPR5WyT36A">
- <children xmi:id="_9-HK99o2EdqRBPR5WyT36A" type="ToRole" element="_99uwcto2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HK9to2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_9-HK-No2EdqRBPR5WyT36A" type="FromMultiplicityLabel" element="_99uwcdo2EdqRBPR5WyT36A">
- <children xmi:id="_9-HK-to2EdqRBPR5WyT36A" type="FromMultiplicity" element="_99uwcdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HK-do2EdqRBPR5WyT36A" y="397"/>
- </children>
- <children xmi:id="_9-HK-9o2EdqRBPR5WyT36A" type="FromRoleLabel" element="_99uwcdo2EdqRBPR5WyT36A">
- <children xmi:id="_9-HK_do2EdqRBPR5WyT36A" type="FromRole" element="_99uwcdo2EdqRBPR5WyT36A"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HK_No2EdqRBPR5WyT36A" y="-397"/>
- </children>
- <children xmi:id="_9-HK_to2EdqRBPR5WyT36A" type="ToQualifierLabel" element="_99uwcto2EdqRBPR5WyT36A">
- <children xmi:id="_9-HLANo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_99uwcto2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_9-HLAdo2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HK_9o2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <children xmi:id="_9-HLAto2EdqRBPR5WyT36A" type="FromQualifierLabel" element="_99uwcdo2EdqRBPR5WyT36A">
- <children xmi:id="_9-HLBNo2EdqRBPR5WyT36A" type="QualifierCompartment" element="_99uwcdo2EdqRBPR5WyT36A">
- <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_9-HLBdo2EdqRBPR5WyT36A"/>
- </children>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_9-HLA9o2EdqRBPR5WyT36A" y="-185"/>
- </children>
- <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_9-BEUdo2EdqRBPR5WyT36A" showStereotype="Text"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9-BEUto2EdqRBPR5WyT36A" points="[49, -24, -290, 162]$[404, -163, 65, 23]"/>
- </edges>
- </contents>
- </eAnnotations>
- <packageImport xmi:type="uml:ProfileApplication" xmi:id="_al1S9NovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1S9dovEdqRBPR5WyT36A" source="attributes">
- <details xmi:id="_al1S9tovEdqRBPR5WyT36A" key="version" value="0"/>
- </eAnnotations>
- <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
- <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
- </packageImport>
- <packageImport xmi:type="uml:ProfileApplication" xmi:id="_al1S99ovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1S-NovEdqRBPR5WyT36A" source="attributes">
- <details xmi:id="_al1S-dovEdqRBPR5WyT36A" key="version" value="0"/>
- </eAnnotations>
- <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
- <importedProfile href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
- </packageImport>
- <packageImport xmi:type="uml:ProfileApplication" xmi:id="_al1S-tovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1S-9ovEdqRBPR5WyT36A" source="attributes">
- <details xmi:id="_al1S_NovEdqRBPR5WyT36A" key="version" value="0"/>
- </eAnnotations>
- <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
- <importedProfile href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
- </packageImport>
- <packageImport xmi:type="uml:ProfileApplication" xmi:id="_al1S_dovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1S_tovEdqRBPR5WyT36A" source="attributes">
- <details xmi:id="_al1S_9ovEdqRBPR5WyT36A" key="version" value="0"/>
- </eAnnotations>
- <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
- <importedProfile href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
- </packageImport>
- <packageImport xmi:type="uml:ProfileApplication" xmi:id="_al1TANovEdqRBPR5WyT36A">
- <eAnnotations xmi:id="_al1TAdovEdqRBPR5WyT36A" source="attributes">
- <details xmi:id="_al1TAtovEdqRBPR5WyT36A" key="version" value="0"/>
- </eAnnotations>
- <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
- <importedProfile href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
- </packageImport>
- <packageImport xmi:id="_al1TA9ovEdqRBPR5WyT36A">
- <importedPackage xmi:type="uml:Model" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_EfRZoK86EdieaYgxtVWN8Q"/>
- </packageImport>
- <ownedMember xmi:type="uml:Interface" xmi:id="_ePDcYNovEdqRBPR5WyT36A" name="Context">
- <generalization xmi:id="_R5RjwNo1EdqRBPR5WyT36A" general="_Mz_E8No1EdqRBPR5WyT36A"/>
- <ownedAttribute xmi:id="_FdlRYdowEdqRBPR5WyT36A" name="scopecontext" visibility="private" type="_z_g4ANovEdqRBPR5WyT36A" association="_FdlRYNowEdqRBPR5WyT36A">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FdlRZNowEdqRBPR5WyT36A" value="1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FdlRY9owEdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Interface" xmi:id="_fsviYNovEdqRBPR5WyT36A" name="CompositeContext">
- <generalization xmi:id="_hmIF4NovEdqRBPR5WyT36A" general="_ePDcYNovEdqRBPR5WyT36A"/>
- <ownedAttribute xmi:id="_peM1YdovEdqRBPR5WyT36A" name="context" visibility="private" type="_ePDcYNovEdqRBPR5WyT36A" association="_peM1YNovEdqRBPR5WyT36A" aggregation="composite">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_peM1ZNovEdqRBPR5WyT36A" value="-1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_peM1Y9ovEdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Interface" xmi:id="_ikl5QNovEdqRBPR5WyT36A" name="AtomicContext">
- <generalization xmi:id="_mu9A4NovEdqRBPR5WyT36A" general="_ePDcYNovEdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_peM1YNovEdqRBPR5WyT36A" memberEnd="_peM1YdovEdqRBPR5WyT36A _peM1YtovEdqRBPR5WyT36A">
- <ownedEnd xmi:id="_peM1YtovEdqRBPR5WyT36A" visibility="private" type="_fsviYNovEdqRBPR5WyT36A" association="_peM1YNovEdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Interface" xmi:id="_tZF9oNovEdqRBPR5WyT36A" name="DeploymentContext">
- <generalization xmi:id="_xInjYNovEdqRBPR5WyT36A" general="_fsviYNovEdqRBPR5WyT36A"/>
- <ownedAttribute xmi:id="_Bj8GUdowEdqRBPR5WyT36A" name="modulescopecontext" visibility="private" type="_1yyMcNovEdqRBPR5WyT36A" association="_Bj8GUNowEdqRBPR5WyT36A">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bj8GVNowEdqRBPR5WyT36A" value="1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bj8GU9owEdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Interface" xmi:id="_z_g4ANovEdqRBPR5WyT36A" name="ScopeContext">
- <ownedAttribute xmi:id="_cNskcdo2EdqRBPR5WyT36A" name="instancewrapper" visibility="private" type="_TI7NwNo1EdqRBPR5WyT36A" association="_cNskcNo2EdqRBPR5WyT36A">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cNskdNo2EdqRBPR5WyT36A" value="1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cNskc9o2EdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Class" xmi:id="_1yyMcNovEdqRBPR5WyT36A" name="ModuleScopeContext" clientDependency="_3IW4QNovEdqRBPR5WyT36A">
- <implementation xmi:id="_3IW4QNovEdqRBPR5WyT36A" client="_1yyMcNovEdqRBPR5WyT36A" supplier="_z_g4ANovEdqRBPR5WyT36A" realizingClassifier="_z_g4ANovEdqRBPR5WyT36A" contract="_z_g4ANovEdqRBPR5WyT36A">
- <mapping xmi:id="_3IW4QdovEdqRBPR5WyT36A"/>
- </implementation>
- <ownedAttribute xmi:id="_99uwcdo2EdqRBPR5WyT36A" name="scoperegistry" visibility="private" type="_o2gxANo0EdqRBPR5WyT36A" association="_99uwcNo2EdqRBPR5WyT36A">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_99uwdNo2EdqRBPR5WyT36A" value="1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_99uwc9o2EdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Class" xmi:id="_4WMkYNovEdqRBPR5WyT36A" name="HTTPSessionScopeContext" clientDependency="_9XeF4NovEdqRBPR5WyT36A">
- <implementation xmi:id="_9XeF4NovEdqRBPR5WyT36A" client="_4WMkYNovEdqRBPR5WyT36A" supplier="_z_g4ANovEdqRBPR5WyT36A" realizingClassifier="_z_g4ANovEdqRBPR5WyT36A" contract="_z_g4ANovEdqRBPR5WyT36A">
- <mapping xmi:id="_9XeF4dovEdqRBPR5WyT36A"/>
- </implementation>
- <ownedAttribute xmi:id="_9PH-Ado2EdqRBPR5WyT36A" name="scoperegistry" visibility="private" type="_o2gxANo0EdqRBPR5WyT36A" association="_9PH-ANo2EdqRBPR5WyT36A">
- <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9PH-BNo2EdqRBPR5WyT36A" value="1"/>
- <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9PH-A9o2EdqRBPR5WyT36A"/>
- </ownedAttribute>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_Bj8GUNowEdqRBPR5WyT36A" memberEnd="_Bj8GUdowEdqRBPR5WyT36A _Bj8GUtowEdqRBPR5WyT36A">
- <ownedEnd xmi:id="_Bj8GUtowEdqRBPR5WyT36A" visibility="private" type="_tZF9oNovEdqRBPR5WyT36A" association="_Bj8GUNowEdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_FdlRYNowEdqRBPR5WyT36A" memberEnd="_FdlRYdowEdqRBPR5WyT36A _FdlRYtowEdqRBPR5WyT36A">
- <ownedEnd xmi:id="_FdlRYtowEdqRBPR5WyT36A" visibility="private" type="_ePDcYNovEdqRBPR5WyT36A" association="_FdlRYNowEdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Interface" xmi:id="_o2gxANo0EdqRBPR5WyT36A" name="ScopeRegistry"/>
- <ownedMember xmi:type="uml:Interface" xmi:id="_Mz_E8No1EdqRBPR5WyT36A" name="Lifecycle"/>
- <ownedMember xmi:type="uml:Interface" xmi:id="_TI7NwNo1EdqRBPR5WyT36A" name="InstanceWrapper">
- <generalization xmi:id="_V7zlENo1EdqRBPR5WyT36A" general="_Mz_E8No1EdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_cNskcNo2EdqRBPR5WyT36A" memberEnd="_cNskcdo2EdqRBPR5WyT36A _cNskcto2EdqRBPR5WyT36A">
- <ownedEnd xmi:id="_cNskcto2EdqRBPR5WyT36A" visibility="private" type="_z_g4ANovEdqRBPR5WyT36A" association="_cNskcNo2EdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:AssociationClass" xmi:id="_pdHMENo2EdqRBPR5WyT36A" name="AssociationClass1" memberEnd="_pdTZUNo2EdqRBPR5WyT36A _pdTZUdo2EdqRBPR5WyT36A">
- <ownedEnd xmi:id="_pdTZUNo2EdqRBPR5WyT36A" visibility="private" type="_cNskcNo2EdqRBPR5WyT36A" association="_pdHMENo2EdqRBPR5WyT36A"/>
- <ownedEnd xmi:id="_pdTZUdo2EdqRBPR5WyT36A" visibility="private" type="_ePDcYNovEdqRBPR5WyT36A" association="_pdHMENo2EdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_9PH-ANo2EdqRBPR5WyT36A" memberEnd="_9PH-Ado2EdqRBPR5WyT36A _9PH-Ato2EdqRBPR5WyT36A">
- <ownedEnd xmi:id="_9PH-Ato2EdqRBPR5WyT36A" visibility="private" type="_4WMkYNovEdqRBPR5WyT36A" association="_9PH-ANo2EdqRBPR5WyT36A"/>
- </ownedMember>
- <ownedMember xmi:type="uml:Association" xmi:id="_99uwcNo2EdqRBPR5WyT36A" memberEnd="_99uwcdo2EdqRBPR5WyT36A _99uwcto2EdqRBPR5WyT36A">
- <ownedEnd xmi:id="_99uwcto2EdqRBPR5WyT36A" visibility="private" type="_1yyMcNovEdqRBPR5WyT36A" association="_99uwcNo2EdqRBPR5WyT36A"/>
- </ownedMember>
-</uml:Model>
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java deleted file mode 100644 index e8597a55fc..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/AbstractLifecycle.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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.spi; - -/** - * Base class providing a simple implementation of Lifecycle. - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractLifecycle implements Lifecycle { - protected volatile int lifecycleState = UNINITIALIZED; - - public int getLifecycleState() { - return lifecycleState; - } - - /** - * Set the current state of the Lifecycle. - * - * @param lifecycleState the new state - */ - protected void setLifecycleState(int lifecycleState) { - this.lifecycleState = lifecycleState; - } - - public void start() { - setLifecycleState(RUNNING); - } - - public void stop() { - setLifecycleState(STOPPED); - } - - /** - * Returns the current lifecycle as a String (for example, "RUNNING"). - * - * @return the current lifecycle as a String - */ - public String toString() { - switch (lifecycleState) { - case Lifecycle.CONFIG_ERROR: - return "CONFIG_ERROR"; - case Lifecycle.ERROR: - return "ERROR"; - case Lifecycle.INITIALIZING: - return "INITIALIZING"; - case Lifecycle.INITIALIZED: - return "INITIALIZED"; - case Lifecycle.RUNNING: - return "RUNNING"; - case Lifecycle.STOPPING: - return "STOPPING"; - case Lifecycle.STOPPED: - return "STOPPED"; - case Lifecycle.UNINITIALIZED: - return "UNINITIALIZED"; - default: - return "UNKNOWN"; - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java deleted file mode 100644 index 641a4e5d21..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/CoreRuntimeException.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.spi; - -import org.apache.tuscany.api.TuscanyRuntimeException; - -/** - * The root exception for the runtime package. Exceptions occurring in the runtime are generally non-recoverable - * - * @version $Rev$ $Date$ - */ -public abstract class CoreRuntimeException extends TuscanyRuntimeException { - - public CoreRuntimeException() { - super(); - } - - public CoreRuntimeException(String message) { - super(message); - } - - - protected CoreRuntimeException(String message, String identifier) { - super(message, identifier); - } - - public CoreRuntimeException(String message, Throwable cause) { - super(message, cause); - } - - - protected CoreRuntimeException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public CoreRuntimeException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java deleted file mode 100644 index 28bc8652b2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/InvalidNameException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi; - -/** - * Denotes an invalid name - * - * @version $Rev$ $Date$ - */ -public class InvalidNameException extends CoreRuntimeException { - - public InvalidNameException() { - super(); - } - - public InvalidNameException(String message) { - super(message); - } - - public InvalidNameException(String message, Throwable cause) { - super(message, cause); - } - - public InvalidNameException(Throwable cause) { - super(cause); - } - -} - diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java deleted file mode 100644 index e8a0448e44..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/Lifecycle.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.spi; - -/** - * Implementations adhere to runtime lifecycle semantics - * - * @version $Rev$ $Date$ - */ -public interface Lifecycle { - /* A configuration error state */ - int CONFIG_ERROR = -1; - /* Has not been initialized */ - int UNINITIALIZED = 0; - /* In the process of being configured and initialized */ - int INITIALIZING = 1; - /* Instantiated and configured */ - int INITIALIZED = 2; - /* Configured and initialized */ - int RUNNING = 4; - /* In the process of being shutdown */ - int STOPPING = 5; - /* Has been shutdown and removed from the composite */ - int STOPPED = 6; - /* In an error state */ - int ERROR = 7; - - /** - * Returns the lifecycle state - * - * @see #UNINITIALIZED - * @see #INITIALIZING - * @see #INITIALIZED - * @see #RUNNING - * @see #STOPPING - * @see #STOPPED - */ - int getLifecycleState(); - - /** - * Starts the Lifecycle. - * - * @throws CoreRuntimeException - */ - void start() throws CoreRuntimeException; - - /** - * Stops the Lifecycle. - * - * @throws CoreRuntimeException - */ - void stop() throws CoreRuntimeException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java deleted file mode 100644 index 580e928000..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectCreationException.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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.spi; - -import org.apache.tuscany.api.TuscanyRuntimeException; - -/** - * Denotes an error creating a new object instance - * - * @version $Rev$ $Date$ - */ -public class ObjectCreationException extends TuscanyRuntimeException { - private static final long serialVersionUID = -6423113430265944499L; - - public ObjectCreationException() { - super(); - } - - public ObjectCreationException(String message) { - super(message); - } - - public ObjectCreationException(String message, String identifier) { - super(message, identifier); - } - - public ObjectCreationException(String message, Throwable cause) { - super(message, cause); - } - - public ObjectCreationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public ObjectCreationException(Throwable cause) { - super(cause); - } - -} - diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java deleted file mode 100644 index d505e14f61..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/ObjectFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi; - -/** - * Implementations create new instances of a particular type - * - * @version $Rev$ $Date$ - */ -public interface ObjectFactory<T> { - - /** - * Return a instance of the type that this factory creates. - * - * @return a instance from this factory - */ - T getInstance() throws ObjectCreationException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java deleted file mode 100644 index 575f69db18..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * 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.spi; - -/** - * An evaluated name consisting of a part/port pair. In the runtime, a part generally 'contains' or 'provides' ports - * such as a component/service point or a component/reference pair. - * - * @version $Rev$ $Date$ - */ -public class QualifiedName { - public static final String NAME_SEPARATOR = "/"; - - private String qName; - private String partName; - private String portName; - - /** - * Constructs a new qualified name in the form of part/port where part is the parent context and port represents a - * child, which is either a service in the case of an atomic context or a contained context in the case of a - * composite. - * - * @throws InvalidNameException if the name is in an invalid format - */ - public QualifiedName(String qualifiedName) throws InvalidNameException { - if (qualifiedName == null) { - return; - } - int pos = qualifiedName.indexOf(QualifiedName.NAME_SEPARATOR); - switch (pos) { - case-1: - partName = qualifiedName; - break; - case 0: - throw new InvalidNameException(qualifiedName); - default: - partName = qualifiedName.substring(0, pos); - portName = qualifiedName.substring(pos + 1); - break; - } - qName = qualifiedName; - } - - /** - * Constructs a qualified name using the given part/port combination - * - * @param partName the part name - * @param portName the port name - */ - public QualifiedName(String partName, String portName) { - this.partName = partName; - this.portName = portName; - this.qName = partName + '/' + portName; - } - - /** - * Returns the parsed part name - */ - public String getPartName() { - return partName; - } - - /** - * Returns the parsed port name if the original is of the compound for part/port - */ - public String getPortName() { - return portName; - } - - /** - * Returns the full part/port name pair - */ - public String getQualifiedName() { - return qName; - } - - public String toString() { - return qName; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java deleted file mode 100644 index 0e48f1bc1b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/annotation/Autowire.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.annotation; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import java.lang.annotation.Retention; -import static java.lang.annotation.RetentionPolicy.RUNTIME; -import java.lang.annotation.Target; - -/** - * A system annotation to inject an autowired instance - * - * @version $Rev$ $Date$ - */ -@Target({METHOD, FIELD, PARAMETER}) -@Retention(RUNTIME) -public @interface Autowire { - /** - * The name of the autowire. If not specified then the name will be derived from the annotated field. - */ - String name() default ""; - - /** - * Indicates if a reference must be specified. - */ - boolean required() default true; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java deleted file mode 100644 index fed2898102..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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.spi.bootstrap; - -/** - * Class that defines the names of well known component - * - * @version $Rev$ $Date$ - */ -public final class ComponentNames { - /** - * The name of the component that forms the root of the runtime tree. - */ - public static final String TUSCANY_RUNTIME = "tuscany.runtime"; - - /** - * The name of the component that is the root of the application composite tree. - */ - public static final String TUSCANY_APPLICATION_ROOT = "tuscany.root.application"; - - /** - * The name of the component that is the root of the system composite tree. - */ - public static final String TUSCANY_SYSTEM_ROOT = "tuscany.root.system"; - - /** - * The name of the top-level component in the system composite tree. - */ - public static final String TUSCANY_SYSTEM = "tuscany.system"; - - /** - * The name of the component that contains the deployer. - */ - public static final String TUSCANY_DEPLOYER = "deployer"; - - /** - * The name of the component that contains the deployer. - */ - public static final String TUSCANY_WIRE_SERVICE = "wireService"; - - /** - * The name of the component that contains the contribution service. - */ - public static final String TUSCANY_CONTRIBUTION_SERVICE = "contributionService"; - - /** - * The name of the component that contains the assmebly service. - */ - public static final String TUSCANY_ASSEMBLY_SERVICE = "assemblyService"; - - private ComponentNames() { - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java deleted file mode 100644 index 6e0184fbd6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/RuntimeComponent.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.spi.bootstrap; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.TargetException; -import org.apache.tuscany.spi.deployer.Deployer; - -/** - * Interface that represents the Tuscany runtime. - * - * @version $Rev$ $Date$ - */ -public interface RuntimeComponent extends CompositeComponent { - /** - * Returns the component that forms the root of the user component tree. All user components will be managed by - * composites that are children of this root. - * - * @return the root of the user component tree - */ - CompositeComponent getRootComponent(); - - /** - * Returns the component that forms the root of the system component tree. All system components, components that - * provide system services needed by the Tuscany runtime itself, will be managed by composites that are children of - * this root. - * - * @return the root of the system component tree - */ - CompositeComponent getSystemComponent(); - - /** - * Returns the deployer for this runtime. This interface can be used to deploy new SCA bundles to the runtime. - * - * @return the deployer for this runtime - * @throws TargetException if there is an error returning the deployer - */ - Deployer getDeployer() throws TargetException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java deleted file mode 100644 index 3e2ee38d35..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.BindingDefinition; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import org.apache.tuscany.spi.model.ServiceDefinition; - -/** - * Responsible for processing a service or reference in an assembly configured with a particular binding. The builder - * will create and return corresponding {@link org.apache.tuscany.spi.component.ServiceBinding} or {@link - * org.apache.tuscany.spi.component.ReferenceBinding} - * - * @version $Rev$ $Date$ - */ -public interface BindingBuilder<B extends BindingDefinition> { - - /** - * Creates a service binding - * - * @param parent the containing composite component - * @param serviceDefinition the service the binding is configured for - * @param bindingDefinition the binding definition - * @param deploymentContext the current deployment context - * @return a service binding - * @throws BuilderException - */ - ServiceBinding build(CompositeComponent parent, - ServiceDefinition serviceDefinition, - B bindingDefinition, - DeploymentContext deploymentContext) throws BuilderException; - - ReferenceBinding build(CompositeComponent parent, - AbstractReferenceDefinition boundReferenceDefinition, - B bindingDefinition, - DeploymentContext deploymentContext) throws BuilderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java deleted file mode 100644 index 0e11c93d8d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.Component; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.ComponentDefinition; -import org.apache.tuscany.spi.model.Implementation; -import org.apache.tuscany.spi.model.ModelObject; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import org.apache.tuscany.spi.model.ServiceDefinition; - -/** - * Implementations build <code>SCAObject</code> types from model objects. - * - * @version $Rev$ $Date$ - */ -public interface Builder { - /** - * Builds a <code>Component</code> from a <code>ComponentDefinition</code> - * - * @param parent the composite that will be the parent of the newly built component - * @param definition the component definition as parsed from an SCA assembly - * @param context the current deployment context - * @return the newly created component - * @throws BuilderException - */ - <I extends Implementation<?>> Component build(CompositeComponent parent, - ComponentDefinition<I> definition, - DeploymentContext context) throws BuilderException; - - /** - * Builds a <code>Service</code> and its bindings from a <code>ServiceDefinition</code> - * - * @param parent the composite that will be the parent of the newly built service - * @param definition the service definition as parsed from an SCA assembly - * @param context the current deployment context - * @return the newly created service - * @throws BuilderException - */ - Service build(CompositeComponent parent, ServiceDefinition definition, DeploymentContext context) - throws BuilderException; - - /** - * Builds a <code>Reference</code> and its bindings from a <code>ReferenceDefinition</code> - * - * @param parent the composite that will be the parent of the newly built reference - * @param definition the reference definition as parsed from an SCA assembly - * @param context the current deployment context - * @return the newly created reference - * @throws BuilderException - */ - Reference build(CompositeComponent parent, AbstractReferenceDefinition definition, DeploymentContext context) - throws BuilderException; - - /** - * Builds a <code>SCAObject</code> - * @param parent - * @param modelObject - * @param context - * @return - * @throws BuilderException - */ - SCAObject build(SCAObject parent, ModelObject modelObject, DeploymentContext context) - throws BuilderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java deleted file mode 100644 index 6e9f2ef95d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderConfigException.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.builder; - -/** - * Represents an error processing an assembly model - * - * @version $Rev$ $Date$ - */ -public class BuilderConfigException extends BuilderException { - - public BuilderConfigException() { - super(); - } - - public BuilderConfigException(String message) { - super(message); - } - - public BuilderConfigException(String message, String identifier) { - super(message, identifier); - } - - public BuilderConfigException(String message, Throwable cause) { - super(message, cause); - } - - public BuilderConfigException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java deleted file mode 100644 index 846d52492c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.api.TuscanyException; - -/** - * The root exception for the builder package. Builder exceptions denote a non-recoverable failure. - * - * @version $Rev$ $Date$ - */ -public abstract class BuilderException extends TuscanyException { - - public BuilderException() { - super(); - } - - public BuilderException(String message) { - super(message); - } - - - protected BuilderException(String message, String identifier) { - super(message, identifier); - } - - public BuilderException(String message, Throwable cause) { - super(message, cause); - } - - protected BuilderException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public BuilderException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java deleted file mode 100644 index 30957635db..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderInstantiationException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.spi.builder; - -/** - * Denotes an error instantiating an <code>SCAObject</code> - * - * @version $Rev$ $Date$ - */ -public class BuilderInstantiationException extends BuilderException { - - public BuilderInstantiationException(String message, String identifier) { - super(message, identifier); - } - - public BuilderInstantiationException(String message, Throwable cause) { - super(message, cause); - } - - public BuilderInstantiationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java deleted file mode 100644 index 8d94ed1ebd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderRegistry.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.model.BindingDefinition; -import org.apache.tuscany.spi.model.Implementation; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Maintains a registry of builders in the runtime, dispatching to the - * appropriate one as an assembly model is processed into runtime artifacts - * - * @version $Rev$ $Date$ - */ -public interface BuilderRegistry extends Builder { - - /** - * Register a builder for an implementation type. - * - * @param implClass the type of implementation that this builder can handle - * @param builder the builder to be registered - */ - <I extends Implementation<?>> void register(Class<I> implClass, ComponentBuilder<I> builder); - - /** - * Unregister a builder for an implementation type. - * - * @param implClass the implementation whose builder should be unregistered - */ - <I extends Implementation<?>> void unregisterComponentBuilder(Class<I> implClass); - - // FIXME: We need to provide unregister() for other builders - - /** - * Register a binding builder for a binding type - * - * @param implClass the binding type - * @param builder the buinder to be registered - */ - <B extends BindingDefinition> void register(Class<B> implClass, BindingBuilder<B> builder); - - /** - * Unregister a binding builder - * - * @param <B> - * @param implClass the binding type - */ - <B extends BindingDefinition> void unregisterBindingBuilder(Class<B> implClass); - - /** - * Register a generic builder for a model type - * - * @param <S> - * @param <M> - * @param modelClass - * @param builder - */ - <S extends SCAObject, M extends ModelObject> void register(Class<M> modelClass, GenericBuilder<S, M> builder); - - /** - * Unregister a generic builder - * - * @param <M> - * @param modelClass The model type - */ - <M extends ModelObject> void unregisterGenericBuilder(Class<M> modelClass); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java deleted file mode 100644 index 668cee77e6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.Component; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.ComponentDefinition; -import org.apache.tuscany.spi.model.Implementation; - -/** - * Responsible for building a {@link Component} from an atomic or composite component configured in an assembly - * - * @version $Rev$ $Date$ - */ -public interface ComponentBuilder<I extends Implementation<?>> { - Component build(CompositeComponent parent, - ComponentDefinition<I> componentDefinition, - DeploymentContext deploymentContext) throws BuilderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java deleted file mode 100644 index b11aacc47e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; - -/** - * Implementations are responsible for bridging invocation chains as an assembly is converted to runtime artifacts - * - * @version $$Rev$$ $$Date$$ - */ -public interface Connector { - - /** - * Connects the given source's wires to corresponding wires to a target. Wires are connected by bridging invocation - * chains. - * - * @param source the source, i.e. a <code>ServiceBinding</code>, <code>Component</code>, or <code>Reference</code> - * @throws WiringException - */ - void connect(SCAObject source) throws WiringException; - - /** - * Bridges the invocation chains associated with an inbound and outbound wire. - * - * @param inbound the wire to bridge from - * @param outbound the target wire - * @param optimizable if the bridge may be optimized - * @throws WiringException - */ - void connect(InboundWire inbound, OutboundWire outbound, boolean optimizable) - throws WiringException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/GenericBuilder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/GenericBuilder.java deleted file mode 100644 index 3cb3940729..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/GenericBuilder.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.spi.builder; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Responsible for building a {@link SCAObject} from an extensibility element in - * the SCDL - * - * @version $Rev$ $Date$ - */ -public interface GenericBuilder<S extends SCAObject, M extends ModelObject> { - /** - * Build a SCAObject from an extensibility element in the SCDL - * - * @param parent The parent SCAObject - * @param modelObject The model object - * @param deploymentContext The deployment context - * @return A SCAObject representing the runtime metdata for the extension - * @throws BuilderException - */ - S build(SCAObject parent, M modelObject, DeploymentContext deploymentContext) throws BuilderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java deleted file mode 100644 index 78bb5a5cc8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidServiceInterfaceException.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.builder; - -/** - * @version $Rev$ $Date$ - */ -public class InvalidServiceInterfaceException extends BuilderConfigException { - private final Class<?> interfaceClass; - - public InvalidServiceInterfaceException(String message, Class<?> interfaceClass) { - super(message); - this.interfaceClass = interfaceClass; - } - - public Class<?> getInterfaceClass() { - return interfaceClass; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java deleted file mode 100644 index 5a0b046430..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.builder; - -/** - * Denotes a missing wire target in an assembly - * - * @version $Rev$ $Date$ - */ -public class MissingWireTargetException extends WiringException { - - public MissingWireTargetException(String message) { - super(message); - } - - public MissingWireTargetException(String message, String identifier) { - super(message, identifier); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java deleted file mode 100644 index acf8dadda6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ScopeNotFoundException.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.spi.builder; - -/** - * @version $Rev$ $Date$ - */ -public class ScopeNotFoundException extends BuilderConfigException { - - public ScopeNotFoundException(String scope) { - super("Scope not found", scope); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java deleted file mode 100644 index d5e17919fd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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.spi.builder; - -/** - * Denotes a general error raised during wiring - * - * @version $Rev$ $Date$ - */ -public abstract class WiringException extends BuilderException { - private String sourceName; - private String referenceName; - private String targetName; - private String targetServiceName; - - protected WiringException(String message) { - super(message); - } - - protected WiringException(String message, String identifier) { - super(message, identifier); - } - - protected WiringException(String message, Throwable cause) { - super(message, cause); - } - - protected WiringException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - protected WiringException(Throwable cause) { - super(cause); - } - - /** - * Returns the source name for the wire - * - * @return the source name the source name for the wire - */ - public String getSourceName() { - return sourceName; - } - - /** - * Sets the source name for the wire - * - * @param sourceName the source name for the wire - */ - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - /** - * Returns the target name for the wire - * - * @return the target name the source name for the wire - */ - public String getTargetName() { - return targetName; - } - - /** - * Sets the target name for the wire - * - * @param targetName the source name for the wire - */ - public void setTargetName(String targetName) { - this.targetName = targetName; - } - - - /** - * Returns the source reference name for the wire - * - * @return the source reference name for the wire - */ - public String getReferenceName() { - return referenceName; - } - - /** - * Sets the source reference name for the wire - * - * @param referenceName the source reference name for the wire - */ - public void setReferenceName(String referenceName) { - this.referenceName = referenceName; - } - - /** - * Returns the target service name for the wire - * - * @return the target service name for the wire - */ - public String getTargetServiceName() { - return targetServiceName; - } - - /** - * Sets the target service name for the wire - * - * @param targetServiceName the target service name for the wire - */ - public void setTargetServiceName(String targetServiceName) { - this.targetServiceName = targetServiceName; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java deleted file mode 100644 index de98aa4437..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * 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.spi.component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -import org.apache.tuscany.spi.AbstractLifecycle; -import org.apache.tuscany.spi.event.Event; -import org.apache.tuscany.spi.event.EventFilter; -import org.apache.tuscany.spi.event.RuntimeEventListener; -import org.apache.tuscany.spi.event.TrueFilter; - -/** - * Functionality common to all <code>SCAObject<code> implementations - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractSCAObject extends AbstractLifecycle implements SCAObject { - protected static final EventFilter TRUE_FILTER = new TrueFilter(); - - protected Map<EventFilter, List<RuntimeEventListener>> listeners; - protected final CompositeComponent parent; - private final String name; - private final Map<Object, Object> extensions = new HashMap<Object, Object>(); - private String canonicalName; - - public AbstractSCAObject(String name, CompositeComponent parent) { - this.name = name; - this.parent = parent; - } - - public String getName() { - return name; - } - - public String getCanonicalName() { - if (canonicalName == null) { - StringBuffer b = new StringBuffer(name); - if (parent != null) { - b.insert(0, parent.getCanonicalName() + "/"); - } - canonicalName = b.toString(); - } - return canonicalName; - } - - public CompositeComponent getParent() { - return parent; - } - - public void addListener(RuntimeEventListener listener) { - addListener(TRUE_FILTER, listener); - } - - public void removeListener(RuntimeEventListener listener) { - assert listener != null : "Listener cannot be null"; - synchronized (getListeners()) { - for (List<RuntimeEventListener> currentList : getListeners().values()) { - for (RuntimeEventListener current : currentList) { - if (current == listener) { - currentList.remove(current); - return; - } - } - } - } - } - - public void addListener(EventFilter filter, RuntimeEventListener listener) { - assert listener != null : "Listener cannot be null"; - synchronized (getListeners()) { - List<RuntimeEventListener> list = getListeners().get(filter); - if (list == null) { - list = new CopyOnWriteArrayList<RuntimeEventListener>(); - listeners.put(filter, list); - } - list.add(listener); - } - } - - public void publish(Event event) { - assert event != null : "Event object was null"; - for (Map.Entry<EventFilter, List<RuntimeEventListener>> entry : getListeners().entrySet()) { - if (entry.getKey().match(event)) { - for (RuntimeEventListener listener : entry.getValue()) { - listener.onEvent(event); - } - } - } - } - - protected Map<EventFilter, List<RuntimeEventListener>> getListeners() { - if (listeners == null) { - listeners = new ConcurrentHashMap<EventFilter, List<RuntimeEventListener>>(); - } - return listeners; - } - - public void prepare() throws PrepareException { - - } - - public String toString() { - return "[" + name + "] in state [" + super.toString() + ']'; - } - - public Map<Object, Object> getExtensions() { - return extensions; - } - - public boolean isSystem() { - return false; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java deleted file mode 100644 index aa4c41889b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * 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.spi.component; - -import java.util.List; - -import org.apache.tuscany.spi.ObjectCreationException; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; - -/** - * The runtime instantiation of an SCA atomic, or leaf-type, component - * - * @version $Rev$ $Date$ - */ -public interface AtomicComponent extends Component { - - /** - * Returns true if component instances should be eagerly initialized. - * - * @return true if component instances should be eagerly initialized - */ - boolean isEagerInit(); - - /** - * Returns true if component instances receive destroy events. - * - * @return true if component instances receive destroy events - */ - boolean isDestroyable(); - - /** - * Returns the initialization level for this component. - * - * @return the initialization level for this component - */ - int getInitLevel(); - - /** - * Returns the idle time allowed between operations in milliseconds if the implementation is conversational. - * - * @return the idle time allowed between operations in milliseconds if the implementation is conversational - */ - long getMaxIdleTime(); - - /** - * Returns the maximum age a conversation may remain active in milliseconds if the implementation is - * conversational. - * - * @return the maximum age a conversation may remain active in milliseconds if the implementation is conversational - */ - long getMaxAge(); - - /** - * Adds a target-side wire. Target-side wire factories contain the invocation chains associated with the destination - * service of a wire - */ - void addInboundWire(InboundWire wire); - - /** - * Adds a source-side wire for the given reference. Source-side wires contain the invocation chains for a reference - * in the implementation associated with the instance wrapper created by this configuration. - */ - void addOutboundWire(OutboundWire wire); - - /** - * Adds a set of source-side multiplicity wires for the given reference. Source-side wires contain the invocation - * chains for a reference in the implementation associated with the instance wrapper created by this configuration. - */ - void addOutboundWires(List<OutboundWire> wires); - - /** - * Notifies the given instance of an initialization event. - * - * @throws TargetInitializationException - */ - void init(Object instance) throws TargetInitializationException; - - /** - * Notifies the given instance of a destroy event. - * - * @throws TargetDestructionException - */ - void destroy(Object instance) throws TargetDestructionException; - - /** - * Creates a new implementation instance, generally used as a callback by a {@link - * org.apache.tuscany.spi.component.ScopeContainer}. - * - * @return the instance - * @throws ObjectCreationException - */ - Object createInstance() throws ObjectCreationException; - - /** - * Removes an implementation instance associated with the current invocation context. - * - * @throws ComponentException - */ - void removeInstance() throws ComponentException; - - /** - * Returns the target instance associated with the component. A target instance is the actual object a request is - * dispatched to sans wire chain. - * - * @throws TargetResolutionException - */ - Object getTargetInstance() throws TargetResolutionException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java deleted file mode 100644 index ec4eedfe90..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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.spi.component; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.PropertyValue; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * The runtime instantiation of an SCA component - * - * @version $$Rev$$ $$Date$$ - */ -public interface Component extends SCAObject { - - /** - * Sets the scope container associated with the component - * - * @param scopeContainer the scope container associated with the component - */ - void setScopeContainer(ScopeContainer scopeContainer); - - /** - * Returns the default property values associated with the component. - * - * @return default property values associated with the component. - */ - Map<String, PropertyValue<?>> getDefaultPropertyValues(); - - /** - * Sets the default property values associated with the component. - * - * @param defaultPropertyValues Default property values associated with the component. - */ - void setDefaultPropertyValues(Map<String, PropertyValue<?>> defaultPropertyValues); - - /** - * Returns true if invocation dispatching can be optimized, i.e. invocation chains are not required - * - * @return true if invocation dispatching can be optimized, i.e. invocation chains are not required - */ - boolean isOptimizable(); - - /** - * Returns the wire associated with the given service name or null if not found. - * - * @return the wire associated with the given service name or null if not found. - */ - InboundWire getInboundWire(String serviceName); - - /** - * Returns a map of inbound wires. - * - * @return a map of inbound wires. - */ - Collection<InboundWire> getInboundWires(); - - /** - * Returns a map of source-side wires for references. There may be 1..n wires per reference. - * - * @return a map of source-side wires for references. - */ - Map<String, List<OutboundWire>> getOutboundWires(); - - /** - * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service offered by - * the component - * - * @param targetName the service name - * @param operation the operation to invoke - * @param callbackWire the callback wire or null if the associated wire is unidirectional - * @return the target invoker - * @throws TargetInvokerCreationException - */ - TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) - throws TargetInvokerCreationException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java deleted file mode 100644 index 2007cbb6bc..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.api.TuscanyException; - -/** - * An checked exception encountered by an {@link org.apache.tuscany.spi.component.Component} - * - * @version $Rev$ $Date$ - */ -public abstract class ComponentException extends TuscanyException { - - protected ComponentException() { - } - - protected ComponentException(String message) { - super(message); - } - - protected ComponentException(String message, String identifier) { - super(message, identifier); - } - - protected ComponentException(String message, Throwable cause) { - super(message, cause); - } - - protected ComponentException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - protected ComponentException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java deleted file mode 100644 index f34fda47a2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRegistrationException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.component; - -/** - * Thrown when an error is encountered registering a component - * - * @version $$Rev$$ $$Date$$ - */ -public abstract class ComponentRegistrationException extends ComponentException { - public ComponentRegistrationException() { - } - - public ComponentRegistrationException(String message) { - super(message); - } - - public ComponentRegistrationException(String message, String identifier) { - super(message, identifier); - } - - public ComponentRegistrationException(String message, Throwable cause) { - super(message, cause); - } - - public ComponentRegistrationException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java deleted file mode 100644 index 8479681c75..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.CoreRuntimeException; - -/** - * An unchecked exception encountered by an {@link org.apache.tuscany.spi.component.Component} - * - * @version $Rev$ $Date$ - */ -public abstract class ComponentRuntimeException extends CoreRuntimeException { - - public ComponentRuntimeException() { - super(); - } - - public ComponentRuntimeException(String message) { - super(message); - } - - public ComponentRuntimeException(String message, String identifier) { - super(message, identifier); - } - - public ComponentRuntimeException(String message, Throwable cause) { - super(message, cause); - } - - public ComponentRuntimeException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public ComponentRuntimeException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java deleted file mode 100644 index 0f73fbfac5..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * 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.spi.component; - -import java.util.List; -import java.util.Collection; - -import org.w3c.dom.Document; - -import org.apache.tuscany.spi.event.RuntimeEventListener; -import org.apache.tuscany.spi.services.management.TuscanyManagementService; -import org.apache.tuscany.spi.wire.InboundWire; - -/** - * The runtime instantiation of an SCA composite component. Composites may contain child components, offer services, and - * have references. Children are contained in two namespaces, an application namespace for end-user components deployed - * to a runtime, and a system namespace for components that provide system services. - * - * @version $Rev$ $Date$ - */ -public interface CompositeComponent extends Component, RuntimeEventListener { - - /** - * Sets the management service associated with the composite - * - * @param managementService the management service associated with the composite - */ - void setManagementService(TuscanyManagementService managementService); - - /** - * Returns the value of a Property of this composite. - * - * @param name the name of the Property - * @return its value, or null if there is not such property or if it has no defined value - */ - Document getPropertyValue(String name); - - /** - * Registers a child of this composite. - * - * @param object the object to add as a child - * @throws ComponentRegistrationException - */ - void register(SCAObject object) throws ComponentRegistrationException; - - /** - * Returns the internal system wire associated with the given service name or null if not found - * - * @param serviceName the service name - * @return the system wire or null if not found - */ - InboundWire getInboundSystemWire(String serviceName); - - /** - * Returns a map of inbound system wires. - * - * @return a map of inbound system wires. - */ - Collection<InboundWire> getInboundSystemWires(); - - - /** - * Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to - * create the initial configuration components. - * - * @param name the name of the resulting component - * @param service the service interface the component should expose - * @param instance the Object that will become the component's implementation - * @throws ComponentRegistrationException - */ - <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance) - throws ComponentRegistrationException; - - /** - * Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to - * create the initial configuration components. - * - * @param name the name of the resulting component - * @param services the service interfaces the component should expose - * @param instance the Object that will become the component's implementation - * @throws ComponentRegistrationException - */ - <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance) - throws ComponentRegistrationException; - - /** - * Returns the child associated with a given name - */ - SCAObject getChild(String name); - - /** - * Returns the system child associated with a given name - */ - SCAObject getSystemChild(String name); - - /** - * Invoked by child components to return an wire to a target based on matching type. Resolved targets may be - * serviceBindings or components in the parent or its ancestors, or references in a sibling component - * - * @param instanceInterface the type of service being requested - * @return a reference to the requested service or null if one is not be found - * @throws TargetResolutionException - */ - InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException; - - /** - * Invoked by system child components to return a wire to a system target based on matching type. Resolved targets - * may be system serviceBindings or components in the parent or its ancestors, or references in a sibling component - * - * @param instanceInterface the type of service being requested - * @return a reference to the requested service or null if one is not be found - * @throws TargetResolutionException - */ - InboundWire resolveSystemAutowire(Class<?> instanceInterface) throws TargetResolutionException; - - /** - * Invoked by a parent component to return an wire to a target in a child based on matching type. Resolved targets - * must be serviceBindings. For example, given a parent P and two siblings, A and B, A would request an autowire by - * invoking {@link #resolveAutowire(Class<?>)} on P, which in turn could invoke the present method on B in order to - * resolve a target. - * - * @param instanceInterface the type of service being requested - * @return a reference to the requested service or null if one is not be found - * @throws TargetResolutionException - */ - InboundWire resolveExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException; - - /** - * Invoked by a parent component to return a wire to a system target in a child based on matching type. Resolved - * targets must be system serviceBindings. For example, given a parent P and two siblings, A and B, A would request - * an autowire by invoking {@link #resolveAutowire(Class<?>)} on P, which in turn could invoke the present method on - * B in order to resolve a target. - * - * @param instanceInterface the type of service being requested - * @return a reference to the requested service or null if one is not be found - * @throws TargetResolutionException - */ - InboundWire resolveSystemExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java deleted file mode 100644 index 128f301256..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/DuplicateNameException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an attempt to add an child to a composite component with a name equal to an existing child - * - * @version $Rev$ $Date$ - */ -public class DuplicateNameException extends ComponentRegistrationException { - - public DuplicateNameException(String message) { - super(message); - } - - public DuplicateNameException(String message, String identifier) { - super(message, identifier); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java deleted file mode 100644 index 7eb37c3639..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/IllegalTargetException.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.component; - -/** - * Thrown when a target for an operation is not of the required type - * - * @version $$Rev$$ $$Date$$ - */ -public class IllegalTargetException extends TargetResolutionException { - - public IllegalTargetException(String message, String identifier) { - super(message, identifier); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java deleted file mode 100644 index ffda730a27..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidAutowireInterface.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.component; - -/** - * Thrown when an invalid interface is specified during autowire registration - * - * @version $Rev$ $Date$ - */ -public class InvalidAutowireInterface extends ComponentRegistrationException { - - public InvalidAutowireInterface(String message, String identifier) { - super(message, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java deleted file mode 100644 index 21a1712e1a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/InvalidConversationSequenceException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an unknown operation sequence in a conversation - * - * @version $Rev$ $Date$ - */ -public class InvalidConversationSequenceException extends TargetInvocationException { - - public InvalidConversationSequenceException(String message, String identifier) { - super(message, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java deleted file mode 100644 index 06940aaff7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PersistenceException.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.component; - -/** - * Raised when an error persisting a component implementation instance is encountered - * - * @version $Rev$ $Date$ - */ -public class PersistenceException extends ComponentException { - public PersistenceException() { - } - - public PersistenceException(String message) { - super(message); - } - - public PersistenceException(String message, Throwable cause) { - super(message, cause); - } - - public PersistenceException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java deleted file mode 100644 index d2be6daadf..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an exception preparing a component - * - * @version $Rev$ $Date$ - */ -public class PrepareException extends ComponentException { - - public PrepareException(String message, String identifier) { - super(message, identifier); - } - - public PrepareException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java deleted file mode 100644 index 4ef0929422..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReactivationException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.component; - -/** - * Raised when an error is encountered reactivating a serialized instance - * - * @version $Rev$ $Date$ - */ -public class ReactivationException extends ComponentRuntimeException { - private String owner; - - public ReactivationException(String message) { - super(message); - } - - public ReactivationException(String message, String identifier, String ower) { - super(message, identifier); - this.owner = ower; - } - - public ReactivationException(Throwable cause) { - super(cause); - } - - public String getOwner() { - return owner; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java deleted file mode 100644 index 2b3ef4be30..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.apache.tuscany.spi.component; - -import java.util.List; - -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * The runtime instantiation of an SCA reference - * - * @version $Rev$ $Date$ - */ -public interface Reference extends SCAObject { - - /** - * Returns the contract for the reference. - * - * @return the contract for the reference. - */ - ServiceContract<?> getServiceContract(); - - /** - * Returns the collection of bindings configured for the reference. - * - * @return the collection of bindings configured for the reference. - */ - List<ReferenceBinding> getReferenceBindings(); - - /** - * Adds a binding the reference is configured with. - * - * @param binding the binding the reference is configured with. - */ - void addReferenceBinding(ReferenceBinding binding); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java deleted file mode 100644 index 82a2105a36..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ReferenceBinding.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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.spi.component; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * Manages an SCA reference configured with a binding - * - * @version $Rev$ $Date$ - */ -public interface ReferenceBinding extends SCAObject { - - /** - * Returns the binding qualified name - * - * @return the binding qualified name - */ - QName getBindingType(); - - /** - * Sets the parent reference for the binding - * - * @param reference the parent reference for the binding - */ - void setReference(Reference reference); - - /** - * Returns the inbound wire for flowing a request through the reference - */ - InboundWire getInboundWire(); - - /** - * Sets the inbound wire for flowing a request through the reference - */ - void setInboundWire(InboundWire wire); - - /** - * Returns the outbound wire used by the reference to connect to a target - */ - OutboundWire getOutboundWire(); - - /** - * Sets the outbound wire used by the reference to connect to a target - */ - void setOutboundWire(OutboundWire wire); - - /** - * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to the target service of - * the reference - * - * @param contract the service contract to invoke on - * @param operation the operation to invoke - * @throws TargetInvokerCreationException - */ - TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) - throws TargetInvokerCreationException; - - /** - * Returns the service contract for the binding - * - * @return the service contract for the binding - */ - ServiceContract<?> getBindingServiceContract(); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java deleted file mode 100644 index 6454e66369..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAExternalizable.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.component; - -/** - * A serialization contract for runtime SCA artifacts. When an instance is deserialized, runtime services defined in - * this contract must be set before reactivating the instance - * - * @version $Rev$ $Date$ - */ -public interface SCAExternalizable { - - /** - * Sets the current work context - * - * @param context the current work context - */ - void setWorkContext(WorkContext context); - - /** - * Callback after all values have been set prior to making the instance available in the runtime - * - * @throws org.apache.tuscany.spi.component.ReactivationException - * - */ - void reactivate() throws ReactivationException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java deleted file mode 100644 index 668eb1f90a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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.spi.component; - -import java.util.Map; - -import org.apache.tuscany.spi.Lifecycle; -import org.apache.tuscany.spi.event.EventPublisher; -import org.apache.tuscany.spi.model.Scope; - -/** - * Represents the base SCA artifact type in an assembly - * - * @version $Rev$ $Date$ - */ -public interface SCAObject extends EventPublisher, Lifecycle { - - /** - * Returns the artifact name - */ - String getName(); - - /** - * Returns the canonical artifact name - */ - String getCanonicalName(); - - /** - * Returns the parent composite, or null if the artifact does not have one - */ - CompositeComponent getParent(); - - /** - * Returns the artifact scope - */ - Scope getScope(); - - /** - * Returns true if the artifact is a system artifact - * - * @return true if the artifact is a system artifact - */ - boolean isSystem(); - - /** - * The extensions map contains other runtime context such as type systems for various databindings - * - * @return A live map of extended context - */ - Map<Object, Object> getExtensions(); - - /** - * Called to signal that the composite should perform any initizalization - */ - void prepare() throws PrepareException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java deleted file mode 100644 index a712b1b0eb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStartException.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.CoreRuntimeException; - -/** - * Denotes an error starting an SCAObject - * - * @version $Rev$ $Date$ - */ -public class SCAObjectStartException extends CoreRuntimeException { - - public SCAObjectStartException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java deleted file mode 100644 index 9f430bc414..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObjectStopException.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.CoreRuntimeException; - -/** - * Denotes an error stopping an SCAObject - * - * @version $Rev$ $Date$ - */ -public class SCAObjectStopException extends CoreRuntimeException { - - public SCAObjectStopException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java deleted file mode 100644 index 8b67dfa696..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.Lifecycle; -import org.apache.tuscany.spi.event.RuntimeEventListener; -import org.apache.tuscany.spi.model.Scope; - - -/** - * Manages the lifecycle and visibility of instances associated with a an {@link AtomicComponent}. - * - * @version $Rev$ $Date$ - */ -public interface ScopeContainer extends Lifecycle, RuntimeEventListener { - - /** - * Returns the scope value representing the scope context - */ - Scope getScope(); - - /** - * Registers a component with the scope component - */ - void register(AtomicComponent component); - - /** - * Returns an implementation instance associated with the current request context, creating one if necessary - * - * @throws TargetResolutionException - */ - Object getInstance(AtomicComponent component) throws TargetResolutionException; - - /** - * Returns an implementation instance associated with the current context. If no instance is found, a {@link - * TargetNotFoundException} is thrown - * - * @throws TargetResolutionException - */ - Object getAssociatedInstance(AtomicComponent component) throws TargetResolutionException; - - /** - * Persists a new component implementation instance, equivalent to an insert or append operation - * - * @param component the owning component - * @param id the id associated with the instance - * @param instance the instance to persist - * @param expiration the expiration in milliseconds - * @throws PersistenceException - */ - void persistNew(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException; - - /** - * Persists a component implementation instance, equivalent to an update operation - * - * @param component the owning component - * @param id the id associated with the instance - * @param instance the instance to persist - * @param expiration the expiration in milliseconds - * @throws PersistenceException - */ - void persist(AtomicComponent component, String id, Object instance, long expiration) throws PersistenceException; - - /** - * Removes a component implementation instance associated with the current context from persistent storage - * - * @param component the owning component - * @throws PersistenceException - */ - void remove(AtomicComponent component) throws PersistenceException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java deleted file mode 100644 index 3e7649d59e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainerMonitor.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.api.annotation.LogLevel; - -/** - * Defines monitor events for scope containers - * - * @version $Rev$ $Date$ - */ -public interface ScopeContainerMonitor { - - @LogLevel("SEVERE") - void eagerInitializationError(Exception e); - - @LogLevel("SEVERE") - void destructionError(TargetDestructionException e); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java deleted file mode 100644 index 181b094403..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.ObjectFactory; -import org.apache.tuscany.spi.model.Scope; - -/** - * Manages {@link ScopeContainer}s in the runtime - * - * @version $$Rev$$ $$Date$$ - */ -public interface ScopeRegistry { - - /** - * Returns the scope container for the given scope or null if one not found - * - * @param scope the scope - * @return the scope container for the given scope or null if one not found - */ - ScopeContainer getScopeContainer(Scope scope); - - <T extends ScopeContainer> void registerFactory(Scope scope, ObjectFactory<T> factory); - - void deregisterFactory(Scope scope); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java deleted file mode 100644 index 714a0a4313..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Service.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.component; - -import java.util.List; - -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * The runtime instantiation of an SCA service - * - * @version $Rev$ $Date$ - */ -public interface Service extends SCAObject { - - /** - * Returns the contract for the service. - * - * @return the contract for the service. - */ - ServiceContract<?> getServiceContract(); - - /** - * Returns the collection of bindings configured for the service. - * - * @return the collection of bindings configured for the service. - */ - List<ServiceBinding> getServiceBindings(); - - /** - * Adds a binding the service is exposed over. - * - * @param binding the binding the service is exposed over. - */ - void addServiceBinding(ServiceBinding binding); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java deleted file mode 100644 index 3912c3bb60..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ServiceBinding.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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.spi.component; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * The runtime instantiation of an SCA service binding. - * - * @version $Rev$ $Date$ - */ -public interface ServiceBinding extends SCAObject { - - /** - * Returns the binding qualified name - * - * @return the binding qualified name - */ - QName getBindingType(); - - /** - * Sets the parent service for the binding - * - * @param service the parent service for the binding - */ - void setService(Service service); - - /** - * Get the ServiceContract for the binding - * - * @return the ServiceContract for the binding - */ - ServiceContract<?> getBindingServiceContract(); - - /** - * Returns the inbound wire for flowing a request through the service - * - * @return the inbound wire for flowing a request through the service - */ - InboundWire getInboundWire(); - - /** - * Sets the inbound wire for flowing a request through the service - * - * @param wire the inbound wire for flowing a request through the service - */ - void setInboundWire(InboundWire wire); - - /** - * Returns the outbound wire for flowing a request out of the service - * - * @return the outbound wire for flowing a request out of the service - */ - OutboundWire getOutboundWire(); - - /** - * Sets the outbound wire for flowing a request out of the service - * - * @param wire the outbound wire for flowing a request out of the service - */ - void setOutboundWire(OutboundWire wire); - - /** - * Returns the target invoker for dispatching callback invocations - * - * @param contract the callback contract - * @param operation the callback operation the target invoker dispatches to - * @throws TargetInvokerCreationException - */ - TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) - throws TargetInvokerCreationException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java deleted file mode 100644 index 5f521f9b0a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetDestructionException.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an error destroying a target - * - * @version $Rev$ $Date$ - */ -public class TargetDestructionException extends TargetResolutionException { - - public TargetDestructionException(String message, String identifier) { - super(message, identifier); - } - - public TargetDestructionException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - - public TargetDestructionException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java deleted file mode 100644 index 6b8278cf8b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetException.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an error while performing an operation on a target component implementation instance - * - * @version $Rev$ $Date$ - */ -public abstract class TargetException extends ComponentException { - - public TargetException(String message) { - super(message); - } - - - public TargetException(String message, String identifier) { - super(message, identifier); - } - - public TargetException(String message, Throwable cause) { - super(message, cause); - } - - - public TargetException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public TargetException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java deleted file mode 100644 index eaea4c3bc9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInitializationException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an error initializing a target - * - * @version $Rev$ $Date$ - */ -public class TargetInitializationException extends TargetResolutionException { - - public TargetInitializationException(String message, String identifier) { - super(message, identifier); - } - - public TargetInitializationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public TargetInitializationException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java deleted file mode 100644 index 1fc2b24f5b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvocationException.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.component; - -/** - * Raised when an error is encountered during a target invocation - * - * @version $Rev$ $Date$ - */ -public class TargetInvocationException extends TargetException { - - public TargetInvocationException(String message) { - super(message); - } - - public TargetInvocationException(String message, String identifier) { - super(message, identifier); - } - - public TargetInvocationException(String message, Throwable cause) { - super(message, cause); - } - - public TargetInvocationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java deleted file mode 100644 index ac914401cf..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetInvokerCreationException.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an error creating a {@link org.apache.tuscany.spi.wire.TargetInvoker} - * - * @version $Rev$ $Date$ - */ -public abstract class TargetInvokerCreationException extends ComponentException { - - public TargetInvokerCreationException() { - } - - public TargetInvokerCreationException(String message) { - super(message); - } - - public TargetInvokerCreationException(String message, String identifier) { - super(message, identifier); - } - - public TargetInvokerCreationException(String message, Throwable cause) { - super(message, cause); - } - - public TargetInvokerCreationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public TargetInvokerCreationException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java deleted file mode 100644 index cd6996789c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetNotFoundException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.component; - -/** - * Thrown when a target of an operation cannot be found - * - * @version $$Rev$$ $$Date$$ - */ -public class TargetNotFoundException extends TargetResolutionException { - - public TargetNotFoundException(String message) { - super(message); - } - - public TargetNotFoundException(String message, String identifier) { - super(message, identifier); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java deleted file mode 100644 index 858fa9415d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/TargetResolutionException.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.component; - -/** - * Denotes an error retrieving a target instance - * - * @version $Rev$ $Date$ - */ -public class TargetResolutionException extends TargetException { - - public TargetResolutionException(String message) { - super(message); - } - - public TargetResolutionException(String message, String identifier) { - super(message, identifier); - } - - public TargetResolutionException(String message, Throwable cause) { - super(message, cause); - } - - public TargetResolutionException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java deleted file mode 100644 index 3e244873c8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * 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.spi.component; - -import java.util.LinkedList; - -/** - * Implementations track information associated with a request as it is processed by the runtime - * - * @version $Rev$ $Date$ - */ -public interface WorkContext { - - Object getCurrentCorrelationId(); - - void setCurrentCorrelationId(Object correlationId); - - /** - * Returns the current atomic component as a request is processed or null if it is not being tracked. Note that the - * current atomic component is typically only tracked during persistence operations involving implementation - * instances - * - * @return the current atomic component as a request is processed or null - */ - AtomicComponent getCurrentAtomicComponent(); - - /** - * Sets the current atomic component that is handling processing of a request. Note that in most cases it will not - * be necessary to track this in the rumtime - * - * @param component the current atomic component - */ - void setCurrentAtomicComponent(AtomicComponent component); - - /** - * Returns the current chain of SCAObject addresses - */ - LinkedList<Object> getCurrentCallbackRoutingChain(); - - /** - * Sets the current stack of SCAObject addresses - */ - void setCurrentCallbackRoutingChain(LinkedList<Object> callbackRoutingChain); - - /** - * Returns the composite where a remote request came in - */ - CompositeComponent getRemoteComponent(); - - /** - * Sets the composite where a remote request came in - */ - void setRemoteComponent(CompositeComponent component); - - /** - * Returns the unique key for the given identifier associated with the current request - */ - Object getIdentifier(Object type); - - /** - * Sets the unique key for the given identifier associated with the current request - */ - void setIdentifier(Object type, Object identifier); - - /** - * Clears the unique key for the given identifier associated with the current request - */ - void clearIdentifier(Object type); - - /** - * Clears all identifiers associated with the current request - */ - void clearIdentifiers(); - - /** - * Removes and returns the name of the last remotable service to handle the current request - * - * @return the name of the last remotable service to handle the current request or null - */ - String popServiceName(); - - /** - * Returns the name of the last remotable service to handle the current request - * - * @return the name of the last remotable service to handle the current request or null - */ - String getCurrentServiceName(); - - /** - * Adds the name of the last remotable service to handle the current request - * - * @param name the name of the last remotable service to handle the current request or null - */ - void pushServiceName(String name); - - /** - * Clears the stack of current service names - */ - void clearServiceNames(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java deleted file mode 100644 index 6916c62f51..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBinding.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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.spi.databinding; - -import java.lang.annotation.Annotation; - -import org.apache.tuscany.spi.model.DataType; - -/** - * DataBinding represents a data representation, for example, SDO, JAXB and AXIOM - */ -public interface DataBinding { - /** - * A special databinding for input message of an operation - */ - String IDL_INPUT = "idl:input"; - /** - * A special databinding for output message of an operation - */ - String IDL_OUTPUT = "idl:output"; - /** - * A special databinding for fault message of an operation - */ - String IDL_FAULT = "idl:fault"; - /** - * The name of a databinding should be case-insensitive and unique - * - * @return The name of the databinding - */ - String getName(); - - /** - * Get the aliases for the databinding - * - * @return An array of aliases - */ - String[] getAliases(); - - /** - * Introspect and populate information to a DataType model - * - * @param javaType The java class or interface to be introspected - * @param annotations The java annotations - * @return true if the databinding has recognized the given data type - */ - boolean introspect(DataType dataType, Annotation[] annotations); - - /** - * Introspect the data to figure out the corresponding data type - * - * @param value The object to be checked - * @return The DataType or null if the java type is not supported by this databinding - */ - DataType introspect(Object value); - - /** - * Provide a WrapperHandler for this databinding - * @return A wrapper handler which can handle wrapping/wrapping for this databinding - */ - WrapperHandler getWrapperHandler(); - - /** - * Make a copy of the object for "pass-by-value" semantics - * @param source object to copy - * @return copy of the object passed in as argument - */ - Object copy(Object object); - - /** - * Get the type mapper for simple types - * @return The databinding-specific simple type mapper - */ - SimpleTypeMapper getSimpleTypeMapper(); - - /** - * Get the handler that can handle exceptions/faults in the - * databinding-specific way - * - * @return An instance of the exception handler - */ - ExceptionHandler getExceptionHandler(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java deleted file mode 100644 index 09f0347777..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataBindingRegistry.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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.spi.databinding; - -import java.lang.annotation.Annotation; - -import org.apache.tuscany.spi.model.DataType; - -/** - * The registry for data bindings - */ -public interface DataBindingRegistry { - /** - * Register a data binding - * - * @param dataBinding - */ - void register(DataBinding dataBinding); - - /** - * Look up a data binding by id - * - * @param id The name of the databinding - * @return The databinding - */ - DataBinding getDataBinding(String id); - - /** - * Unregister a data binding - * - * @param id - * @return The unregistered databinding - */ - DataBinding unregister(String id); - - /** - * Introspect the java class to figure out what DataType supports it - * - * @param DataType The initial data type - * @param annotations The java annotations - * @return A DataType representing the java type or null if no databinding - * recognizes the java type - */ - boolean introspectType(DataType dataType, Annotation[] annotations); - - /** - * Introspect the value to figure out the corresponding DataType - * - * @param value The object value - * @return A DataType representing the value or null if no databinding - * recognizes the value - */ - DataType introspectType(Object value); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java deleted file mode 100755 index a0eb7ac10d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/DataPipe.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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.spi.databinding; - -/** - * Data pipe allows a data source pushes data into its sink and pipe the data into its result - * - * @param <S> The data binding type of the sink - * @param <R> The data binding type of the result - */ -public interface DataPipe<S, R> extends Transformer { - - /** - * Returns a sink (for example, java.io.OutputStream, java.io.Writer or org.xml.sax.ContentHandler) to receive data - * pushed by the source - * - * @return The sink to consume data - */ - S getSink(); - - /** - * Returns the data populated by the sink - * - * @return - */ - R getResult(); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java deleted file mode 100644 index 5599ae00de..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.spi.databinding; - -import org.apache.tuscany.spi.model.DataType; - -/** - * ExceptionHandler provides databinding-specific logic for exception handling - * - * @version $Rev$ $Date$ - */ -public interface ExceptionHandler { - /** - * Create an exception to wrap the fault data - * - * @param exceptionType The DataType for the exception - * @param message The error message - * @param faultInfo The databinding-specific fault data - * @param cause The protocol-specific error - * @return An instance of java exception to represent the fault - */ - Exception createException(DataType<DataType> exceptionType, String message, Object faultInfo, Throwable cause); - - /** - * Retrieve the fault info from a java exception - * - * @param exception The databinding-specific java exception that represents - * the fault data - * @return The databinding-specific fault data - */ - Object getFaultInfo(Exception exception); - - /** - * Introspect an exception class to figure out the fault data type - * - * @param exceptionDataType The exception class - * @return The data type for the fault - */ - DataType<?> getFaultType(DataType exceptionDataType); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java deleted file mode 100755 index 53b8e8d95f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Mediator.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.spi.databinding; - -import java.util.Map; - -import org.apache.tuscany.spi.model.DataType; - -/** - * This interface will be used as a Tuscany system service to perform data mediations - * - * Mediate the data from one type to the other one - * - */ -public interface Mediator { - - /** - * Mediate the data from the source type to the target type - * @param source The data to be mediated - * @param sourceDataType Data type for the source data - * @param targetDataType Data type for the target data - * @param context - * @return - */ - Object mediate(Object source, DataType sourceDataType, DataType targetDataType, Map<Class<?>, Object> context); - /** - * Mediate the source data into the target which is a sink to receive the data - * @param source The data to be mediated - * @param target The sink to receive data - * @param sourceDataType Data type for the source data - * @param targetDataType Data type for the target data - */ - void mediate( - Object source, - Object target, - DataType sourceDataType, - DataType targetDataType, - Map<Class<?>, Object> context); - - /** - * Get the DataBinding registry - * @return - */ - DataBindingRegistry getDataBindingRegistry(); - - /** - * Get the Transformer registry - * @return - */ - TransformerRegistry getTransformerRegistry(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java deleted file mode 100644 index 21e8cc2750..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PullTransformer.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.databinding; - -/** - * PullTransformer transforms data from one binding format to the other one which can be directly consumed - * - * @param <S> The source data type - * @param <R> the target data type - */ -public interface PullTransformer<S, R> extends Transformer { - /** - * Transform source data into the result type. - * - * @param source The source data - * @param context The context for the transformation - * @return The transformed result - */ - R transform(S source, TransformationContext context); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java deleted file mode 100644 index d68b6aa772..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/PushTransformer.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.spi.databinding; - -/** - * A transformer that pushes data from its source into the sink - * - * @param <S> - * @param <R> - */ -public interface PushTransformer<S, R> extends Transformer { - /** - * @param source The source data - * @param sink The sink to receive the data - * @param context - */ - void transform(S source, R sink, TransformationContext context); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java deleted file mode 100644 index 634d489c11..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/SimpleTypeMapper.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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.spi.databinding; - -import javax.xml.namespace.QName; - -/** - * Type Mapper between XML schema simple data types and java objects - */ -public interface SimpleTypeMapper { - /** - * Parse the XML lexical representation into a java object - * @param simpleType The XSD simple type - * @param value the XML lexical representation - * @param context The context of the transformation - * @return A java object for the XML value - */ - Object toJavaObject(QName simpleType, String value, TransformationContext context); - /** - * Create the XML lexical representation for a java object - * @param simpleType The XSD simple type - * @param obj The java object - * @param context The context of the transformation - * @return The XML lexical representation - */ - String toXMLLiteral(QName simpleType, Object obj, TransformationContext context); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java deleted file mode 100755 index 8287de1707..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationContext.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.spi.databinding; - -import java.util.Map; - -import org.apache.tuscany.spi.model.DataType; - -/** - * Context for data transformation - * - */ -public interface TransformationContext { - /** - * Get the source data type - * - * @return - */ - DataType getSourceDataType(); - - /** - * Get the target data type - * - * @return - */ - DataType getTargetDataType(); - - /** - * Set the source data type - * - * @param sourceDataType - */ - void setSourceDataType(DataType sourceDataType); - - /** - * Set the target data type - * - * @param targetDataType - */ - void setTargetDataType(DataType targetDataType); - - /** - * Get the classloader - * - * @return - */ - ClassLoader getClassLoader(); - - /** - * Get a map of metadata - * - * @return - */ - Map<Class<?>, Object> getMetadata(); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java deleted file mode 100755 index 9b57e1cf70..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformationException.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.databinding; - -import org.apache.tuscany.api.TuscanyRuntimeException; - -/** - * Reports problems during data transformation - */ -public class TransformationException extends TuscanyRuntimeException { - - private static final long serialVersionUID = 7662385613693006428L; - - public TransformationException() { - super(); - } - - public TransformationException(String message, Throwable cause) { - super(message, cause); - } - - public TransformationException(String message) { - super(message); - } - - public TransformationException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java deleted file mode 100755 index 2f969e979d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/Transformer.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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.spi.databinding; - -/** - * A transformer provides the data transformation from source type to target type. The cost of the transformation is - * modeled as weight. - */ -public interface Transformer { - /** - * Get the source type that this transformer transforms data from. The type is used as the key when the transformer - * is registered with TransformerRegistry. - * - * @return A key indentifying the source type - */ - String getSourceDataBinding(); - - /** - * Get the target type that this transformer transforms data into. The type is used as the key when the transformer - * is registered with TransformerRegistry. - * - * @return A key indentifying the target type - */ - String getTargetDataBinding(); - - /** - * Get the cost of the transformation. The weight can be used to choose the most efficient path if there are more - * than one available from the source to the target. - * - * @return An integer representing the cost of the transformation - */ - int getWeight(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java deleted file mode 100755 index 5381dfa081..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/TransformerRegistry.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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.spi.databinding; - -import java.util.List; - -/** - * Registry for data transformers - */ -public interface TransformerRegistry { - /** - * Register a transformer - * - * @param sourceDataBinding - * @param targetDataBinding - * @param weight - * @param transformer - */ - void registerTransformer(String sourceDataBinding, - String targetDataBinding, - int weight, - Transformer transformer); - - /** - * Register a transformer - * - * @param transformer - */ - void registerTransformer(Transformer transformer); - - /** - * Unregister a transformer - * - * @param sourceDataBinding - * @param targetDataBinding - * @return - */ - boolean unregisterTransformer(String sourceDataBinding, String targetDataBinding); - - /** - * Get the direct Transformer which can transform data from source type to - * result type - * - * @param sourceDataBinding - * @param targetDataBinding - * @return - */ - Transformer getTransformer(String sourceDataBinding, String targetDataBinding); - - /** - * Get the a chain of Transformers which can transform data from source type - * to result type - * - * @param sourceDataBinding - * @param targetDataBinding - * @return - */ - List<Transformer> getTransformerChain(String sourceDataBinding, String targetDataBinding); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java deleted file mode 100644 index 9643ca280a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/WrapperHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.spi.databinding; - -import java.util.List; - -import org.apache.tuscany.spi.idl.ElementInfo; - -/** - * A contract for transformers to deal with wrapping/unwrapping for WSDL wrapper style operations - */ -public interface WrapperHandler<T> { - /** - * Create a wrapper element - * - * @param element The XSD element - * @param context The transformation context - * @return An object representing the wrapper element - */ - T create(ElementInfo element, TransformationContext context); - - /** - * Set child element for the wrapper - * - * @param wrapper The wrapper - * @param i The index - * @param childElement The XSD element - * @param value The value of the child - */ - void setChild(T wrapper, int i, ElementInfo childElement, Object value); - - /** - * Get a list of child elements from the wrapper - * @param wrapper - * @return child elements under the wrapper - */ - List getChildren(T wrapper); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java deleted file mode 100644 index 2b927b8e55..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DOMHelper.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * Helper for DOM - */ -public final class DOMHelper { - private static final DocumentBuilderFactory FACTORY = DocumentBuilderFactory.newInstance(); - static { - FACTORY.setNamespaceAware(true); - } - - private DOMHelper() { - } - - public static Document newDocument() throws ParserConfigurationException { - return newDocumentBuilder().newDocument(); - } - - public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException { - return FACTORY.newDocumentBuilder(); - } - - public static QName getQName(Node node) { - String ns = node.getNamespaceURI(); - if (ns == null) { - ns = ""; - } - // node.getLocalName() will return null if it is created using DOM Level - // 1 method - // such as createElement() - return new QName(ns, node.getNodeName()); - } - - public static Element createElement(Document document, QName name) { - String prefix = name.getPrefix(); - String qname = - (prefix != null && prefix.length() > 0) ? prefix + ":" + name.getLocalPart() : name - .getLocalPart(); - return document.createElementNS(name.getNamespaceURI(), qname); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java deleted file mode 100644 index 1598637d4e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtension.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import java.lang.annotation.Annotation; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.databinding.DataBinding; -import org.apache.tuscany.spi.databinding.DataBindingRegistry; -import org.apache.tuscany.spi.databinding.ExceptionHandler; -import org.apache.tuscany.spi.databinding.SimpleTypeMapper; -import org.apache.tuscany.spi.databinding.WrapperHandler; -import org.apache.tuscany.spi.model.DataType; -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Scope; -import org.osoa.sca.annotations.Service; - -/** - * Base Implementation of DataBinding - * - * @version $Rev$ $Date$ - */ -@Service(DataBinding.class) -@Scope("COMPOSITE") -@EagerInit -public abstract class DataBindingExtension implements DataBinding { - - protected DataBindingRegistry registry; - - protected Class<?> baseType; - - protected String name; - protected String[] aliases; - - /** - * Create a databinding with the base java type whose name will be used as - * the name of the databinding - * - * @param baseType The base java class or interface representing the - * databinding, for example, org.w3c.dom.Node - */ - protected DataBindingExtension(Class<?> baseType) { - this(baseType.getName(), null, baseType); - } - - /** - * Create a databinding with the name and base java type - * - * @param name The name of the databinding - * @param baseType The base java class or interface representing the - * databinding, for example, org.w3c.dom.Node - */ - protected DataBindingExtension(String name, Class<?> baseType) { - this(name, null, baseType); - } - - /** - * Create a databinding with the name and base java type - * - * @param name The name of the databinding - * @param aliases The aliases of the databinding - * @param baseType The base java class or interface representing the - * databinding, for example, org.w3c.dom.Node - */ - protected DataBindingExtension(String name, String[] aliases, Class<?> baseType) { - this.name = name; - this.baseType = baseType; - this.aliases = aliases; - } - - @Autowire - public void setDataBindingRegistry(DataBindingRegistry registry) { - this.registry = registry; - } - - @Init - public void init() { - registry.register(this); - } - - public boolean introspect(DataType type, Annotation[] annotations) { - assert type != null; - Type physical = type.getPhysical(); - if (physical instanceof ParameterizedType) { - physical = ((ParameterizedType)physical).getRawType(); - } - if (physical instanceof Class) { - Class cls = (Class)physical; - if (baseType != null && baseType.isAssignableFrom(cls)) { - type.setDataBinding(getName()); - type.setLogical(baseType); - return true; - } - } - return false; - } - - protected static org.apache.tuscany.api.annotation.DataType getDataTypeAnnotation(Annotation[] annotations) { - for (Annotation a : annotations) { - if (a.annotationType() == org.apache.tuscany.api.annotation.DataType.class) { - return (org.apache.tuscany.api.annotation.DataType) a; - } - } - return null; - } - - public DataType introspect(Object value) { - if (value == null) { - return null; - } else { - DataType<Class> dataType = new DataType<Class>(value.getClass(), value.getClass()); - if (introspect(dataType, null)) { - return dataType; - } else { - return null; - } - } - } - - public final String getName() { - return name; - } - - /** - * @see org.apache.tuscany.spi.databinding.DataBinding#getWrapperHandler() - */ - public WrapperHandler getWrapperHandler() { - return null; - } - - public ExceptionHandler getExceptionHandler() { - return null; - } - - public Object copy(Object object) { - return object; - } - - public SimpleTypeMapper getSimpleTypeMapper() { - return new SimpleTypeMapperExtension(); - } - - public String[] getAliases() { - return aliases; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java deleted file mode 100644 index 14a4d8f66a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.databinding.PullTransformer; -import org.apache.tuscany.spi.databinding.SimpleTypeMapper; -import org.apache.tuscany.spi.databinding.TransformationContext; -import org.apache.tuscany.spi.idl.XMLType; - -/** - * Transformer to convert data from a simple java object to a databinding's representation - */ -public abstract class Java2SimpleTypeTransformer<T> extends TransformerExtension<Object, T> implements - PullTransformer<Object, T> { - - protected SimpleTypeMapper mapper; - - public Java2SimpleTypeTransformer() { - this.mapper = new SimpleTypeMapperExtension(); - } - - public Java2SimpleTypeTransformer(SimpleTypeMapper mapper) { - this.mapper = (mapper != null) ? mapper : new SimpleTypeMapperExtension(); - } - - public T transform(Object source, TransformationContext context) { - XMLType xmlType = (XMLType) context.getTargetDataType().getLogical(); - String text = mapper.toXMLLiteral(xmlType.getTypeName(), source, context); - return createElement(xmlType.getElementName(), text, context); - } - - public Class getSourceType() { - return Object.class; - } - - public int getWeight() { - return 10000; - } - - protected abstract T createElement(QName element, String literal, TransformationContext context); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java deleted file mode 100644 index 28b02f596a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java +++ /dev/null @@ -1,63 +0,0 @@ -/*
- * 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.spi.databinding.extension;
-
-import org.apache.tuscany.spi.databinding.PullTransformer;
-import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
-import org.apache.tuscany.spi.databinding.TransformationContext;
-import org.apache.tuscany.spi.idl.XMLType;
-
-/**
- * Transformer to convert data from a databinding's representation of simple
- * types to Java Objects
- */
-public abstract class SimpleType2JavaTransformer<T> extends TransformerExtension<T, Object> implements
- PullTransformer<T, Object> {
-
- protected SimpleTypeMapper mapper;
-
- public SimpleType2JavaTransformer() {
- this.mapper = new SimpleTypeMapperExtension();
- }
-
- public SimpleType2JavaTransformer(SimpleTypeMapper mapper) {
- this.mapper = (mapper != null) ? mapper : new SimpleTypeMapperExtension();
- }
-
- public Object transform(T source, TransformationContext context) {
- XMLType xmlType = (XMLType) context.getSourceDataType().getLogical();
- return mapper.toJavaObject(xmlType.getTypeName(), getText(source), context);
- }
-
- public Class getTargetType() {
- return Object.class;
- }
-
- public int getWeight() {
- // Cannot be used for imtermediate
- return 10000;
- }
-
- /**
- * Get the string value from the source
- * @param source
- * @return A string
- */
- protected abstract String getText(T source);
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java deleted file mode 100644 index e4671f621c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtension.java +++ /dev/null @@ -1,392 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.namespace.NamespaceContext; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.databinding.SimpleTypeMapper; -import org.apache.tuscany.spi.databinding.TransformationContext; -import org.apache.tuscany.spi.idl.TypeInfo; - -public class SimpleTypeMapperExtension extends XSDDataTypeConverter implements SimpleTypeMapper { - - public static final Map<Class, String> JAVA2XML = new HashMap<Class, String>(); - - public static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema"; - - public static final Map<String, Class> XML2JAVA = new HashMap<String, Class>(); - - public static final QName XSD_ANY = new QName(URI_2001_SCHEMA_XSD, "any"); - - public static final QName XSD_ANYSIMPLETYPE = new QName(URI_2001_SCHEMA_XSD, "anySimpleType"); - - public static final QName XSD_ANYTYPE = new QName(URI_2001_SCHEMA_XSD, "anyType"); - - public static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI"); - - public static final QName XSD_BASE64 = new QName(URI_2001_SCHEMA_XSD, "base64Binary"); - - public static final QName XSD_BOOLEAN = new QName(URI_2001_SCHEMA_XSD, "boolean"); - - public static final QName XSD_BYTE = new QName(URI_2001_SCHEMA_XSD, "byte"); - - public static final QName XSD_DATE = new QName(URI_2001_SCHEMA_XSD, "date"); - - public static final QName XSD_DATETIME = new QName(URI_2001_SCHEMA_XSD, "dateTime"); - - public static final QName XSD_DAY = new QName(URI_2001_SCHEMA_XSD, "gDay"); - - public static final QName XSD_DECIMAL = new QName(URI_2001_SCHEMA_XSD, "decimal"); - - public static final QName XSD_DOUBLE = new QName(URI_2001_SCHEMA_XSD, "double"); - - public static final QName XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, "duration"); - - public static final QName XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, "ENTITIES"); - - public static final QName XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, "ENTITY"); - - public static final QName XSD_FLOAT = new QName(URI_2001_SCHEMA_XSD, "float"); - - public static final QName XSD_HEXBIN = new QName(URI_2001_SCHEMA_XSD, "hexBinary"); - - public static final QName XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, "IDREF"); - - public static final QName XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, "IDREFS"); - - public static final QName XSD_INT = new QName(URI_2001_SCHEMA_XSD, "int"); - - public static final QName XSD_INTEGER = new QName(URI_2001_SCHEMA_XSD, "integer"); - - public static final QName XSD_LONG = new QName(URI_2001_SCHEMA_XSD, "long"); - - public static final QName XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, "gMonth"); - - public static final QName XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, "gMonthDay"); - - public static final QName XSD_NAME = new QName(URI_2001_SCHEMA_XSD, "Name"); - - public static final QName XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, "NCName"); - - public static final QName XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "negativeInteger"); - - public static final QName XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, "NMTOKEN"); - - public static final QName XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, "NMTOKENS"); - - public static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonNegativeInteger"); - - public static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonPositiveInteger"); - - public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString"); - - public static final QName XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, "NOTATION"); - - public static final QName XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "positiveInteger"); - - public static final QName XSD_QNAME = new QName(URI_2001_SCHEMA_XSD, "QName"); - - public static final QName XSD_SHORT = new QName(URI_2001_SCHEMA_XSD, "short"); - - public static final Map<String, TypeInfo> XSD_SIMPLE_TYPES = new HashMap<String, TypeInfo>(); - - public static final QName XSD_STRING = new QName(URI_2001_SCHEMA_XSD, "string"); - - public static final QName XSD_TIME = new QName(URI_2001_SCHEMA_XSD, "time"); - - public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token"); - - public static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte"); - - public static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt"); - - public static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong"); - - public static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort"); - - public static final QName XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, "gYear"); - - public static final QName XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, "gYearMonth"); - - private static final String[] XSD_TYPE_NAMES = - {"string", "boolean", "double", "float", "int", "integer", "long", "short", "byte", "decimal", "base64Binary", - "hexBinary", "anySimpleType", "anyType", "any", "QName", "dateTime", "date", "time", "normalizedString", - "token", "unsignedLong", "unsignedInt", "unsignedShort", "unsignedByte", "positiveInteger", "negativeInteger", - "nonNegativeInteger", "nonPositiveInteger", "gYearMonth", "gMonthDay", "gYear", "gMonth", "gDay", "duration", - "Name", "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "ENTITY", "ENTITIES", "IDREF", "IDREFS", "anyURI", - "language", "ID"}; - - static { - for (String type : XSD_TYPE_NAMES) { - TypeInfo simpleType = new TypeInfo(new QName(URI_2001_SCHEMA_XSD, type), true, null); - XSD_SIMPLE_TYPES.put(type, simpleType); - } - } - - static { - JAVA2XML.put(boolean.class, "boolean"); - JAVA2XML.put(byte.class, "byte"); - JAVA2XML.put(short.class, "short"); - JAVA2XML.put(int.class, "int"); - JAVA2XML.put(long.class, "long"); - JAVA2XML.put(float.class, "float"); - JAVA2XML.put(double.class, "double"); - JAVA2XML.put(Boolean.class, "boolean"); - JAVA2XML.put(Byte.class, "byte"); - JAVA2XML.put(Short.class, "short"); - JAVA2XML.put(Integer.class, "int"); - JAVA2XML.put(Long.class, "long"); - JAVA2XML.put(Float.class, "float"); - JAVA2XML.put(Double.class, "double"); - JAVA2XML.put(java.lang.String.class, "string"); - JAVA2XML.put(java.math.BigInteger.class, "integer"); - JAVA2XML.put(java.math.BigDecimal.class, "decimal"); - JAVA2XML.put(java.util.Calendar.class, "dateTime"); - JAVA2XML.put(java.util.Date.class, "dateTime"); - JAVA2XML.put(javax.xml.namespace.QName.class, "QName"); - JAVA2XML.put(java.net.URI.class, "string"); - JAVA2XML.put(javax.xml.datatype.XMLGregorianCalendar.class, "anySimpleType"); - JAVA2XML.put(javax.xml.datatype.Duration.class, "duration"); - JAVA2XML.put(java.lang.Object.class, "anyType"); - JAVA2XML.put(java.awt.Image.class, "base64Binary"); - JAVA2XML.put(byte[].class, "base64Binary"); - // java2XSD.put(javax.activation.DataHandler.class, "base64Binary"); - JAVA2XML.put(javax.xml.transform.Source.class, "base64Binary"); - JAVA2XML.put(java.util.UUID.class, "string"); - } - - static { - XML2JAVA.put("string", java.lang.String.class); - XML2JAVA.put("integer", java.math.BigInteger.class); - XML2JAVA.put("int", int.class); - XML2JAVA.put("long", long.class); - XML2JAVA.put("short", short.class); - XML2JAVA.put("decimal", java.math.BigDecimal.class); - XML2JAVA.put("float", float.class); - XML2JAVA.put("double", double.class); - XML2JAVA.put("boolean", boolean.class); - XML2JAVA.put("byte", byte.class); - XML2JAVA.put("QName", javax.xml.namespace.QName.class); - XML2JAVA.put("dateTime", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("base64Binary", byte[].class); - XML2JAVA.put("hexBinary", byte[].class); - XML2JAVA.put("unsignedInt", long.class); - XML2JAVA.put("unsignedShort", int.class); - XML2JAVA.put("unsignedByte", short.class); - XML2JAVA.put("time", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("date", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("gDay", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("gMonth", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("gYear", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("gYearMonth", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("gMonthDay", javax.xml.datatype.XMLGregorianCalendar.class); - XML2JAVA.put("anySimpleType", java.lang.Object.class); // For elements - // XML2JAVA.put("anySimpleType", java.lang.String.class); // For - // attributes - XML2JAVA.put("duration", javax.xml.datatype.Duration.class); - XML2JAVA.put("NOTATION", javax.xml.namespace.QName.class); - } - - private DatatypeFactory factory; - - public SimpleTypeMapperExtension() { - super(); - try { - this.factory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException e) { - throw new IllegalArgumentException(e); - } - } - - public Class getJavaType(QName xmlType) { - if (URI_2001_SCHEMA_XSD.equals(xmlType.getNamespaceURI())) { - return XML2JAVA.get(xmlType.getLocalPart()); - } else { - return null; - } - } - - public TypeInfo getXMLType(Class javaType) { - return XSD_SIMPLE_TYPES.get(JAVA2XML.get(javaType)); - } - - public Object toJavaObject(QName simpleType, String literal, TransformationContext context) { - /** - * <ul> - * <li>xsd:string --- java.lang.String - * <li>xsd:integer --- java.math.BigInteger - * <li>xsd:int --- int - * <li>xsd:long --- long - * <li>xsd:short --- short - * <li>xsd:decimal --- java.math.BigDecimal - * <li>xsd:float --- float - * <li>xsd:double --- double - * <li>xsd:boolean --- boolean - * <li>xsd:byte --- byte - * <li>xsd:QName --- javax.xml.namespace.QName - * <li>xsd:dateTime --- javax.xml.datatype.XMLGregorianCalendar - * <li>xsd:base64Binary --- byte[] - * <li>xsd:hexBinary --- byte[] - * <li>xsd:unsignedInt --- long - * <li>xsd:unsignedShort --- int - * <li>xsd:unsignedByte --- short - * <li>xsd:time --- javax.xml.datatype.XMLGregorianCalendar - * <li>xsd:date --- javax.xml.datatype.XMLGregorianCalendar - * <li>xsd:g* --- javax.xml.datatype.XMLGregorianCalendar - * <li>xsd:anySimpleType (for xsd:element of this type)a - * java.lang.Object - * <li>xsd:anySimpleType (for xsd:attribute of this type) - * java.lang.String - * <li>xsd:duration javax.xml.datatype.Duration - * <li>xsd:NOTATION javax.xml.namespace.QName - * </ul> - */ - - if (literal == null) { - return null; - } - String value = literal.trim(); - - QName type = simpleType; - if (type.equals(XSD_STRING)) { - return parseString(value); - } else if (type.equals(XSD_INT)) { - return parseInt(value); - } else if (type.equals(XSD_INTEGER)) { - return parseInteger(value); - } else if (type.equals(XSD_INT)) { - return parseInt(value); - } else if (type.equals(XSD_FLOAT)) { - return parseFloat(value); - } else if (type.equals(XSD_DOUBLE)) { - return parseDouble(value); - } else if (type.equals(XSD_SHORT)) { - return parseShort(value); - } else if (type.equals(XSD_DECIMAL)) { - return parseDecimal(value); - } else if (type.equals(XSD_BOOLEAN)) { - return parseBoolean(value); - } else if (type.equals(XSD_BYTE)) { - return parseByte(value); - } else if (type.equals(XSD_LONG)) { - return parseLong(value); - } else if (type.equals(XSD_UNSIGNEDBYTE)) { - return parseUnsignedShort(value); - } else if (type.equals(XSD_UNSIGNEDSHORT)) { - return parseUnsignedShort(value); - } else if (type.equals(XSD_UNSIGNEDINT)) { - return parseUnsignedInt(value); - } else if (type.equals(XSD_UNSIGNEDLONG)) { - return parseUnsignedInt(value); - } else if (type.equals(XSD_DATETIME)) { - return parseDateTime(value); - } else if (type.equals(XSD_DATE)) { - return parseDate(value); - } else if (type.equals(XSD_TIME)) { - return parseTime(value); - } else if (type.equals(XSD_DURATION)) { - return parseDuration(value); - } else if (type.equals(XSD_HEXBIN)) { - return parseHexBinary(value); - } else if (type.equals(XSD_BASE64)) { - return parseBase64Binary(value); - } else if (type.equals(XSD_QNAME)) { - NamespaceContext namespaceContext = - (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null); - return parseQName(value, namespaceContext); - } else if (type.equals(XSD_NOTATION)) { - NamespaceContext namespaceContext = - (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null); - return parseQName(value, namespaceContext); - } else if (type.equals(XSD_YEAR)) { - return factory.newXMLGregorianCalendar(value); - } else if (type.equals(XSD_MONTH)) { - return factory.newXMLGregorianCalendar(value); - } else if (type.equals(XSD_DAY)) { - return factory.newXMLGregorianCalendar(value); - } else if (type.equals(XSD_YEARMONTH)) { - return factory.newXMLGregorianCalendar(value); - } else if (type.equals(XSD_MONTHDAY)) { - return factory.newXMLGregorianCalendar(value); - } else { - return value; - } - } - - @SuppressWarnings("deprecation") - private XMLGregorianCalendar toXMLGregorianCalendar(Date date) { - GregorianCalendar c = - new GregorianCalendar(date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), - date.getSeconds()); - return factory.newXMLGregorianCalendar(c); - } - - private XMLGregorianCalendar toXMLGregorianCalendar(GregorianCalendar calendar) { - return factory.newXMLGregorianCalendar(calendar); - } - - public String toXMLLiteral(QName simpleType, Object obj, TransformationContext context) { - if (obj instanceof Float || obj instanceof Double) { - if (obj instanceof Float) { - return printDouble(((Float)obj).floatValue()); - } else { - return printDouble(((Double)obj).doubleValue()); - } - } else if (obj instanceof GregorianCalendar) { - GregorianCalendar calendar = (GregorianCalendar)obj; - return toXMLGregorianCalendar(calendar).toXMLFormat(); - } else if (obj instanceof Date) { - return toXMLGregorianCalendar((Date)obj).toXMLFormat(); - } else if (obj instanceof XMLGregorianCalendar) { - return ((XMLGregorianCalendar)obj).toXMLFormat(); - } else if (obj instanceof byte[]) { - if (simpleType != null) { - if (simpleType.equals(XSD_BASE64)) { - return printBase64Binary((byte[])obj); - } else if (simpleType.equals(XSD_HEXBIN)) { - return printHexBinary((byte[])obj); - } - } - } else if (obj instanceof QName) { - NamespaceContext namespaceContext = - (NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class) : null); - return printQName((QName)obj, namespaceContext); - } - return obj.toString(); - } - - public static boolean isSimpleXSDType(QName typeName) { - if (typeName == null) { - return false; - } - return typeName.getNamespaceURI().equals(URI_2001_SCHEMA_XSD) - && XSD_SIMPLE_TYPES.get(typeName.getLocalPart()) != null; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java deleted file mode 100644 index d54dbca1d1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/TransformerExtension.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Scope; -import org.osoa.sca.annotations.Service; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.databinding.Transformer; -import org.apache.tuscany.spi.databinding.TransformerRegistry; - -/** - * Base Implementation of Transformer which provides the registration to the transformer registry - * - * @version $Rev$ $Date$ - */ -@Service(Transformer.class) -@Scope("COMPOSITE") -@EagerInit -public abstract class TransformerExtension<S, T> implements Transformer { - - protected TransformerRegistry registry; - - protected TransformerExtension() { - super(); - } - - @Autowire - public void setTransformerRegistry(TransformerRegistry registry) { - this.registry = registry; - } - - @Init - public void init() { - registry.registerTransformer(this); - } - - protected abstract Class getSourceType(); - - protected abstract Class getTargetType(); - - public String getSourceDataBinding() { - return getSourceType().getName(); - } - - public String getTargetDataBinding() { - return getTargetType().getName(); - } - - public int getWeight() { - // default to 50 - return 50; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java deleted file mode 100644 index a0c75570bd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverter.java +++ /dev/null @@ -1,940 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.Writer; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.text.FieldPosition; -import java.text.Format; -import java.text.ParsePosition; -import java.util.Calendar; -import java.util.TimeZone; -import javax.xml.XMLConstants; -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.Duration; -import javax.xml.namespace.NamespaceContext; -import javax.xml.namespace.QName; - -/** - * Utility class for XSD data type conversions - */ -public class XSDDataTypeConverter { - public static final class Base64Binary { - private static final char[] S_BASE64CHAR = - {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', - 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', - 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', - '5', '6', '7', '8', '9', '+', '/'}; - - private static final char S_BASE64PAD = '='; - - private static final byte[] S_DECODETABLE = new byte[128]; - - static { - for (int i = 0; i < S_DECODETABLE.length; i++) { - S_DECODETABLE[i] = Byte.MAX_VALUE; // 127 - } - for (int i = 0; i < S_BASE64CHAR.length; i++) { - // 0 to 63 - S_DECODETABLE[S_BASE64CHAR[i]] = (byte) i; - } - } - - private Base64Binary() { - } - - /** - * - */ - public static byte[] decode(char[] data, int off, int len) { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[len / 4 * 3 + 3]; - int obufcount = 0; - for (int i = off; i < off + len; i++) { - char ch = data[i]; - if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - obufcount += decode0(ibuf, obuf, obufcount); - } - } - } - if (obufcount == obuf.length) { - return obuf; - } - byte[] ret = new byte[obufcount]; - System.arraycopy(obuf, 0, ret, 0, obufcount); - return ret; - } - - /** - * - */ - public static void decode(char[] data, int off, int len, OutputStream ostream) throws IOException { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[3]; - for (int i = off; i < off + len; i++) { - char ch = data[i]; - if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - int obufcount = decode0(ibuf, obuf, 0); - ostream.write(obuf, 0, obufcount); - } - } - } - } - - /** - * - */ - public static byte[] decode(String data) { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[data.length() / 4 * 3 + 3]; - int obufcount = 0; - for (int i = 0; i < data.length(); i++) { - char ch = data.charAt(i); - if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - obufcount += decode0(ibuf, obuf, obufcount); - } - } - } - if (obufcount == obuf.length) { - return obuf; - } - byte[] ret = new byte[obufcount]; - System.arraycopy(obuf, 0, ret, 0, obufcount); - return ret; - } - - /** - * - */ - public static void decode(String data, OutputStream ostream) throws IOException { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[3]; - for (int i = 0; i < data.length(); i++) { - char ch = data.charAt(i); - if (ch == S_BASE64PAD || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - int obufcount = decode0(ibuf, obuf, 0); - ostream.write(obuf, 0, obufcount); - } - } - } - } - - private static int decode0(char[] ibuf, byte[] obuf, int index) { - int wp = index; - int outlen = 3; - if (ibuf[3] == S_BASE64PAD) { - outlen = 2; - } - if (ibuf[2] == S_BASE64PAD) { - outlen = 1; - } - int b0 = S_DECODETABLE[ibuf[0]]; - int b1 = S_DECODETABLE[ibuf[1]]; - int b2 = S_DECODETABLE[ibuf[2]]; - int b3 = S_DECODETABLE[ibuf[3]]; - switch (outlen) { - case 1: - obuf[wp] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3); - return 1; - case 2: - obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3); - obuf[wp] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf); - return 2; - case 3: - obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3); - obuf[wp++] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf); - obuf[wp] = (byte) (b2 << 6 & 0xc0 | b3 & 0x3f); - return 3; - default: - throw new IllegalArgumentException("The character sequence is not base64 encoded."); - } - } - - /** - * Returns base64 representation of specified byte array. - */ - public static String encode(byte[] data) { - return encode(data, 0, data.length); - } - - /** - * Returns base64 representation of specified byte array. - */ - public static String encode(byte[] data, int off, int len) { - if (len <= 0) { - return ""; - } - char[] out = new char[len / 3 * 4 + 4]; - int rindex = off; - int windex = 0; - int rest = len - off; - while (rest >= 3) { - int i = - ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8) - + (data[rindex + 2] & 0xff); - out[windex++] = S_BASE64CHAR[i >> 18]; - out[windex++] = S_BASE64CHAR[(i >> 12) & 0x3f]; - out[windex++] = S_BASE64CHAR[(i >> 6) & 0x3f]; - out[windex++] = S_BASE64CHAR[i & 0x3f]; - rindex += 3; - rest -= 3; - } - if (rest == 1) { - int i = data[rindex] & 0xff; - out[windex++] = S_BASE64CHAR[i >> 2]; - out[windex++] = S_BASE64CHAR[(i << 4) & 0x3f]; - out[windex++] = S_BASE64PAD; - out[windex++] = S_BASE64PAD; - } else if (rest == 2) { - int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff); - out[windex++] = S_BASE64CHAR[i >> 10]; - out[windex++] = S_BASE64CHAR[(i >> 4) & 0x3f]; - out[windex++] = S_BASE64CHAR[(i << 2) & 0x3f]; - out[windex++] = S_BASE64PAD; - } - return new String(out, 0, windex); - } - - /** - * Outputs base64 representation of the specified byte array to a byte stream. - */ - public static void encode(byte[] data, int off, int len, OutputStream ostream) throws IOException { - if (len <= 0) { - return; - } - byte[] out = new byte[4]; - int rindex = off; - int rest = len - off; - while (rest >= 3) { - int i = - ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8) - + (data[rindex + 2] & 0xff); - out[0] = (byte) S_BASE64CHAR[i >> 18]; - out[1] = (byte) S_BASE64CHAR[(i >> 12) & 0x3f]; - out[2] = (byte) S_BASE64CHAR[(i >> 6) & 0x3f]; - out[3] = (byte) S_BASE64CHAR[i & 0x3f]; - ostream.write(out, 0, 4); - rindex += 3; - rest -= 3; - } - if (rest == 1) { - int i = data[rindex] & 0xff; - out[0] = (byte) S_BASE64CHAR[i >> 2]; - out[1] = (byte) S_BASE64CHAR[(i << 4) & 0x3f]; - out[2] = (byte) S_BASE64PAD; - out[3] = (byte) S_BASE64PAD; - ostream.write(out, 0, 4); - } else if (rest == 2) { - int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff); - out[0] = (byte) S_BASE64CHAR[i >> 10]; - out[1] = (byte) S_BASE64CHAR[(i >> 4) & 0x3f]; - out[2] = (byte) S_BASE64CHAR[(i << 2) & 0x3f]; - out[3] = (byte) S_BASE64PAD; - ostream.write(out, 0, 4); - } - } - - /** - * Outputs base64 representation of the specified byte array to a character stream. - */ - public static void encode(byte[] data, int off, int len, Writer writer) throws IOException { - if (len <= 0) { - return; - } - char[] out = new char[4]; - int rindex = off; - int rest = len - off; - int output = 0; - while (rest >= 3) { - int i = - ((data[rindex] & 0xff) << 16) + ((data[rindex + 1] & 0xff) << 8) - + (data[rindex + 2] & 0xff); - out[0] = S_BASE64CHAR[i >> 18]; - out[1] = S_BASE64CHAR[(i >> 12) & 0x3f]; - out[2] = S_BASE64CHAR[(i >> 6) & 0x3f]; - out[3] = S_BASE64CHAR[i & 0x3f]; - writer.write(out, 0, 4); - rindex += 3; - rest -= 3; - output += 4; - if (output % 76 == 0) { - writer.write("\n"); - } - } - if (rest == 1) { - int i = data[rindex] & 0xff; - out[0] = S_BASE64CHAR[i >> 2]; - out[1] = S_BASE64CHAR[(i << 4) & 0x3f]; - out[2] = S_BASE64PAD; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } else if (rest == 2) { - int i = ((data[rindex] & 0xff) << 8) + (data[rindex + 1] & 0xff); - out[0] = S_BASE64CHAR[i >> 10]; - out[1] = S_BASE64CHAR[(i >> 4) & 0x3f]; - out[2] = S_BASE64CHAR[(i << 2) & 0x3f]; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } - } - } - - /** - * <p/> - * Utility class for xs:hexbinary. </p> - */ - public static final class HexBinary { - private HexBinary() { - } - - /** - * Converts the string <code>pValue</code> into an array of hex bytes. - */ - public static byte[] decode(String pValue) { - if ((pValue.length() % 2) != 0) { - throw new IllegalArgumentException("A HexBinary string must have even length."); - } - byte[] result = new byte[pValue.length() / 2]; - int j = 0; - int i = 0; - while (i < pValue.length()) { - byte b; - char c = pValue.charAt(i++); - char d = pValue.charAt(i++); - if (c >= '0' && c <= '9') { - b = (byte) ((c - '0') << 4); - } else if (c >= 'A' && c <= 'F') { - b = (byte) ((c - 'A' + 10) << 4); - } else if (c >= 'a' && c <= 'f') { - b = (byte) ((c - 'a' + 10) << 4); - } else { - throw new IllegalArgumentException("Invalid hex digit: " + c); - } - if (d >= '0' && d <= '9') { - b += (byte) (d - '0'); - } else if (d >= 'A' && d <= 'F') { - b += (byte) (d - 'A' + 10); - } else if (d >= 'a' && d <= 'f') { - b += (byte) (d - 'a' + 10); - } else { - throw new IllegalArgumentException("Invalid hex digit: " + d); - } - result[j++] = b; - } - return result; - } - - /** - * Converts the byte array <code>pHexBinary</code> into a string. - */ - public static String encode(byte[] pHexBinary) { - StringBuffer result = new StringBuffer(); - for (int i = 0; i < pHexBinary.length; i++) { - byte b = pHexBinary[i]; - byte c = (byte) ((b & 0xf0) >> 4); - if (c <= 9) { - result.append((char) ('0' + c)); - } else { - result.append((char) ('A' + c - 10)); - } - c = (byte) (b & 0x0f); - if (c <= 9) { - result.append((char) ('0' + c)); - } else { - result.append((char) ('A' + c - 10)); - } - } - return result.toString(); - } - - /** - * Creates a clone of the given byte array. - */ - public static byte[] getClone(byte[] pHexBinary) { - byte[] result = new byte[pHexBinary.length]; - System.arraycopy(pHexBinary, 0, result, 0, pHexBinary.length); - return result; - } - } - - public class XSDDateFormat extends XSDDateTimeFormat { - private static final long serialVersionUID = -1629412916827246627L; - - /** - * Creates a new instance. - */ - public XSDDateFormat() { - super(true, false); - } - } - - /** - * <p/> - * An instance of {@link java.text.Format}, which may be used to parse and format <code>xs:dateTime</code> values. - * </p> - */ - public static class XSDDateTimeFormat extends Format { - private static final long serialVersionUID = -1148332471737068969L; - - final boolean parseDate; - - final boolean parseTime; - - /** - * Creates a new instance. - */ - public XSDDateTimeFormat() { - this(true, true); - } - - XSDDateTimeFormat(boolean pParseDate, boolean pParseTime) { - parseDate = pParseDate; - parseTime = pParseTime; - } - - private void append(StringBuffer pBuffer, int pNum, int pMinLen) { - String s = Integer.toString(pNum); - for (int i = s.length(); i < pMinLen; i++) { - pBuffer.append('0'); - } - pBuffer.append(s); - } - - public StringBuffer format(Object pCalendar, StringBuffer pBuffer, FieldPosition pPos) { - assert pCalendar != null : "The Calendar argument must not be null."; - assert pBuffer != null : "The StringBuffer argument must not be null."; - assert pPos != null : "The FieldPosition argument must not be null."; - - Calendar cal = (Calendar) pCalendar; - if (parseDate) { - int year = cal.get(Calendar.YEAR); - if (year < 0) { - pBuffer.append('-'); - year = -year; - } - append(pBuffer, year, 4); - pBuffer.append('-'); - append(pBuffer, cal.get(Calendar.MONTH) + 1, 2); - pBuffer.append('-'); - append(pBuffer, cal.get(Calendar.DAY_OF_MONTH), 2); - if (parseTime) { - pBuffer.append('T'); - } - } - if (parseTime) { - append(pBuffer, cal.get(Calendar.HOUR_OF_DAY), 2); - pBuffer.append(':'); - append(pBuffer, cal.get(Calendar.MINUTE), 2); - pBuffer.append(':'); - append(pBuffer, cal.get(Calendar.SECOND), 2); - int millis = cal.get(Calendar.MILLISECOND); - if (millis > 0) { - pBuffer.append('.'); - append(pBuffer, millis, 3); - } - } - TimeZone tz = cal.getTimeZone(); - // JDK 1.4: int offset = tz.getOffset(cal.getTimeInMillis()); - int offset = cal.get(Calendar.ZONE_OFFSET); - if (tz.inDaylightTime(cal.getTime())) { - offset += cal.get(Calendar.DST_OFFSET); - } - if (offset == 0) { - pBuffer.append('Z'); - } else { - if (offset < 0) { - pBuffer.append('-'); - offset = -offset; - } else { - pBuffer.append('+'); - } - int minutes = offset / (60 * 1000); - int hours = minutes / 60; - minutes -= hours * 60; - append(pBuffer, hours, 2); - pBuffer.append(':'); - append(pBuffer, minutes, 2); - } - return pBuffer; - } - - private int parseInt(String pString, int offset, StringBuffer pDigits) { - int length = pString.length(); - int pOffset = offset; - pDigits.setLength(0); - while (pOffset < length) { - char c = pString.charAt(pOffset); - if (Character.isDigit(c)) { - pDigits.append(c); - ++pOffset; - } else { - break; - } - } - return pOffset; - } - - public Object parseObject(String pString, ParsePosition pParsePosition) { - assert pString != null : "The String argument must not be null."; - assert pParsePosition != null : "The ParsePosition argument must not be null."; - int offset = pParsePosition.getIndex(); - int length = pString.length(); - - boolean isMinus = false; - StringBuffer digits = new StringBuffer(); - int year = 0; - int month = 0; - int mday = 0; - if (parseDate) { - // Sign - if (offset < length) { - char c = pString.charAt(offset); - if (c == '+') { - ++offset; - } else if (c == '-') { - ++offset; - isMinus = true; - } - } - - offset = parseInt(pString, offset, digits); - if (digits.length() < 4) { - pParsePosition.setErrorIndex(offset); - return null; - } - year = Integer.parseInt(digits.toString()); - - if (offset < length && pString.charAt(offset) == '-') { - ++offset; - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - - offset = parseInt(pString, offset, digits); - if (digits.length() != 2) { - pParsePosition.setErrorIndex(offset); - return null; - } - month = Integer.parseInt(digits.toString()); - - if (offset < length && pString.charAt(offset) == '-') { - ++offset; - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - - offset = parseInt(pString, offset, digits); - if (digits.length() != 2) { - pParsePosition.setErrorIndex(offset); - return null; - } - mday = Integer.parseInt(digits.toString()); - - if (parseTime) { - if (offset < length && pString.charAt(offset) == 'T') { - ++offset; - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - } - } else { - year = month = mday = 0; - } - - int hour = 0; - int minute = 0; - int second = 0; - int millis = 0; - if (parseTime) { - offset = parseInt(pString, offset, digits); - if (digits.length() != 2) { - pParsePosition.setErrorIndex(offset); - return null; - } - hour = Integer.parseInt(digits.toString()); - - if (offset < length && pString.charAt(offset) == ':') { - ++offset; - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - - offset = parseInt(pString, offset, digits); - if (digits.length() != 2) { - pParsePosition.setErrorIndex(offset); - return null; - } - minute = Integer.parseInt(digits.toString()); - - if (offset < length && pString.charAt(offset) == ':') { - ++offset; - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - - offset = parseInt(pString, offset, digits); - if (digits.length() != 2) { - pParsePosition.setErrorIndex(offset); - return null; - } - second = Integer.parseInt(digits.toString()); - - if (offset < length && pString.charAt(offset) == '.') { - ++offset; - offset = parseInt(pString, offset, digits); - if (digits.length() > 0) { - millis = Integer.parseInt(digits.toString()); - } else { - millis = 0; - } - } else { - millis = 0; - } - } else { - hour = minute = second = millis = 0; - } - - digits.setLength(0); - digits.append("GMT"); - if (offset < length) { - char c = pString.charAt(offset); - if (c == 'Z') { - // Ignore UTC, it is the default - ++offset; - } else if (c == '+' || c == '-') { - digits.append(c); - ++offset; - for (int i = 0; i < 5; i++) { - if (offset >= length) { - pParsePosition.setErrorIndex(offset); - return null; - } - c = pString.charAt(offset); - if ((i != 2 && Character.isDigit(c)) || (i == 2 && c == ':')) { - digits.append(c); - } else { - pParsePosition.setErrorIndex(offset); - return null; - } - ++offset; - } - } - } - - Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(digits.toString())); - cal.set(isMinus ? -year : year, parseDate ? month - 1 : month, mday, hour, minute, second); - cal.set(Calendar.MILLISECOND, millis); - pParsePosition.setIndex(offset); - return cal; - } - } - - public static class XSDTimeFormat extends XSDDateTimeFormat { - private static final long serialVersionUID = 1346506860724640517L; - - /** - * Creates a new instance. - */ - public XSDTimeFormat() { - super(false, true); - } - } - - private static final long MAX_UNSIGNED_INT = (((long) Integer.MAX_VALUE) * 2) + 1; - - private static final int MAX_UNSIGNED_SHORT = Short.MAX_VALUE * 2 + 1; - - public String parseAnySimpleType(String value) { - return value; - } - - public byte[] parseBase64Binary(String value) { - return Base64Binary.decode(value); - } - - public boolean parseBoolean(String value) { - return Boolean.valueOf(value).booleanValue(); - } - - public byte parseByte(String value) { - return Byte.parseByte(value); - } - - public Calendar parseDate(String value) { - XSDDateFormat format = new XSDDateFormat(); - ParsePosition pos = new ParsePosition(0); - Calendar cal = (Calendar) format.parseObject(value, pos); - if (cal == null) { - throw new IllegalArgumentException("Failed to parse date " + value + " at:" - + value.substring(pos.getErrorIndex())); - } - return cal; - } - - public Calendar parseDateTime(String value) { - XSDDateTimeFormat format = new XSDDateTimeFormat(); - ParsePosition pos = new ParsePosition(0); - Calendar cal = (Calendar) format.parseObject(value, pos); - if (cal == null) { - throw new IllegalArgumentException("Failed to parse dateTime " + value + " at:" - + value.substring(pos.getErrorIndex())); - } - return cal; - } - - public BigDecimal parseDecimal(String value) { - return new BigDecimal(value); - } - - public double parseDouble(String value) { - if ("INF".equals(value)) { - return Double.POSITIVE_INFINITY; - } else if ("-INF".equals(value)) { - return Double.NEGATIVE_INFINITY; - } else if ("NaN".equals(value)) { - return Double.NaN; - } else { - return Double.parseDouble(value); - } - } - - public Duration parseDuration(String pDuration) { - try { - return DatatypeFactory.newInstance().newDuration(pDuration); - } catch (DatatypeConfigurationException e) { - throw new IllegalArgumentException(e); - } - } - - public float parseFloat(String value) { - if ("INF".equals(value)) { - return Float.POSITIVE_INFINITY; - } else if ("-INF".equals(value)) { - return Float.NEGATIVE_INFINITY; - } else if ("NaN".equals(value)) { - return Float.NaN; - } else { - return Float.parseFloat(value); - } - } - - public byte[] parseHexBinary(String value) { - return HexBinary.decode(value); - } - - public int parseInt(String value) { - return Integer.parseInt(value); - } - - public BigInteger parseInteger(String value) { - return new BigInteger(value); - } - - public long parseLong(String value) { - return Long.parseLong(value); - } - - public QName parseQName(String value, NamespaceContext context) { - int offset = value.indexOf(':'); - String uri; - String localName; - switch (offset) { - case -1: - localName = value; - uri = context.getNamespaceURI(""); - if (uri == null) { - // Should not happen, indicates an error in the - // NamespaceContext - // implementation - throw new IllegalArgumentException("The default prefix is not bound."); - } - break; - case 0: - throw new IllegalArgumentException("Default prefix must be indicated by not using a colon: " - + value); - default: - String prefix = value.substring(0, offset); - localName = value.substring(offset + 1); - uri = context.getNamespaceURI(prefix); - if (uri == null) { - throw new IllegalArgumentException("The prefix " + prefix + " is not bound."); - } - } - return new QName(uri, localName); - } - - public short parseShort(String value) { - return Short.parseShort(value); - } - - public String parseString(String value) { - return value; - } - - public Calendar parseTime(String value) { - XSDTimeFormat format = new XSDTimeFormat(); - ParsePosition pos = new ParsePosition(0); - Calendar cal = (Calendar) format.parseObject(value, pos); - if (cal == null) { - throw new IllegalArgumentException("Failed to parse time " + value + " at:" - + value.substring(pos.getErrorIndex())); - } - return cal; - } - - public long parseUnsignedInt(String value) { - long l = Long.parseLong(value); - if (l < 0) { - throw new IllegalArgumentException("Failed to parse UnsignedInt " + value - + ": result is negative"); - } - if (l > MAX_UNSIGNED_INT) { - throw new IllegalArgumentException("Failed to parse UnsignedInt " + value - + ": result exceeds maximum value " + MAX_UNSIGNED_INT); - } - return l; - } - - public int parseUnsignedShort(String value) { - int i = Integer.parseInt(value); - if (i < 0) { - throw new IllegalArgumentException("Failed to parse UnsignedShort " + value - + ": result is negative"); - } - if (i > MAX_UNSIGNED_SHORT) { - throw new IllegalArgumentException("Failed to parse UnsignedShort " + value - + ": result exceeds maximum value " + MAX_UNSIGNED_SHORT); - } - return i; - } - - public String printAnySimpleType(String value) { - return value; - } - - public String printBase64Binary(byte[] value) { - return Base64Binary.encode(value); - } - - public String printBoolean(boolean value) { - return (value ? Boolean.TRUE : Boolean.FALSE).toString(); - } - - public String printByte(byte value) { - return Byte.toString(value); - } - - public String printDate(Calendar value) { - return new XSDDateFormat().format(value); - } - - public String printDateTime(Calendar value) { - return new XSDDateTimeFormat().format(value); - } - - public String printDecimal(BigDecimal value) { - return value.toString(); - } - - public String printDouble(double value) { - return Double.toString(value); - } - - public String printDuration(Duration pDuration) { - return pDuration.toString(); - } - - public String printFloat(float value) { - return Float.toString(value); - } - - public String printHexBinary(byte[] value) { - return HexBinary.encode(value); - } - - public String printInt(int value) { - return Integer.toString(value); - } - - public String printInteger(BigInteger value) { - return value.toString(); - } - - public String printLong(long value) { - return Long.toString(value); - } - - public String printQName(QName value, NamespaceContext context) { - String prefix = context.getPrefix(value.getNamespaceURI()); - if (prefix == null) { - throw new IllegalArgumentException("The namespace URI " + value.getNamespaceURI() - + " is not bound."); - } else if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) { - return value.getLocalPart(); - } else { - return prefix + ":" + value.getLocalPart(); - } - } - - public String printShort(short value) { - return Short.toString(value); - } - - public String printString(String value) { - return value; - } - - public String printTime(Calendar value) { - return new XSDTimeFormat().format(value); - } - - public String printUnsignedInt(long value) { - return Long.toString(value); - } - - public String printUnsignedShort(int value) { - return Integer.toString(value); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolver.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolver.java deleted file mode 100644 index bd4c29e48b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolver.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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.spi.deployer; - -import java.net.URL; -import java.util.Map; - -import org.apache.tuscany.spi.model.Contribution; - - -/** - * SCA Assemblies reference many artifacts of a wide variety of types. These - * include: - * <ul> - * <li> Reference from one SCA composite to another SCA composite - * <li> Reference to PolicySet files - * <li> Reference to interface definition files, either WSDL or Java interfaces - * <li> Reference to XSD files - * <li> Reference to any of a wide variety of implementation artifact files, - * including Java classes, BPEL scripts, C++ DLLs and classes, PHP scripts - * </ul> - * In the SCA assemblies, these various artifacts are referenced using either - * QNames or URIs that do not point to a specific entity. Resolution of these - * references to concrete artifacts is necessary as part of the operation of the - * SCA domain. - * - * @version $Rev$ $Date$ - */ -public interface ArtifactResolver { - /** - * Resolve an artifact by the qualified name - * - * @param contribution the model of the contribution - * @param modelClass The java type of the artifact - * @param namespace The namespace of the artifact - * @param name The name of the artifact - * @param attributes Additional attributes that can be used to constrain the - * resolution - * @param context The deployment context - * @return The resolved artifact - */ - <T> T resolve(Contribution contribution, - Class<T> modelClass, - String namespace, - String name, - Map attributes, - DeploymentContext context); - - /** - * Resolve an artifact by the URI. Some typical use cases are: - * <ul> - * <li>Reference a XML schema using - * {http://www.w3.org/2001/XMLSchema-instance}schemaLocation or - * <li>Reference a list of WSDLs using - * {http://www.w3.org/2004/08/wsdl-instance}wsdlLocation - * </ul> - * @param targetNamespace The target namespace of the referenced artifact, - * if the targetNamespace is null, then it's not specified - * @param location The URI of the referenced artifact, it can be absolute or - * relative - * @param baseURI The URI of the owning artifact - * - * @return The URI of the resolved artifact - */ - URL resolve(Contribution contribution, String targetNamespace, String location, String baseURI); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolverRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolverRegistry.java deleted file mode 100644 index f24fb7269a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ArtifactResolverRegistry.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.deployer; - - -/** - * Registry for artifact resolvers - * - * @version $Rev$ $Date$ - */ -public interface ArtifactResolverRegistry extends ArtifactResolver { - /** - * Register a resolver by the type of artifacts. For example, you can - * register a resolver to resolve WSDL model objects and other resolver - * for java classes - * - * @param modelClass The java type of the model object - * @param resolver The resolver - */ - void registerResolver(Class<?> modelClass, ArtifactResolver resolver); - - /** - * Unregister all resolvers for the given model class - * - * @param modelClass - */ - void unregisterResolver(Class<?> modelClass); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java deleted file mode 100644 index fead0453be..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.deployer; - -import java.io.IOException; -import java.io.InputStream; - -import org.apache.tuscany.host.deployment.DeploymentException; - -/** - * Interface implemented by services that process assembly change sets. - * - * @version $Rev$ $Date$ - */ -public interface ChangeSetHandler { - /** - * Returns the content type that this implementation can handle. - * - * @return the content type that this implementation can handle - */ - String getContentType(); - - /** - * Apply the changes in the supplied changeSet stream to an Assembly. - * The content on the stream must match the content type this implementation can handle. - * - * @param changeSet the set of changes to apply represented as the supported content type - * @throws DeploymentException if there was a problem applying the changes - * @throws IOException if there was a problem reading the stream - */ - void applyChanges(InputStream changeSet) throws DeploymentException, IOException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java deleted file mode 100644 index df0bf4109b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ChangeSetHandlerRegistry.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.spi.deployer; - -/** - * Registry for ChangeSetHandler implementations. - * - * @version $Rev$ $Date$ - */ -public interface ChangeSetHandlerRegistry { - void register(ChangeSetHandler handler); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java deleted file mode 100644 index 63db5b9e24..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/CompositeClassLoader.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.deployer; - -import java.net.URLClassLoader; -import java.net.URL; -import java.net.URLStreamHandlerFactory; - -/** - * ClassLoader associated with a composite. - * - * @version $Rev$ $Date$ - */ -public class CompositeClassLoader extends URLClassLoader { - private static final URL[] NOURLS = {}; - - public CompositeClassLoader(ClassLoader classLoader) { - super(NOURLS, classLoader); - } - - public CompositeClassLoader(URL[] urls, ClassLoader classLoader) { - super(urls, classLoader); - } - - public CompositeClassLoader(URL[] urls) { - super(urls); - } - - public CompositeClassLoader(URL[] urls, ClassLoader classLoader, URLStreamHandlerFactory urlStreamHandlerFactory) { - super(urls, classLoader, urlStreamHandlerFactory); - } - - public void addURL(URL url) { - super.addURL(url); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentType.java deleted file mode 100644 index d29f935dc4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentType.java +++ /dev/null @@ -1,37 +0,0 @@ -/*
- * 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.spi.deployer;
-
-public interface ContentType {
- /**
- * Archive specific content types
- */
- public static final String JAR = "application/x-compressed";
- public static final String FOLDER = "application/vnd.tuscany.folder";
-
- /**
- * Artifact/File specific content types
- */
- public static final String CONTRIBUTION_METADATA = "application/vnd.tuscany.contribution.metadata";
- public static final String COMPOSITE = "application/vnd.tuscany.composite";
- public static final String WSDL = "application/vnd.tuscany.wsdl";
- public static final String JAVA = "application/java-vm";
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentTypeDescriber.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentTypeDescriber.java deleted file mode 100644 index 667b3dec69..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentTypeDescriber.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.deployer; - -import java.net.URL; - -/** - * Provide content type for a given resource - * - * @version $Rev$ $Date$ - */ -public interface ContentTypeDescriber { - /** - * @param resourceURL - * @param defaultContentType - * @return - */ - String getContentType(URL resourceURL, String defaultContentType); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java deleted file mode 100644 index a1cf4d7c9b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.spi.deployer; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; - -import org.apache.tuscany.host.deployment.DeploymentException; -import org.apache.tuscany.spi.model.Contribution; - -/** - * Interface for services that can process contributions. - * - * @version $Rev$ $Date$ - */ -public interface ContributionProcessor { - /** - * Process a contribution or an artifact in the contribution from the input - * stream. The processor might add artifacts or model objects to the - * contribution object. - * - * @param contribution The contribution model that will be used to hold the - * results from the processing - * @param source The URI for the contribution/artifact - * @param inputStream The input stream for the contribution. The stream will - * not be closed but the read position after the call is - * undefined - * @throws DeploymentException if there was a problem with the contribution - * @throws IOException if there was a problem reading the stream - */ - void processContent(Contribution contribution, URI source, InputStream inputStream) throws DeploymentException, - IOException; - - /** - * Process a contribution from another model object. It will be used for the - * case that one artifact has other inline artifacts, for example, the WSDL - * with inline schemas. The schema contribution processor should be able to - * load the schema model from the WSDL definition. - * - * @param contribution The contribution model that will be used to hold the - * results from the processing - * @param source The URI for the contribution/artifact. - * @param modelObject A model object for further processing by the processor - * @throws DeploymentException - * @throws IOException - */ - void processModel(Contribution contribution, URI source, Object modelObject) throws DeploymentException, - IOException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java deleted file mode 100644 index c1b6e93cb3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.deployer; - -/** - * @version $Rev$ $Date$ - */ -public interface ContributionProcessorRegistry extends ContributionProcessor { - /** - * Register a ContributionProcessor using the content type as the key - * @param processor - */ - void register(String contentType, ContributionProcessor processor); - - /** - * Unregister a ContributionProcessor by content type - * @param contentType - */ - void unregister(String contentType); -}
\ No newline at end of file diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionRepository.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionRepository.java deleted file mode 100644 index 4721511cdd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionRepository.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- * 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.spi.deployer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-public interface ContributionRepository {
- /**
- * Get the URI of the SCA domain
- *
- * @return
- */
- URI getDomain();
-
- /**
- * Copy a contribution to the repository.
- *
- * @param contribution A URl pointing to the contribution being copied to
- * the repository
- * @param contributionStream InputStream with the content of the
- * distribution
- */
- URL store(URI contribution, InputStream contributionStream) throws IOException;
-
- /**
- * Copy a contribution from the source URL to the repository
- * @param contribution
- * @param sourceURL
- * @return
- * @throws IOException
- */
- URL store(URI contribution, URL sourceURL) throws IOException;
-
- /**
- * Look up the contribution by URI
- *
- * @param contribution The URI of the contribution
- * @return A URL pointing to the content of the contribution in the
- * repository, it will be null if the contribution cannot be found
- * in the repository
- */
- URL find(URI contribution);
-
- /**
- * Remove a contribution from the repository
- *
- * @param contribution The URI of the contribution to be removed
- */
- void remove(URI contribution);
-
- /**
- * Get list of URIs for all the contributions in the repository
- *
- * @return A list of contribution URIs
- */
- List<URI> list();
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java deleted file mode 100644 index 0e39a6fcf2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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.spi.deployer; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.component.Component; -import org.apache.tuscany.spi.component.ComponentException; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.loader.LoaderException; -import org.apache.tuscany.spi.model.ComponentDefinition; -import org.apache.tuscany.spi.model.Implementation; - -/** - * Interface that can be used to deploy SCA bundles to a runtime. - * - * @version $Rev$ $Date$ - */ -public interface Deployer { - /** - * Deploy a component as a child of the supplied parent. This operation creates a new component in the runtime to represent the supplied component - * definition. The type of component created will depend on the component definition implementation; for example, if the implementation of the - * component definition is a composite then typically a CompositeComponent would be returned. - * - * @param parent - * the parent context - * @param componentDefinition - * the component definition as parsed from an assembly - * @return the newly deployed component - */ - <I extends Implementation<?>> Component deploy(CompositeComponent parent, ComponentDefinition<I> componentDefinition) - throws LoaderException, BuilderException, ComponentException; - - /** - * Deploy a component as a child of the supplied parent. This operation creates a new component in the runtime to represent the supplied component - * definition. The type of component created will depend on the component definition implementation; for example, if the implementation of the - * component definition is a composite then typically a CompositeComponent would be returned. - * - * @param parent - * the parent context - * @param componentDefinition - * the component definition as parsed from an assembly - * @return the newly deployed component - */ - <I extends Implementation<?>> Component deployFromContribution(CompositeComponent parent, - ComponentDefinition<I> componentDefinition) throws BuilderException, ComponentException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java deleted file mode 100644 index 921781c484..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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.spi.deployer; - -import java.net.URL; -import javax.xml.stream.XMLInputFactory; - -import org.apache.tuscany.spi.component.ScopeContainer; - -/** - * A holder that can be used during the load process to store information that is not part of the logical assembly - * model. This should be regarded as transient and references to this context should not be stored inside the model. - * - * @version $Rev$ $Date$ - */ -public interface DeploymentContext { - /** - * Returns the parent of this deployment context. - * Will be null for the context created at the root of a deployment. - * - * @return the parent of this deployment context; may be null - */ - DeploymentContext getParent(); - - /** - * Returns a class loader that can be used to load application resources. - * - * @return a class loader that can be used to load application resources - */ - ClassLoader getClassLoader(); - - /** - * Returns a factory that can be used to obtain an StAX XMLStreamReader. - * - * @return a factory that can be used to obtain an StAX XMLStreamReader - */ - XMLInputFactory getXmlFactory(); - - /** - * Returns the ScopeContainer for the COMPOSITE scope that will be associated with this deployment unit. - * - * @return the ScopeContainer for the COMPOSITE scope that will be associated with this deployment unit - */ - ScopeContainer getCompositeScope(); - - /** - * Returns the location of the SCDL definition being deployed. - * - * @return the location of the SCDL definition being deployed - */ - URL getScdlLocation(); - - /** - * Return the extension property with the supplied name. - * - * @param name the name of the property - * @return the property value; if null indicates that no property is present - */ - Object getExtension(String name); - - /** - * Set the value of an extension property. - * - * @param name the name of the property - * @param value the property value; if null then the extension property is removed - */ - void putExtension(String name, Object value); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java deleted file mode 100644 index 156f57c2e0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.apache.tuscany.spi.deployer; - -import org.apache.tuscany.api.TuscanyException; -import org.apache.tuscany.api.annotation.LogLevel; - -/** - * @version $Rev$ $Date$ - */ -public interface DeploymentMonitor { - - @LogLevel("FINER") - void startDeployment(); - - @LogLevel("FINER") - void endDeployment(); - - @LogLevel("SEVERE") - void deploymentError(TuscanyException e); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java deleted file mode 100644 index cc20866cbb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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.spi.event; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -/** - * Base implementation of an <code>EventPublisher</code> - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractEventPublisher implements EventPublisher { - protected static final EventFilter TRUE_FILTER = new TrueFilter(); - protected Map<EventFilter, List<RuntimeEventListener>> listeners; - - public void addListener(RuntimeEventListener listener) { - addListener(TRUE_FILTER, listener); - } - - public void removeListener(RuntimeEventListener listener) { - assert listener != null : "Listener cannot be null"; - synchronized (getListeners()) { - for (List<RuntimeEventListener> currentList : getListeners().values()) { - for (RuntimeEventListener current : currentList) { - if (current == listener) { - currentList.remove(current); - return; - } - } - } - } - } - - public void addListener(EventFilter filter, RuntimeEventListener listener) { - assert listener != null : "Listener cannot be null"; - synchronized (getListeners()) { - List<RuntimeEventListener> list = getListeners().get(filter); - if (list == null) { - list = new CopyOnWriteArrayList<RuntimeEventListener>(); - listeners.put(filter, list); - } - list.add(listener); - } - } - - public void publish(Event event) { - assert event != null : "Event object was null"; - for (Map.Entry<EventFilter, List<RuntimeEventListener>> entry : getListeners().entrySet()) { - if (entry.getKey().match(event)) { - for (RuntimeEventListener listener : entry.getValue()) { - listener.onEvent(event); - } - } - } - } - - protected Map<EventFilter, List<RuntimeEventListener>> getListeners() { - if (listeners == null) { - listeners = new ConcurrentHashMap<EventFilter, List<RuntimeEventListener>>(); - } - return listeners; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java deleted file mode 100644 index b874ca43c9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/Event.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.event; - -/** - * Represents an event that is propagated in the runtime - * - * @version $$Rev$$ $$Date$$ - */ -public interface Event { - - /** - * Returns the source of the event - */ - Object getSource(); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java deleted file mode 100644 index d61d04cdc8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventFilter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.event; - -/** - * Evaluates whether a {@link RuntimeEventListener} is applicable to a given runtime event - * - * @version $$Rev$$ $$Date$$ - */ -public interface EventFilter { - - /** - * Performs the actual evaluation on an event - */ - boolean match(Event event); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java deleted file mode 100644 index 35df22fb9c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/EventPublisher.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.event; - -/** - * Publishes events in the runtime - * - * @version $$Rev$$ $$Date$$ - */ -public interface EventPublisher { - - /** - * Publish an event - */ - void publish(Event object); - - /** - * Registers a listener to receive notifications for the context - */ - void addListener(RuntimeEventListener listener); - - /** - * Registers a listener to receive notifications for the context - */ - void addListener(EventFilter filter, RuntimeEventListener listener); - - - /** - * Removes a previously registered listener - */ - void removeListener(RuntimeEventListener listener); - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java deleted file mode 100644 index 5146559098..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/RuntimeEventListener.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.event; - -import java.util.EventListener; - -/** - * Listeners observe events fired in the SCA runtime. - * - * @version $Rev$ $Date$ - */ -public interface RuntimeEventListener extends EventListener { - - void onEvent(Event event); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java deleted file mode 100644 index 81382b86ac..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/TrueFilter.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.event; - -/** - * An event filter that always returns a true condition - * - * @version $$Rev$$ $$Date$$ - */ -public class TrueFilter implements EventFilter { - - public boolean match(Event event) { - return true; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java deleted file mode 100644 index a6c1ff086f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AbstractComponentExtension.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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.spi.extension; - -import java.util.Map; - -import org.apache.tuscany.spi.component.AbstractSCAObject; -import org.apache.tuscany.spi.component.Component; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.ScopeContainer; -import org.apache.tuscany.spi.model.PropertyValue; - -/** - * @version Provides support for property accessors. - */ -public abstract class AbstractComponentExtension extends AbstractSCAObject implements Component { - protected ScopeContainer scopeContainer; - - /** - * Default property values. - */ - private Map<String, PropertyValue<?>> defaultPropertyValues; - - /** - * Initializes component name and parent. - * - * @param name Name of the component. - * @param parent Parent of the component. - */ - public AbstractComponentExtension(String name, CompositeComponent parent) { - super(name, parent); - } - - public void setScopeContainer(ScopeContainer scopeContainer) { - this.scopeContainer = scopeContainer; - } - - public Map<String, PropertyValue<?>> getDefaultPropertyValues() { - return defaultPropertyValues; - } - - public void setDefaultPropertyValues(Map<String, PropertyValue<?>> defaultPropertyValues) { - this.defaultPropertyValues = defaultPropertyValues; - } - - public boolean isOptimizable() { - return false; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ArtifactResolverExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ArtifactResolverExtension.java deleted file mode 100644 index 307dc52656..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ArtifactResolverExtension.java +++ /dev/null @@ -1,75 +0,0 @@ -/*
- * 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.spi.extension;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.deployer.ArtifactResolver;
-import org.apache.tuscany.spi.deployer.ArtifactResolverRegistry;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Service;
-
-/**
- * The base class for ContributionProcessor implementations
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-@Service(ArtifactResolver.class)
-public abstract class ArtifactResolverExtension implements ArtifactResolver {
- /**
- * The ArtifactResolverRegistry that this resolver should register with; usually set by injection.
- */
- protected final ArtifactResolverRegistry registry;
-
- /**
- * @param registry the registry to set
- */
- @Constructor
- public ArtifactResolverExtension(@Autowire ArtifactResolverRegistry registry) {
- this.registry = registry;
- }
-
- /**
- * Initialize the resolver. It registers itself to the registry by model type it supports.
- */
- @Init
- public void start() {
- this.registry.registerResolver(this.getType(), this);
- }
-
- /**
- * Destroy the resolver. It unregisters itself from the registry.
- */
- @Destroy
- public void stop() {
- registry.unregisterResolver(this.getType());
- }
-
- /**
- * Returns the model type that this resolver can handle.
- *
- * @return the model type that this resolver can handle
- */
- public abstract Class<?> getType();
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java deleted file mode 100644 index 3124b770fd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * 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.spi.extension; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.spi.CoreRuntimeException; -import org.apache.tuscany.spi.component.AtomicComponent; -import org.apache.tuscany.spi.component.ComponentException; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.PrepareException; -import org.apache.tuscany.spi.component.ScopeContainer; -import org.apache.tuscany.spi.component.TargetDestructionException; -import org.apache.tuscany.spi.component.TargetInitializationException; -import org.apache.tuscany.spi.component.TargetInvokerCreationException; -import org.apache.tuscany.spi.component.WorkContext; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.services.work.WorkScheduler; -import org.apache.tuscany.spi.wire.InboundInvocationChain; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; -import org.apache.tuscany.spi.wire.WireService; - -/** - * An extension point for atomic component type, which new implementation types may extend - * - * @version $$Rev$$ $$Date$$ - */ -public abstract class AtomicComponentExtension extends AbstractComponentExtension implements AtomicComponent { - protected ScopeContainer scopeContainer; - protected Scope scope; - protected Map<String, InboundWire> serviceWires = new HashMap<String, InboundWire>(); - protected Map<String, List<OutboundWire>> referenceWires = new HashMap<String, List<OutboundWire>>(); - protected WireService wireService; - protected WorkContext workContext; - protected WorkScheduler workScheduler; - protected ExecutionMonitor monitor; - private final int initLevel; - private final long maxIdleTime; - private final long maxAge; - private boolean allowsPassByReference; - private List<String> passByReferenceMethods; - - protected AtomicComponentExtension(String name, - CompositeComponent parent, - WireService wireService, - WorkContext workContext, - WorkScheduler workScheduler, - ExecutionMonitor monitor, - int initLevel) { - this(name, parent, wireService, workContext, workScheduler, monitor, initLevel, -1, -1); - - } - - protected AtomicComponentExtension(String name, - CompositeComponent parent, - WireService wireService, - WorkContext workContext, - WorkScheduler workScheduler, - ExecutionMonitor monitor, - int initLevel, - long maxIdleTime, - long maxAge) { - super(name, parent); - assert !(maxIdleTime > 0 && maxAge > 0); - this.wireService = wireService; - this.workContext = workContext; - this.workScheduler = workScheduler; - this.monitor = monitor; - this.initLevel = initLevel; - this.maxIdleTime = maxIdleTime; - this.maxAge = maxAge; - } - - public Scope getScope() { - return scope; - } - - public int getInitLevel() { - return initLevel; - } - - public boolean isEagerInit() { - return initLevel > 0; - } - - public boolean isDestroyable() { - return false; - } - - public long getMaxIdleTime() { - return maxIdleTime; - } - - public long getMaxAge() { - return maxAge; - } - - public boolean isAllowsPassByReference() { - return allowsPassByReference; - } - - public void setAllowsPassByReference(boolean allowsPassByReference) { - this.allowsPassByReference = allowsPassByReference; - } - - - public void setScopeContainer(ScopeContainer scopeContainer) { - this.scopeContainer = scopeContainer; - scope = scopeContainer.getScope(); - } - - public void start() throws CoreRuntimeException { - super.start(); - scopeContainer.register(this); - } - - public void init(Object instance) throws TargetInitializationException { - - } - - public void destroy(Object instance) throws TargetDestructionException { - - } - - public void addInboundWire(InboundWire wire) { - serviceWires.put(wire.getServiceName(), wire); - onServiceWire(wire); - } - - public InboundWire getInboundWire(String serviceName) { - if (serviceName == null) { - if (serviceWires.size() < 1) { - return null; - } - return serviceWires.values().iterator().next(); - } else { - return serviceWires.get(serviceName); - } - } - - public Collection<InboundWire> getInboundWires() { - return Collections.unmodifiableCollection(serviceWires.values()); - } - - public void addOutboundWire(OutboundWire wire) { - List<OutboundWire> list = new ArrayList<OutboundWire>(); - list.add(wire); - referenceWires.put(wire.getReferenceName(), list); - onReferenceWire(wire); - } - - public Map<String, List<OutboundWire>> getOutboundWires() { - return Collections.unmodifiableMap(referenceWires); - } - - public void addOutboundWires(List<OutboundWire> wires) { - assert wires != null && wires.size() > 0; - referenceWires.put(wires.get(0).getReferenceName(), wires); - onReferenceWires(wires); - } - - public void removeInstance() throws ComponentException { - scopeContainer.remove(this); - } - - protected void onReferenceWire(OutboundWire wire) { - } - - protected void onReferenceWires(List<OutboundWire> wires) { - } - - protected void onServiceWire(InboundWire wire) { - } - - - public void prepare() throws PrepareException { - // connect inbound wires for atomic components - for (InboundWire inboundWire : getInboundWires()) { - for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) { - Operation<?> operation = chain.getOperation(); - String serviceName = inboundWire.getServiceName(); - TargetInvoker invoker; - try { - invoker = createTargetInvoker(serviceName, operation, null); - } catch (TargetInvokerCreationException e) { - throw new PrepareException("Error processing inbound wire", serviceName, e); - } - chain.setTargetInvoker(invoker); - chain.prepare(); - } - } - } - - public List<String> getPassByReferenceMethods() { - return passByReferenceMethods; - } - - public void setPassByReferenceMethods(List<String> passByReferenceMethods) { - this.passByReferenceMethods = passByReferenceMethods; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java deleted file mode 100644 index b5bf570de0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.spi.extension; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.builder.BindingBuilder; -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.builder.BuilderRegistry; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.BindingDefinition; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import org.apache.tuscany.spi.model.ServiceDefinition; -import org.apache.tuscany.spi.wire.WireService; - -/** - * An extension point for binding builders. When adding support for new serviceBindings, implementations may extend this - * class as a convenience. - * - * @version $$Rev$$ $$Date$$ - */ -@EagerInit -public abstract class BindingBuilderExtension<B extends BindingDefinition> implements BindingBuilder<B> { - - protected BuilderRegistry builderRegistry; - protected WireService wireService; - - @Autowire - public void setBuilderRegistry(BuilderRegistry registry) { - this.builderRegistry = registry; - } - - @Autowire - public void setWireService(WireService wireService) { - this.wireService = wireService; - } - - @Init - public void init() { - builderRegistry.register(getBindingType(), this); - } - - public ServiceBinding build(CompositeComponent parent, - ServiceDefinition serviceDefinition, - B bindingDefinition, - DeploymentContext deploymentContext) throws BuilderException { - return null; - } - - public ReferenceBinding build(CompositeComponent parent, - AbstractReferenceDefinition boundReferenceDefinition, - B bindingDefinition, - DeploymentContext deploymentContext) throws BuilderException { - return null; - } - - protected abstract Class<B> getBindingType(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java deleted file mode 100644 index d58cb55131..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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.spi.extension; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.builder.BuilderRegistry; -import org.apache.tuscany.spi.builder.ComponentBuilder; -import org.apache.tuscany.spi.builder.Connector; -import org.apache.tuscany.spi.component.ScopeRegistry; -import org.apache.tuscany.spi.component.WorkContext; -import org.apache.tuscany.spi.model.Implementation; -import org.apache.tuscany.spi.policy.PolicyBuilderRegistry; -import org.apache.tuscany.spi.services.work.WorkScheduler; -import org.apache.tuscany.spi.wire.WireService; - -import org.apache.tuscany.api.annotation.Monitor; - -/** - * An extension point for component builders. When adding support for new component types, implementations may extend - * this class as a convenience. - * - * @version $$Rev$$ $$Date$$ - */ -@EagerInit -public abstract class ComponentBuilderExtension<I extends Implementation<?>> implements ComponentBuilder<I> { - protected BuilderRegistry builderRegistry; - protected ScopeRegistry scopeRegistry; - protected WireService wireService; - protected WorkScheduler workScheduler; - protected WorkContext workContext; - protected PolicyBuilderRegistry policyBuilderRegistry; - protected Connector connector; - protected ExecutionMonitor monitor; - - @Autowire - public void setBuilderRegistry(BuilderRegistry registry) { - this.builderRegistry = registry; - } - - @Autowire - public void setScopeRegistry(ScopeRegistry scopeRegistry) { - this.scopeRegistry = scopeRegistry; - } - - @Autowire - public void setWireService(WireService wireService) { - this.wireService = wireService; - } - - @Autowire - public void setWorkScheduler(WorkScheduler workScheduler) { - this.workScheduler = workScheduler; - } - - @Autowire - public void setWorkContext(WorkContext workContext) { - this.workContext = workContext; - } - - @Autowire - public void setPolicyBuilderRegistry(PolicyBuilderRegistry registry) { - policyBuilderRegistry = registry; - } - - @Autowire - public void setConnector(Connector connector) { - this.connector = connector; - } - - @Monitor - public void setMonitor(ExecutionMonitor monitor) { - this.monitor = monitor; - } - - @Init - public void init() { - builderRegistry.register(getImplementationType(), this); - } - - protected abstract Class<I> getImplementationType(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java deleted file mode 100644 index ceebcbc490..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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.spi.extension; - -import org.osoa.sca.annotations.Destroy; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Scope; -import org.osoa.sca.annotations.EagerInit; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.loader.ComponentTypeLoader; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.apache.tuscany.spi.model.Implementation; - -/** - * @version $Rev$ $Date$ - */ -@Scope("COMPOSITE") -@EagerInit -public abstract class ComponentTypeLoaderExtension<I extends Implementation> implements ComponentTypeLoader<I> { - protected LoaderRegistry loaderRegistry; - - protected ComponentTypeLoaderExtension() { - } - - protected ComponentTypeLoaderExtension(LoaderRegistry loaderRegistry) { - this.loaderRegistry = loaderRegistry; - } - - @Autowire - public void setLoaderRegistry(LoaderRegistry loaderRegistry) { - this.loaderRegistry = loaderRegistry; - } - - @Init - public void start() { - loaderRegistry.registerLoader(getImplementationClass(), this); - } - - @Destroy - public void stop() { - loaderRegistry.unregisterLoader(getImplementationClass()); - } - - protected abstract Class<I> getImplementationClass(); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java deleted file mode 100644 index e5358643e0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java +++ /dev/null @@ -1,564 +0,0 @@ -/* - * 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.spi.extension; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.w3c.dom.Document; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.builder.Connector; -import org.apache.tuscany.spi.builder.WiringException; -import org.apache.tuscany.spi.component.AtomicComponent; -import org.apache.tuscany.spi.component.Component; -import org.apache.tuscany.spi.component.ComponentRegistrationException; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.DuplicateNameException; -import org.apache.tuscany.spi.component.InvalidAutowireInterface; -import org.apache.tuscany.spi.component.PrepareException; -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.component.TargetResolutionException; -import org.apache.tuscany.spi.event.Event; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.services.management.TuscanyManagementService; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.Wire; - -/** - * An extension point for composite components, which new types may extend - * - * @version $$Rev$$ $$Date$$ - */ -public abstract class CompositeComponentExtension extends AbstractComponentExtension implements CompositeComponent { - protected final Map<String, SCAObject> children = new ConcurrentHashMap<String, SCAObject>(); - protected final List<Service> services = new ArrayList<Service>(); - protected final List<Reference> references = new ArrayList<Reference>(); - - protected final Map<String, Document> propertyValues; - protected final Connector connector; - - protected final Map<String, SCAObject> systemChildren = new ConcurrentHashMap<String, SCAObject>(); - protected final List<Service> systemServices = new ArrayList<Service>(); - protected final List<Reference> systemReferenceBindings = new ArrayList<Reference>(); - - // autowire mappings - protected final Map<Class, InboundWire> autowireInternal = new ConcurrentHashMap<Class, InboundWire>(); - protected final Map<Class, InboundWire> autowireExternal = new ConcurrentHashMap<Class, InboundWire>(); - protected final Map<Class, InboundWire> systemAutowireInternal = new ConcurrentHashMap<Class, InboundWire>(); - protected final Map<Class, InboundWire> systemAutowireExternal = new ConcurrentHashMap<Class, InboundWire>(); - - /** - * Management service to use. - */ - private TuscanyManagementService managementService; - - protected CompositeComponentExtension(String name, - CompositeComponent parent, - Connector connector, - Map<String, Document> propertyValues) { - super(name, parent); - this.propertyValues = propertyValues; - this.connector = connector; - } - - /** - * Autowires the management service. - * - * @param managementService Management service used for registering components. - */ - @Autowire - public final void setManagementService(TuscanyManagementService managementService) { - this.managementService = managementService; - } - - public Scope getScope() { - return Scope.SYSTEM; - } - - public void onEvent(Event event) { - publish(event); - } - - public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance) - throws ComponentRegistrationException { - throw new UnsupportedOperationException(); - } - - public <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance) - throws ComponentRegistrationException { - throw new UnsupportedOperationException(); - } - - public Document getPropertyValue(String name) { - return propertyValues.get(name); - } - - public SCAObject getChild(String name) { - assert name != null; - return children.get(name); - } - - public SCAObject getSystemChild(String name) { - assert name != null; - return systemChildren.get(name); - } - - public void register(SCAObject child) throws ComponentRegistrationException { - assert child instanceof Service || child instanceof Reference || child instanceof Component; - if (child.isSystem()) { - if (systemChildren.get(child.getName()) != null) { - throw new DuplicateNameException("A system child is already registered with the name", child.getName()); - } - systemChildren.put(child.getName(), child); - } else { - if (children.get(child.getName()) != null) { - throw new DuplicateNameException("A child is already registered with the name", child.getName()); - } - children.put(child.getName(), child); - } - if (child instanceof Service) { - Service service = (Service) child; - synchronized (services) { - if (service.isSystem()) { - systemServices.add(service); - } else { - services.add(service); - } - } - registerAutowire(service); - } else if (child instanceof Reference) { - Reference reference = (Reference) child; - synchronized (references) { - if (reference.isSystem()) { - systemReferenceBindings.add(reference); - } else { - references.add(reference); - } - } - registerAutowire(reference); - } else if (child instanceof AtomicComponent) { - AtomicComponent atomic = (AtomicComponent) child; - registerAutowire(atomic); - if (managementService != null) { - managementService.registerComponent(atomic.getName(), atomic); - } - } else if (child instanceof CompositeComponent) { - CompositeComponent component = (CompositeComponent) child; - if (lifecycleState == RUNNING && component.getLifecycleState() == UNINITIALIZED) { - component.start(); - } - registerAutowire(component); - addListener(component); - } - } - - public Map<String, List<OutboundWire>> getOutboundWires() { - synchronized (references) { - Map<String, List<OutboundWire>> map = new HashMap<String, List<OutboundWire>>(); - for (Reference reference : references) { - List<OutboundWire> wires = new ArrayList<OutboundWire>(); - map.put(reference.getName(), wires); - for (ReferenceBinding binding : reference.getReferenceBindings()) { - OutboundWire wire = binding.getOutboundWire(); - if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) { - wires.add(wire); - } - } - } - return map; - } - } - - public InboundWire getInboundWire(String serviceName) { - Service service; - if (serviceName == null) { - if (services.size() != 1) { - return null; - } - service = services.get(0); - } else { - SCAObject object = children.get(serviceName); - if (!(object instanceof Service)) { - return null; - } - service = (Service) object; - } - for (ServiceBinding binding : service.getServiceBindings()) { - InboundWire wire = binding.getInboundWire(); - if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) { - return wire; - } - } - return null; - } - - public InboundWire getInboundSystemWire(String serviceName) { - Service service; - if (serviceName == null) { - if (systemServices.size() != 1) { - return null; - } - service = systemServices.get(0); - } else { - SCAObject object = systemChildren.get(serviceName); - if (!(object instanceof Service)) { - return null; - } - service = (Service) object; - } - for (ServiceBinding binding : service.getServiceBindings()) { - InboundWire wire = binding.getInboundWire(); - if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) { - return wire; - } - } - return null; - } - - public Collection<InboundWire> getInboundWires() { - synchronized (services) { - List<InboundWire> map = new ArrayList<InboundWire>(); - for (Service service : services) { - for (ServiceBinding binding : service.getServiceBindings()) { - InboundWire wire = binding.getInboundWire(); - if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) { - map.add(wire); - } - } - } - return map; - } - } - - public Collection<InboundWire> getInboundSystemWires() { - synchronized (systemServices) { - List<InboundWire> map = new ArrayList<InboundWire>(); - for (Service service : systemServices) { - for (ServiceBinding binding : service.getServiceBindings()) { - InboundWire wire = binding.getInboundWire(); - if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) { - map.add(wire); - } - } - } - return map; - } - } - - public InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException { - // FIXME JNB make this faster and thread safe - for (Map.Entry<Class, InboundWire> service : autowireInternal.entrySet()) { - if (instanceInterface.isAssignableFrom(service.getKey())) { - return service.getValue(); - } - } - - // FIXME: [rfeng] Try to lookup from system. Is it reasonable? - InboundWire inboundWire = resolveSystemAutowire(instanceInterface); - - if (inboundWire != null) { - return inboundWire; - } - if (getParent() != null) { - return getParent().resolveAutowire(instanceInterface); - } - return null; - } - - public InboundWire resolveSystemAutowire(Class<?> instanceInterface) throws TargetResolutionException { - // FIXME JNB make this faster and thread safe - for (Map.Entry<Class, InboundWire> service : systemAutowireInternal.entrySet()) { - if (instanceInterface.isAssignableFrom(service.getKey())) { - return service.getValue(); - } - } - if (getParent() != null) { - return getParent().resolveSystemAutowire(instanceInterface); - } - return null; - } - - public InboundWire resolveExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException { - // FIXME JNB make this faster and thread safe - for (Map.Entry<Class, InboundWire> service : autowireExternal.entrySet()) { - if (instanceInterface.isAssignableFrom(service.getKey())) { - return service.getValue(); - } - } - if (getParent() != null) { - return getParent().resolveAutowire(instanceInterface); - } - return null; - } - - public InboundWire resolveSystemExternalAutowire(Class<?> instanceInterface) throws TargetResolutionException { - // FIXME JNB make this faster and thread safe - for (Map.Entry<Class, InboundWire> service : systemAutowireExternal.entrySet()) { - if (instanceInterface.isAssignableFrom(service.getKey())) { - return service.getValue(); - } - } - if (getParent() != null) { - return getParent().resolveAutowire(instanceInterface); - } - return null; - } - - public void prepare() throws PrepareException { - // Connect services and references first so that their wires are linked first - List<SCAObject> childList = new ArrayList<SCAObject>(); - for (SCAObject child : systemChildren.values()) { - if (child instanceof Component) { - childList.add(child); - } else { - childList.add(0, child); - } - } - // connect system artifacts - for (SCAObject child : childList) { - // connect all children - // TODO for composite wires, should delegate down - try { - connector.connect(child); - child.prepare(); - } catch (PrepareException e) { - e.addContextName(getName()); - } catch (WiringException e) { - throw new PrepareException("Error preparing composite", getName(), e); - } - } - - // connect application artifacts - childList.clear(); - for (SCAObject child : children.values()) { - if (child instanceof Component) { - childList.add(child); - } else { - childList.add(0, child); - } - } - for (SCAObject child : childList) { - // connect all children - // TODO for composite wires, should delegate down - try { - connector.connect(child); - child.prepare(); - } catch (PrepareException e) { - e.addContextName(getName()); - throw e; - } catch (WiringException e) { - throw new PrepareException("Error preparing composite", getName(), e); - } - } - } - - protected void registerAutowireExternal(Class<?> interfaze, Service service) throws InvalidAutowireInterface { - if (interfaze == null) { - // The ServiceContract is not from Java - return; - } - if (service.isSystem()) { - if (systemAutowireExternal.containsKey(interfaze)) { - return; - } - // TODO autowire should allow multiple interfaces - List<ServiceBinding> bindings = service.getServiceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", - interfaze.getName()); - } - systemAutowireExternal.put(interfaze, wire); - } else { - if (autowireExternal.containsKey(interfaze)) { - return; - } - // TODO autowire should allow multiple interfaces - List<ServiceBinding> bindings = service.getServiceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - String iName = interfaze.getName(); - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName); - } - autowireExternal.put(interfaze, wire); - } - } - - protected void registerAutowireInternal(Class<?> interfaze, InboundWire wire, boolean system) - throws InvalidAutowireInterface { - if (interfaze == null) { - // The ServiceContract is not from Java - return; - } - if (system) { - if (systemAutowireInternal.containsKey(interfaze)) { - return; - } - systemAutowireInternal.put(interfaze, wire); - } else { - if (autowireInternal.containsKey(interfaze)) { - return; - } - if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - String iName = interfaze.getName(); - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName); - } - autowireInternal.put(interfaze, wire); - } - } - - protected void registerAutowireInternal(Class<?> interfaze, Reference reference) throws InvalidAutowireInterface { - if (interfaze == null) { - // The ServiceContract is not from Java - return; - } - if (reference.isSystem()) { - if (systemAutowireInternal.containsKey(interfaze)) { - return; - } - List<ReferenceBinding> bindings = reference.getReferenceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", - interfaze.getName()); - } - systemAutowireInternal.put(interfaze, wire); - } else { - if (autowireInternal.containsKey(interfaze)) { - return; - } - List<ReferenceBinding> bindings = reference.getReferenceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - String iName = interfaze.getName(); - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName); - } - autowireInternal.put(interfaze, wire); - } - } - - protected void registerAutowireInternal(Class<?> interfaze, AtomicComponent component) - throws InvalidAutowireInterface { - if (interfaze == null) { - // The ServiceContract is not from Java - return; - } - if (component.isSystem()) { - if (systemAutowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) { - return; - } - for (InboundWire wire : component.getInboundWires()) { - Class<?> clazz = wire.getServiceContract().getInterfaceClass(); - if (clazz.isAssignableFrom(interfaze)) { - systemAutowireInternal.put(interfaze, wire); - return; - } - } - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName()); - } else { - if (autowireInternal.containsKey(interfaze) || component.getInboundWires().size() == 0) { - return; - } - for (InboundWire wire : component.getInboundWires()) { - if (interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) { - autowireInternal.put(interfaze, wire); - return; - } - } - throw new InvalidAutowireInterface("Matching inbound wire not found for interface", interfaze.getName()); - } - } - - protected void registerAutowire(CompositeComponent component) throws InvalidAutowireInterface { - if (component.isSystem()) { - // the composite is under the system hierarchy so only register its system services - Collection<InboundWire> wires = component.getInboundSystemWires(); - for (InboundWire wire : wires) { - Class<?> clazz = wire.getServiceContract().getInterfaceClass(); - registerAutowireInternal(clazz, wire, true); - } - - } else { - // the composite is under the application hierarchy so only register its non-system services - Collection<InboundWire> wires = component.getInboundWires(); - for (InboundWire wire : wires) { - Class<?> clazz = wire.getServiceContract().getInterfaceClass(); - registerAutowireInternal(clazz, wire, false); - } - } - } - - protected void registerAutowire(AtomicComponent component) throws InvalidAutowireInterface { - for (InboundWire wire : component.getInboundWires()) { - registerAutowireInternal(wire.getServiceContract().getInterfaceClass(), component); - } - } - - protected void registerAutowire(Reference reference) throws InvalidAutowireInterface { - // TODO autowire should allow multiple interfaces - List<ReferenceBinding> bindings = reference.getReferenceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - Class<?> clazz = wire.getServiceContract().getInterfaceClass(); - registerAutowireInternal(clazz, reference); - - - } - - protected void registerAutowire(Service service) throws InvalidAutowireInterface { - // TODO autowire should allow multiple interfaces - List<ServiceBinding> bindings = service.getServiceBindings(); - if (bindings.size() == 0) { - return; - } - // pick the first binding until autowire allows multiple interfaces - InboundWire wire = bindings.get(0).getInboundWire(); - Class<?> clazz = wire.getServiceContract().getInterfaceClass(); - registerAutowireExternal(clazz, service); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java deleted file mode 100644 index a732b86184..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java +++ /dev/null @@ -1,75 +0,0 @@ -/*
- * 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.spi.extension;
-
-import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.deployer.ContributionProcessor;
-import org.apache.tuscany.spi.deployer.ContributionProcessorRegistry;
-import org.osoa.sca.annotations.Destroy;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Service;
-
-/**
- * The base class for ContributionProcessor implementations
- *
- * @version $Rev$ $Date$
- */
-@EagerInit
-@Service(ContributionProcessor.class)
-public abstract class ContributionProcessorExtension implements ContributionProcessor {
- /**
- * The ContributionProcessorRegistry that this processor should register with; usually set by injection. This registry may also be used to process
- * other sub-artifacts.
- */
- protected ContributionProcessorRegistry registry;
-
- /**
- * @param registry the registry to set
- */
- @Autowire
- public void setContributionProcessorRegistry(ContributionProcessorRegistry registry) {
- this.registry = registry;
- }
-
- /**
- * Initialize the processor. It registers itself to the registry by content type it supports.
- */
- @Init
- public void start() {
- registry.register(this.getContentType(), this);
- }
-
- /**
- * Destroy the processor. It unregisters itself from the registry.
- */
- @Destroy
- public void stop() {
- registry.unregister(this.getContentType());
- }
-
- /**
- * Returns the content type that this implementation can handle.
- *
- * @return the content type that this implementation can handle
- */
- public abstract String getContentType();
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java deleted file mode 100644 index fc6e5b7a14..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ExecutionMonitor.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.extension; - -/** - * A monitor used to log events during an invocation - * - * @version $$Rev$$ $$Date$$ - */ -public interface ExecutionMonitor { - - /** - * Logs an exception thrown during an invocation - */ - void executionError(Throwable e); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/GenericBuilderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/GenericBuilderExtension.java deleted file mode 100644 index 42893682e0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/GenericBuilderExtension.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.extension; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.builder.BuilderRegistry; -import org.apache.tuscany.spi.builder.GenericBuilder; -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.model.ModelObject; -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -/** - * An extension point for generic builders which can deal with SCDL - * extensibility elements - * - * @version $$Rev$$ $$Date$$ - */ -@EagerInit -public abstract class GenericBuilderExtension<S extends SCAObject, M extends ModelObject> implements - GenericBuilder<S, M> { - - protected BuilderRegistry builderRegistry; - - @Autowire - public void setBuilderRegistry(BuilderRegistry registry) { - this.builderRegistry = registry; - } - - @Init - public void init() { - builderRegistry.register(getModelType(), this); - } - - protected abstract Class<M> getModelType(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java deleted file mode 100644 index d256ef1fdd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/LoaderExtension.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.spi.extension; - -import javax.xml.namespace.QName; - -import org.osoa.sca.annotations.Destroy; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.EagerInit; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.apache.tuscany.spi.loader.StAXElementLoader; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Support class for extending the Loader mechanism. - * - * @version $Rev$ $Date$ - */ -@EagerInit -public abstract class LoaderExtension<T extends ModelObject> implements StAXElementLoader<T> { - /** - * The LoaderRegistry that this loader should register with; usually set by injection. This registry may also be - * used to load sub-elements. - */ - protected LoaderRegistry registry; - - /** - * Constructor specifies the registry to register with. - * - * @param registry the LoaderRegistry this loader should register with - */ - protected LoaderExtension(@Autowire LoaderRegistry registry) { - this.registry = registry; - } - - /** - * Initialize the loader. The base implementation registers this loader with the registry as a handler for the XML - * type returned by {@link #getXMLType()}. Implementations may override this to register the loader as a handler for - * multiple XML types. - */ - @Init - public void start() { - registry.registerLoader(getXMLType(), this); - } - - /** - * Destroy the loader. The base implementation unregisters the loader from the regsitry based on the type returned - * by {@link #getXMLType()}. - */ - @Destroy - public void stop() { - registry.unregisterLoader(getXMLType(), this); - } - - /** - * Returns the QName of the element that this implementation handles. - * - * @return the QName of the element that this implementation handles - */ - public abstract QName getXMLType(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java deleted file mode 100644 index 1653e87dc2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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.spi.extension; - -import org.apache.tuscany.spi.component.AbstractSCAObject; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; - -/** - * The default implementation of an SCA reference - * - * @version $Rev$ $Date$ - */ -public abstract class ReferenceBindingExtension extends AbstractSCAObject implements ReferenceBinding { - protected Reference reference; - protected InboundWire inboundWire; - protected OutboundWire outboundWire; - protected ServiceContract<?> bindingServiceContract; - - protected ReferenceBindingExtension(String name, CompositeComponent parent) { - super(name, parent); - } - - public Scope getScope() { - return Scope.SYSTEM; - } - - public void setReference(Reference reference) { - this.reference = reference; - } - - public void setInboundWire(InboundWire wire) { - this.inboundWire = wire; - } - - public InboundWire getInboundWire() { - return inboundWire; - } - - public OutboundWire getOutboundWire() { - return outboundWire; - } - - public void setOutboundWire(OutboundWire outboundWire) { - this.outboundWire = outboundWire; - } - - public ServiceContract<?> getBindingServiceContract() { - return bindingServiceContract; - } - - @Override - public boolean isSystem() { - return reference != null && reference.isSystem(); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java deleted file mode 100644 index 9e4be85406..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceBindingExtension.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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.spi.extension; - -import org.apache.tuscany.spi.CoreRuntimeException; -import org.apache.tuscany.spi.component.AbstractSCAObject; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.component.TargetInvokerCreationException; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * The default implementation of an SCA service - * - * @version $Rev$ $Date$ - */ -public abstract class ServiceBindingExtension extends AbstractSCAObject implements ServiceBinding { - protected Service service; - protected InboundWire inboundWire; - protected OutboundWire outboundWire; - protected ServiceContract<?> bindingServiceContract; - - public ServiceBindingExtension(String name, CompositeComponent parent) throws CoreRuntimeException { - super(name, parent); - } - - public Scope getScope() { - return Scope.SYSTEM; - } - - public void setService(Service service) { - this.service = service; - } - - public InboundWire getInboundWire() { - return inboundWire; - } - - public void setInboundWire(InboundWire wire) { - inboundWire = wire; - } - - public OutboundWire getOutboundWire() { - return outboundWire; - } - - public void setOutboundWire(OutboundWire outboundWire) { - this.outboundWire = outboundWire; - } - - public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) - throws TargetInvokerCreationException { - throw new UnsupportedOperationException(); - } - - public ServiceContract<?> getBindingServiceContract() { - return bindingServiceContract; - } - - @Override - public boolean isSystem() { - return service != null && service.isSystem(); - } - - public boolean allowsPassByReference() { - return false; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java deleted file mode 100644 index 6c502702e9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/SystemAtomicComponentExtension.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.extension; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * @version $Rev$ $Date$ - */ -public abstract class SystemAtomicComponentExtension extends AtomicComponentExtension { - - public SystemAtomicComponentExtension(String name, - CompositeComponent parent, - int initLevel) { - super(name, parent, null, null, null, null, initLevel); - } - - public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) { - throw new UnsupportedOperationException(); - } - - public boolean isSystem() { - return true; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java deleted file mode 100644 index 88949646ff..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * 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.spi.extension; - -import java.lang.reflect.InvocationTargetException; -import java.util.LinkedList; - -import org.apache.tuscany.spi.component.WorkContext; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.InvocationRuntimeException; -import org.apache.tuscany.spi.wire.Message; -import org.apache.tuscany.spi.wire.TargetInvoker; - -/** - * The default implementation of a TargetInvoker - * - * @version $Rev$ $Date$ - */ -public abstract class TargetInvokerExtension implements TargetInvoker { - - protected InboundWire wire; - protected WorkContext workContext; - protected ExecutionMonitor monitor; - protected boolean cacheable; - - /** - * Creates a new invoker - * - * @param wire the callback wire - * @param workContext the work context to use for setting correlation information - * @param monitor the event monitor - */ - public TargetInvokerExtension(InboundWire wire, WorkContext workContext, ExecutionMonitor monitor) { - this.wire = wire; - this.workContext = workContext; - this.monitor = monitor; - } - - public Message invoke(Message msg) throws InvocationRuntimeException { - try { - Object messageId = msg.getMessageId(); - if (messageId != null) { - workContext.setCurrentCorrelationId(messageId); - } - if (wire != null) { - LinkedList<Object> callbackRoutingChain = msg.getCallbackRoutingChain(); - if (callbackRoutingChain != null) { - workContext.setCurrentCallbackRoutingChain(callbackRoutingChain); - } - } - Object resp = invokeTarget(msg.getBody(), msg.getConversationSequence()); - msg.setBody(resp); - } catch (InvocationTargetException e) { - msg.setBodyWithFault(e.getCause()); - } - return msg; - } - - public boolean isCacheable() { - return cacheable; - } - - public void setCacheable(boolean cacheable) { - this.cacheable = cacheable; - } - - public boolean isOptimizable() { - return isCacheable(); - } - - public Object clone() throws CloneNotSupportedException { - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - // TargetInvoker extends Cloneable so this should not have been thrown - throw new AssertionError(e); - } - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java deleted file mode 100644 index b273ec6729..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHost.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.host; - -/** - * Interface implemented by host environments that allow for resolution of component implementation resources, e.g. - * items bound in a JNDI tree. - * - * @version $Rev$ $Date$ - */ -public interface ResourceHost { - - /** - * Resolve a resource matching the given type - * - * @param type the type of the resources - * @throws ResourceResolutionException if an error is encountered during resolution - */ - <T> T resolveResource(Class<T> type) throws ResourceResolutionException; - - /** - * Resolve a resource matching the given type and name - * - * @param type the type of the resources - * @param mappedName the mapped name of the resource - * @throws ResourceResolutionException if an error is encountered during resolution - */ - <T> T resolveResource(Class<T> type, String mappedName) throws ResourceResolutionException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java deleted file mode 100644 index b4964cce3b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceHostRegistry.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.spi.host; - -/** - * Implementations manage a registry of resources and resource hosts in the runtime - * - * @version $Rev$ $Date$ - */ -public interface ResourceHostRegistry { - /** - * Registers a resource host for the given uri prefix - * - * @param uri the uri prefix the host resolves resources for - * @param host the resource host - */ - void registerResourceHost(String uri, ResourceHost host); - - /** - * Removes a resource host registered for the given uri prefix - */ - void unregisterResourceHost(String uri); - - /** - * Register a resource by type - * - * @param type the type of the resource - * @param resource the resource - */ - void registerResource(Class<?> type, Object resource); - - /** - * Register a resource by type and name - * - * @param type the type of the resource - * @param name the mapped resource name - * @param resource the resource - */ - void registerResource(Class<?> type, String name, Object resource); - - /** - * Unregister a resource - * - * @param type the type the resource was registered with - * @param name the mapped name the resource was registered with - */ - void unregisterResource(Class<?> type, String name); - - /** - * Unregister a resource - * - * @param type the type the resource was registered with - */ - void unregisterResource(Class<?> type); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java deleted file mode 100644 index 23c18f5115..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ResourceResolutionException.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.spi.host; - -import org.apache.tuscany.api.TuscanyException; - -/** - * @version $Rev$ $Date$ - */ -public class ResourceResolutionException extends TuscanyException { - - public ResourceResolutionException(String message, String identifier) { - super(message, identifier); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java deleted file mode 100644 index 37937808d4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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.spi.host; - -import javax.servlet.Servlet; - -/** - * Interface implemented by host environments that allow Servlets to be registered. - * <p/> - * This interface allows an SCA system service to register a servlet to handle inbound requests. - * - * @version $Rev$ $Date$ - */ -public interface ServletHost { - /** - * Register a mapping for an instance of a Servlet. This requests that the servlet container direct all requests to - * the designated mapping to the supplied Servlet instance. - * - * @param mapping the uri-mapping for the Servlet - * @param servlet the Servlet that should be invoked - */ - void registerMapping(String mapping, Servlet servlet); - - /** - * Unregister a servlet mapping. This directs the servlet contain not to direct any more requests to a previously - * registered Servlet. - * - * @param mapping the uri-mapping for the Servlet - * @return the servlet that was registered to the mapping, null if nothing was registered to the mapping - */ - Servlet unregisterMapping(String mapping); - - /** - * Check to see if a mapping exists. - * - * @param mapping the uri-mapping for the Servlet - * @return true if mapping is registered, false otherwise - */ - boolean isMappingRegistered(String mapping); - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java deleted file mode 100644 index 5a0bd3bb5f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.spi.idl; - -import javax.xml.namespace.QName; - -/** - * An abstraction of XML schema elements - */ -public class ElementInfo { - private QName name; - private TypeInfo type; - - /** - * @param name - * @param type - */ - public ElementInfo(QName name, TypeInfo type) { - super(); - this.name = name; - this.type = type; - } - - /** - * @return the name - */ - public QName getQName() { - return name; - } - - /** - * @return the type - */ - public TypeInfo getType() { - return type; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java deleted file mode 100644 index e2b4acec24..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidConversationalOperationException.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.idl; - -import java.lang.reflect.Method; - -/** - * Denotes an invalid conversational interface definition - * - * @version $Rev$ $Date$ - */ -public class InvalidConversationalOperationException extends InvalidServiceContractException { - private final Method operation; - - public InvalidConversationalOperationException(String message, String identifier, Method operation) { - super(message, identifier); - this.operation = operation; - } - - public Method getOperation() { - return operation; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java deleted file mode 100644 index e977592df0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/InvalidServiceContractException.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.idl; - -import org.apache.tuscany.api.TuscanyException; - -/** - * @version $Rev$ $Date$ - */ -public abstract class InvalidServiceContractException extends TuscanyException { - - public InvalidServiceContractException() { - } - - public InvalidServiceContractException(String message) { - super(message); - } - - protected InvalidServiceContractException(String message, String identifier) { - super(message, identifier); - } - - public InvalidServiceContractException(String message, Throwable cause) { - super(message, cause); - } - - protected InvalidServiceContractException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public InvalidServiceContractException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java deleted file mode 100644 index b1d4cb4e7c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/OverloadedOperationException.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.idl; - -import java.lang.reflect.Method; - -/** - * Exception thrown to indicate that a service contract specification contains an overloaded method. - * - * @version $Rev$ $Date$ - */ -public class OverloadedOperationException extends InvalidServiceContractException { - private static final long serialVersionUID = -4658711318608885638L; - private final Method operation; - - public OverloadedOperationException(Method operation) { - super(null, operation.getDeclaringClass().getName()); - this.operation = operation; - } - - public Method getOperation() { - return operation; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java deleted file mode 100644 index 1c8a8c81e9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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.spi.idl; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.api.TuscanyException; - -/** - * The generic java exception to wrap service faults - * - * @version $Rev$ $Date$ - */ -public class ServiceFaultException extends TuscanyException { - private static final long serialVersionUID = -8002583655240625792L; - private Object faultInfo; - private QName logical; - - /** - * @param message - * @param faultInfo - */ - public ServiceFaultException(String message, Object faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * @param message - * @param faultInfo - * @param cause - */ - public ServiceFaultException(String message, Object faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * @return the faultInfo - */ - public Object getFaultInfo() { - return faultInfo; - } - - public QName getLogical() { - return logical; - } - - public void setLogical(QName logical) { - this.logical = logical; - } - - public boolean isMatchingType(Object type) { - if (logical == null) - return false; - - if ((type instanceof QName) && logical.equals(type)) { - return true; - } - if (type instanceof XMLType && logical.equals(((XMLType)type).getElementName())) - return true; - return false; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java deleted file mode 100644 index 9bb107812c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.spi.idl; - -import javax.xml.namespace.QName; - -/** - * An abstraction of XML schema types - */ -public class TypeInfo { - private QName name; - - private boolean isSimpleType; - - private TypeInfo baseType; - - /** - * @param name - * @param isSimpleType - */ - public TypeInfo(QName name, boolean isSimpleType, TypeInfo baseType) { - super(); - this.name = name; - this.isSimpleType = isSimpleType; - this.baseType = baseType; - } - - /** - * @return the isSimpleType - */ - public boolean isSimpleType() { - return isSimpleType; - } - - /** - * @return the name - */ - public QName getQName() { - return name; - } - - /** - * @return the baseType - */ - public TypeInfo getBaseType() { - return baseType; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/XMLType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/XMLType.java deleted file mode 100644 index 1d626516b0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/XMLType.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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.spi.idl; - -import javax.xml.namespace.QName; - -/** - * The metadata for an XML element or type - */ -public class XMLType { - public static final XMLType UNKNOWN = new XMLType(null, null); - private QName element; - private QName type; - - /** - * @param element - */ - public XMLType(ElementInfo element) { - super(); - this.element = element.getQName(); - if (element.getType() != null) { - this.type = element.getType().getQName(); - } - } - - /** - * @param element - */ - public XMLType(TypeInfo type) { - this.element = null; - this.type = type.getQName(); - } - - public XMLType(QName element, QName type) { - this.element = element; - this.type = type; - } - - /** - * @return the type - */ - public QName getTypeName() { - return type; - } - - public boolean isElement() { - return element != null; - } - - public QName getElementName() { - return element; - } - - public static XMLType getType(QName type) { - return new XMLType(null, type); - } - - /** - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int PRIME = 31; - int result = 1; - result = PRIME * result + ((element == null) ? 0 : element.hashCode()); - result = PRIME * result + ((type == null) ? 0 : type.hashCode()); - return result; - } - - /** - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final XMLType other = (XMLType)obj; - if (element == null) { - if (other.element != null) { - return false; - } - } else if (!element.equals(other.element)) { - return false; - } - if (type == null) { - if (other.type != null) { - return false; - } - } else if (!type.equals(other.type)) { - return false; - } - return true; - } - - @Override - public String toString() { - return "Element: " + element + " Type: " + type; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java deleted file mode 100644 index 9701b08df1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/InterfaceJavaIntrospector.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.spi.idl.java; - -import org.apache.tuscany.spi.idl.InvalidServiceContractException; - -/** - * Processor for creating JavaServiceContract definitions from Java Classes. - * - * @version $Rev$ $Date$ - */ -public interface InterfaceJavaIntrospector { - - /** - * Introspect a Java interface and return a service contract definition. - * - * @param type the interface to inspect - * @return a JavaServiceContract corresponding to the Java interface - */ - <I> JavaServiceContract introspect(Class<I> type) throws InvalidServiceContractException; - - /** - * Introspect a Java interface and return a service contract definition. - * - * @param type the interface to inspect - * @param deep Indicate if deep introspection is required - * @return a JavaServiceContract corresponding to the Java interface - */ - <I> JavaServiceContract introspect(Class<I> type, boolean deep) throws InvalidServiceContractException; - - /** - * Introspect a Java interface and return a service contract definition. - * - * @param type the interface to inspect - * @param callback the callback interface to inspec - * @param deep Indicate if deep introspection is required - * @return a JavaServiceContract corresponding to the Java interface - */ - <I, C> JavaServiceContract introspect(Class<I> type, Class<C> callback, boolean deep) - throws InvalidServiceContractException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java deleted file mode 100644 index 17fcd8d4a3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaIDLUtils.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * 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.spi.idl.java; - -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.List; - -import org.apache.tuscany.spi.model.DataType; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * Contains methods for mapping between an operation in a {@link org.apache.tuscany.spi.model.ServiceContract} and a - * method defined by a Java interface - * - * @version $Rev$ $Date$ - */ -public final class JavaIDLUtils { - - private JavaIDLUtils() { - } - - /** - * Searches an array of methods for a match against the given operation - * - * @param operation the operation to match - * @param methods the methods to match against - * @return a matching method or null - */ - public static Method findMethod(Operation<?> operation, Method[] methods) { - for (Method method : methods) { - if (match(operation, method)) { - return method; - } - } - return null; - } - - /** - * Searches a collection of operations for a match against the given method - * - * @param method the method to match - * @param operations the operations to match against - * @return a matching operation or null - */ - public static Operation findOperation(Method method, Collection<Operation<?>> operations) { - for (Operation<?> operation : operations) { - if (match(operation, method)) { - return operation; - } - } - return null; - } - - /** - * Determines if the given operation matches the given method - * - * @return true if the operation matches, false if does not - */ - private static <T> boolean match(Operation<T> operation, Method method) { - // TODO: TUSCANY-1111, comparing different IDLs fail so use simple name - // matching - ServiceContract<T> contract = operation.getServiceContract(); - if (contract != null && contract.isRemotable()) { - // No method overloading for remotable interfaces - return operation.getName().equals(method.getName()); - } - Class<?>[] params = method.getParameterTypes(); - DataType<List<DataType<T>>> inputType = operation.getInputType(); - List<DataType<T>> types = inputType.getLogical(); - boolean found = true; - if (types.size() == params.length && method.getName().equals(operation.getName())) { - for (int i = 0; i < params.length; i++) { - Class<?> clazz = params[i]; - if (!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) { - found = false; - } - } - } else { - found = false; - } - return found; - - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java deleted file mode 100644 index afe98f0773..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessor.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.spi.idl.java; - -import org.apache.tuscany.spi.idl.InvalidServiceContractException; - -/** - * Implementations introspect metadata on a Java interface, populating the - * corresponding {@link JavaServiceContract} - * - * @version $Rev$ $Date$ - */ -public interface JavaInterfaceProcessor { - - void visitInterface(Class<?> clazz, Class<?> callbackClass, JavaServiceContract contract) - throws InvalidServiceContractException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java deleted file mode 100644 index 950ce1858c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorExtension.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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.spi.idl.java; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -import org.apache.tuscany.spi.annotation.Autowire; - -/** - * A convenience class for <code>JavaInterfaceProcessor</code> extensions that performs autowiring - * - * @version $Rev$ $Date$ - */ -@EagerInit -public abstract class JavaInterfaceProcessorExtension implements JavaInterfaceProcessor { - - protected JavaInterfaceProcessorRegistry registry; - - @Autowire - public void setRegistry(JavaInterfaceProcessorRegistry registry) { - this.registry = registry; - } - - @Init - public void init() { - registry.registerProcessor(this); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java deleted file mode 100644 index 38c64e6f88..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaInterfaceProcessorRegistry.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.spi.idl.java; - -/** - * A registry of {@link JavaInterfaceProcessor}s. Interface processors update a service contract definition based on a - * Java interface - * - * @version $Rev$ $Date$ - */ -public interface JavaInterfaceProcessorRegistry extends InterfaceJavaIntrospector { - - /** - * Registers the given processor - */ - void registerProcessor(JavaInterfaceProcessor processor); - - /** - * Deregisters the given processor - */ - void unregisterProcessor(JavaInterfaceProcessor processor); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java deleted file mode 100644 index ee29846e26..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/java/JavaServiceContract.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.spi.idl.java; - -import java.lang.reflect.Type; - -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * Represents a service contract specified using a Java interface - * - * @version $Rev$ $Date$ - */ -public class JavaServiceContract extends ServiceContract<Type> { - - public JavaServiceContract() { - } - - public JavaServiceContract(Class<?> interfaceClass) { - super(interfaceClass); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java deleted file mode 100644 index b0682bc778..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Member; -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.Map; - -import org.apache.tuscany.api.annotation.DataType; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.databinding.DataBinding; -import org.apache.tuscany.spi.deployer.DeploymentContext; - -/** - * Base class for ImplementationProcessors that handle annotations that add Properties. - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractPropertyProcessor<A extends Annotation> extends ImplementationProcessorExtension { - private final Class<A> annotationClass; - private ImplementationProcessorService service; - - protected AbstractPropertyProcessor(Class<A> annotationClass, ImplementationProcessorService service) { - this.annotationClass = annotationClass; - this.service = service; - } - - public void visitMethod(CompositeComponent parent, - Method method, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException { - A annotation = method.getAnnotation(annotationClass); - if (annotation == null) { - return; - } - - if (!Void.TYPE.equals(method.getReturnType())) { - throw new IllegalPropertyException("Method does not have void return type", method.toString()); - } - Class[] paramTypes = method.getParameterTypes(); - if (paramTypes.length != 1) { - throw new IllegalPropertyException("Method must have a single parameter", method.toString()); - } - Class<?> javaType = paramTypes[0]; - - String name = getName(annotation); - if (name == null || name.length() == 0) { - name = method.getName(); - if (name.startsWith("set")) { - name = toPropertyName(method.getName()); - } - } - - Map<String, JavaMappedProperty<?>> properties = type.getProperties(); - if (properties.containsKey(name)) { - throw new DuplicatePropertyException(name); - } - - Class<?> baseType = getBaseType(javaType, method.getGenericParameterTypes()[0]); - JavaMappedProperty<?> property = createProperty(name, baseType, method); - if (javaType.isArray() || Collection.class.isAssignableFrom(javaType)) { - property.setMany(true); - } - - //add databinding available as annotations, as extensions - DataType propertyDataBinding = method.getAnnotation(DataType.class); - if (propertyDataBinding != null) { - property.getExtensions().put(DataBinding.class.getName(), propertyDataBinding.name()); - } - initProperty(property, annotation, parent, context); - properties.put(name, property); - } - - public void visitField(CompositeComponent parent, - Field field, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException { - - A annotation = field.getAnnotation(annotationClass); - if (annotation == null) { - return; - } - - Class<?> javaType = field.getType(); - - String name = getName(annotation); - if (name == null || name.length() == 0) { - name = field.getName(); - } - - Map<String, JavaMappedProperty<?>> properties = type.getProperties(); - if (properties.containsKey(name)) { - throw new DuplicatePropertyException(name); - } - - Class<?> baseType = getBaseType(javaType, field.getGenericType()); - JavaMappedProperty<?> property = createProperty(name, baseType, field); - if (javaType.isArray() || Collection.class.isAssignableFrom(javaType)) { - property.setMany(true); - } - - //add databinding available as annotations, as extensions - DataType propertyDataBinding = field.getAnnotation(DataType.class); - if (propertyDataBinding != null) { - property.getExtensions().put(DataBinding.class.getName(), propertyDataBinding.name()); - } - - initProperty(property, annotation, parent, context); - properties.put(name, property); - } - - public <T> void visitConstructor(CompositeComponent parent, Constructor<T> constructor, - PojoComponentType<JavaMappedService, - JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException { - - ConstructorDefinition<?> definition = type.getConstructorDefinition(); - Class[] params = constructor.getParameterTypes(); - Map<String, JavaMappedProperty<?>> properties = type.getProperties(); - Annotation[][] annotations = constructor.getParameterAnnotations(); - - for (int i = 0; i < params.length; i++) { - Class<?> param = params[i]; - Annotation[] paramAnnotations = annotations[i]; - JavaMappedProperty<?> property = null; - DataType propertyDataBinding = null; - A monitorAnnot = null; - String name = null; - for (Annotation annotation : paramAnnotations) { - if (annotation.annotationType().equals(annotationClass)) { - if (definition == null) { - definition = new ConstructorDefinition<T>(constructor); - type.setConstructorDefinition(definition); - } - monitorAnnot = annotationClass.cast(annotation); - name = getName(monitorAnnot); - if (name == null || name.length() == 0) { - name = param.getName(); - } - - Class<?> baseType = getBaseType(param, constructor.getGenericParameterTypes()[i]); - //JavaMappedProperty<?> property = createProperty(name, baseType, constructor); - property = createProperty(name, baseType, constructor); - if (param.isArray() || Collection.class.isAssignableFrom(param)) { - property.setMany(true); - } - } else if (annotation.annotationType().equals(DataType.class)) { - //if there is databinding information capture it - propertyDataBinding = DataType.class.cast(annotation); - } - } - //if there has been a property annotation then a property would have been created - if (property != null) { - initProperty(property, monitorAnnot, parent, context); - properties.put(name, property); - service.addName(definition.getInjectionNames(), i, name); - if (propertyDataBinding != null) { - property.getExtensions().put(DataBinding.class.getName(), propertyDataBinding.name()); - } - } - } - } - - protected abstract String getName(A annotation); - - protected <T> void initProperty(JavaMappedProperty<T> property, - A annotation, - CompositeComponent parent, - DeploymentContext context) throws ProcessingException { - } - - protected <T> JavaMappedProperty<T> createProperty(String name, Class<T> javaType, Member member) - throws ProcessingException { - return new JavaMappedProperty<T>(name, null, javaType, member); - } - - - public static String toPropertyName(String name) { - if (!name.startsWith("set")) { - return name; - } - return Character.toLowerCase(name.charAt(3)) + name.substring(4); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java deleted file mode 100644 index 94c185966f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ConstructorDefinition.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.List; - -/** - * Hold injection information for the constructor used to instantiate a component implementation instance - * - * @version $Rev$ $Date$ - */ -public class ConstructorDefinition<T> { - - private Constructor<T> constructor; - private List<String> injectionNames; - - public ConstructorDefinition(Constructor<T> constructor) { - this.constructor = constructor; - injectionNames = new ArrayList<String>(); - } - - public Constructor<T> getConstructor() { - return constructor; - } - - public List<String> getInjectionNames() { - return injectionNames; - } - - public void setInjectionNames(List<String> injectionNames) { - this.injectionNames = injectionNames; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java deleted file mode 100644 index 87c4074fe7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.implementation.java; - -/** - * Thrown when an implementation has more than one property injection site with the same name - * - * @version $Rev$ $Date$ - */ -public class DuplicatePropertyException extends ProcessingException { - - public DuplicatePropertyException(String message) { - super(message); - } - - public DuplicatePropertyException(String message, String identifier) { - super(message, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java deleted file mode 100644 index f251f60630..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.implementation.java; - -/** - * Denotes an illegal property definition in a component type - * - * @version $Rev$ $Date$ - */ -public class IllegalPropertyException extends ProcessingException { - - public IllegalPropertyException(String message) { - super(message); - } - - - public IllegalPropertyException(String message, String identifier) { - super(message, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java deleted file mode 100644 index fb9beca53c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessor.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; - -/** - * Implementations process class-level metadata, typically parsing annotations and updating the corresponding - * <code>ComponentType</code>. A processor may, for example, create a {@link JavaMappedProperty} which is responsible - * for injecting a complex type on a component implementation instance when it is instantiated. - * <p/> - * Processors will receive callbacks as the implementation class is walked while evalauting an assembly. It is the - * responsibility of the parser to determine whether to perform an action during the callback. - * - * @version $Rev$ $Date$ - */ -public interface ImplementationProcessor { - - /** - * A callback received when the component implementation class is first loaded - * - * @param parent the parent composite - * @param clazz the component implementation class - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - <T> void visitClass(CompositeComponent parent, - Class<T> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException; - - /** - * A callback received as the component implementation class hierarchy is evaluated - * - * @param parent the parent composite - * @param clazz the superclass in the component implmentation's class hierarchy - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - <T> void visitSuperClass(CompositeComponent parent, - Class<T> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException; - - /** - * A callback received as the component implementation's public and protected methods are evaluated - * - * @param parent the parent composite - * @param method the current public or protected method being evaluated - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - void visitMethod(CompositeComponent parent, - Method method, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException; - - /** - * A callback received as the component implementation's constructor used for instantiation by the runtime is - * evaluated. If an implementation contains more than one constructor, the constructor passed to the callback will - * be chosen according to the algorithm described in the SCA Java Client and Implementation Model Specification. - * - * @param parent the parent composite - * @param constructor the constructor used for instantiating component implementation instances - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - <T> void visitConstructor(CompositeComponent parent, - Constructor<T> constructor, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException; - - /** - * A callback received as the component implementation's public and protected fields are evaluated - * - * @param parent the parent composite - * @param field the current public or protected field being evaluated - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - void visitField(CompositeComponent parent, - Field field, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException; - - /** - * The final callback received when all other callbacks during evaluation of the component implementation have been - * issued - * - * @param parent the parent composite - * @param clazz the component implementation class - * @param type the incomplete component type associated with the implementation class - * @param context the current deployment context - * @throws ProcessingException if an error is encountered while processing metadata - */ - <T> void visitEnd(CompositeComponent parent, - Class<T> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java deleted file mode 100644 index fc1b6cd4fe..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.Collection; - -import org.osoa.sca.annotations.Destroy; -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -import org.apache.tuscany.spi.annotation.Autowire; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; - -/** - * A convenience class for annotation processors which alleviates the need to implement unused callbacks - * - * @version $Rev$ $Date$ - */ -@EagerInit -public abstract class ImplementationProcessorExtension implements ImplementationProcessor { - private IntrospectionRegistry registry; - - @Autowire - public void setRegistry(IntrospectionRegistry registry) { - this.registry = registry; - } - - @Init - public void init() { - registry.registerProcessor(this); - } - - @Destroy - public void destroy() { - registry.unregisterProcessor(this); - } - - public <T> void visitClass(CompositeComponent parent, Class<T> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException { - } - - public <T> void visitSuperClass(CompositeComponent parent, Class<T> clazz, - PojoComponentType<JavaMappedService, - JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException { - } - - public void visitMethod(CompositeComponent parent, Method method, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException { - } - - public <T> void visitConstructor(CompositeComponent parent, Constructor<T> constructor, - PojoComponentType<JavaMappedService, - JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException { - } - - public void visitField(CompositeComponent parent, Field field, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException { - } - - public <T> void visitEnd(CompositeComponent parent, Class<T> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) throws ProcessingException { - - } - - protected static Class<?> getBaseType(Class<?> cls, Type genericType) { - if (cls.isArray()) { - return cls.getComponentType(); - } else if (Collection.class.isAssignableFrom(cls)) { - if (genericType == cls) { - return Object.class; - } else { - ParameterizedType parameterizedType = (ParameterizedType)genericType; - Type baseType = parameterizedType.getActualTypeArguments()[0]; - if (baseType instanceof Class) { - return (Class<?>)baseType; - } else if (baseType instanceof ParameterizedType) { - return (Class<?>)((ParameterizedType)baseType).getRawType(); - } else { - return null; - } - } - } else { - return cls; - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java deleted file mode 100644 index d37a39011f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Member; -import java.lang.reflect.Type; -import java.util.List; - -import org.apache.tuscany.spi.idl.InvalidServiceContractException; -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * Provides utility methods for Java implementation processing - * - * @version $Rev$ $Date$ - */ -public interface ImplementationProcessorService { - - /** - * Introspects the given interface to produce a mapped service - */ - JavaMappedService createService(Class<?> interfaze) throws InvalidServiceContractException; - - JavaMappedReference createReference(String name, Member member, Class<?> paramType) throws ProcessingException; - - /** - * Processes the callback contract for a given interface type - * - * @param interfaze the interface type to examine - * @param contract the service contract the callback is associated wth - * @throws InvalidServiceContractException - * - */ - void processCallback(Class<?> interfaze, ServiceContract<?> contract) throws InvalidServiceContractException; - - /** - * Determines if all the members of a collection have unique types - * - * @param collection the collection to analyze - * @return true if the types are unique - */ - boolean areUnique(Class[] collection); - - /** - * Inserts a name at the specified position, paddiling the list if its size is less than the position - */ - void addName(List<String> names, int pos, String name); - - /** - * Processes a constructor parameter by introspecting its annotations - * - * @param param the parameter to process - * @param genericParam the generic type of the parameter - * @param paramAnnotations the parameter annotations - * @param constructorNames the array of constructorNames specified by - * @param pos the declaration position of the constructor parameter - * @param type the component type associated with implementation being reflected - * @param injectionNames the list of parameter constructorNames specified on parameter annotations - * @throws ProcessingException - */ - boolean processParam(Class<?> param, - Type genericParam, - Annotation[] paramAnnotations, - String[] constructorNames, - int pos, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - List<String> injectionNames) throws ProcessingException; - - /** - * Returns true if {@link @Autowire}, {@link @Property}, or {@link @Reference} are present in the given array - */ - boolean injectionAnnotationsPresent(Annotation[][] annots); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java deleted file mode 100644 index a6122a6ff1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IntrospectionRegistry.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.spi.implementation.java; - -/** - * A system service which tracks {@link ImplementationProcessor}s - * - * @version $Rev$ $Date$ - */ -public interface IntrospectionRegistry extends Introspector { - - /** - * Registers the given processor and makes it available during assembly evaluation (i.e. build) - */ - void registerProcessor(ImplementationProcessor processor); - - /** - * Deregisters the given processor - */ - void unregisterProcessor(ImplementationProcessor processor); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java deleted file mode 100644 index 66abc1f686..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Introspector.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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.spi.implementation.java; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; - -/** - * Implementations are responsible for walking a component implementation class, adding additional component type - * information as appropriate - * - * @version $Rev$ $Date$ - */ -public interface Introspector { - - /** - * Walks the given component implementation class - * - * @param parent the parent composite - * @param clazz the component implementation class - * @param type the component type associated with the implementation class - * @return the updated component type - * @throws ProcessingException if an error is encountered evaluating the implementation class - */ - PojoComponentType introspect(CompositeComponent parent, - Class<?> clazz, - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type, - DeploymentContext context) - throws ProcessingException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java deleted file mode 100644 index 34ac8f53f9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedComponentType.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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.spi.implementation.java; - -import org.apache.tuscany.spi.model.ComponentType; - -/** - * A specialized component type definition whose services, references and properties can be mapped to the Java - * programming model. - * - * @version $Rev$ $Date$ - */ -public class JavaMappedComponentType< - S extends JavaMappedService, - R extends JavaMappedReference, - P extends JavaMappedProperty<?> - > extends ComponentType<S, R, P> { - - private Class<?> implClass; - - public JavaMappedComponentType() { - } - - public JavaMappedComponentType(Class<?> implClass) { - this.implClass = implClass; - } - - /** - * Returns the implementation class associated with this component type. - * - * @return the implementation class associated with this component type - */ - public Class<?> getImplClass() { - return implClass; - } - - /** - * Sets the implementation class associated with this component type. - * - * @param implClass the implementation class associated with this component type - */ - public void setImplClass(Class<?> implClass) { - this.implClass = implClass; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java deleted file mode 100644 index 6d1715a035..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedProperty.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.Property; - -/** - * A Property definition that is mapped to a specific location in the implementation class. This location will typically - * be used to inject property values. - * - * @version $Rev$ $Date$ - */ -public class JavaMappedProperty<T> extends Property<T> { - private Member member; - - public JavaMappedProperty() { - } - - public JavaMappedProperty(String name, QName xmlType, Class<T> javaType) { - super(name, xmlType, javaType); - } - - public JavaMappedProperty(String name, QName xmlType, Class<T> javaType, Member member) { - super(name, xmlType, javaType); - this.member = member; - } - - /** - * Returns the Member that this property is mapped to. - * - * @return the Member that this property is mapped to - */ - public Member getMember() { - return member; - } - - /** - * Sets the Member that this property is mapped to - * - * @param member the Member that this property is mapped to - */ - public void setMember(Member member) { - this.member = member; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java deleted file mode 100644 index edcbf9a281..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; - -import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition; -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * A ReferenceDefinition definition that is mapped to a specific location in the implementation class. This location - * will typically be used to inject reference values. - * - * @version $Rev$ $Date$ - */ -public class JavaMappedReference extends ComponentTypeReferenceDefinition { - private Member member; - - public JavaMappedReference() { - } - - public JavaMappedReference(String name, ServiceContract serviceContract, Member member) { - super(name, serviceContract); - this.member = member; - } - - /** - * Returns the Member that this reference is mapped to. - * - * @return the Member that this reference is mapped to - */ - public Member getMember() { - return member; - } - - /** - * Sets the Member that this reference is mapped to - * - * @param member the Member that this reference is mapped to - */ - public void setMember(Member member) { - this.member = member; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java deleted file mode 100644 index ee5e0bb2a7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedService.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; - -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.model.ServiceDefinition; - -/** - * A ServiceDefinition definition that is mapped to a Java interface. The mapped interface is not required to be the - * same as the interface specified in the service contract. This is to allow the service contract to be specified using - * different interface definition languages or, in the case were the IDL is Java, to allow the service definition to be - * loaded from a different classloader. - * - * @version $Rev$ $Date$ - */ -public class JavaMappedService extends ServiceDefinition { - private Class<?> serviceInterface; - private Member callbackMember; - - public JavaMappedService() { - } - - public JavaMappedService(Class<?> serviceInterface) { - this.serviceInterface = serviceInterface; - } - - public JavaMappedService(String name, ServiceContract contract, boolean remotable) { - super(name, contract, remotable); - } - - public JavaMappedService(String name, - ServiceContract contract, - boolean remotable, - String callbackRefName, - Member callbackMember) { - super(name, contract, remotable, callbackRefName); - this.callbackMember = callbackMember; - } - - public JavaMappedService(String name, ServiceContract contract, Class<?> serviceInterface, boolean remotable) { - super(name, contract, remotable); - this.serviceInterface = serviceInterface; - } - - /** - * Returns the Java interface for this service. This may be different from the interface that defines the service - * contract. - * - * @return the Java interface for this service - */ - public Class<?> getServiceInterface() { - return serviceInterface; - } - - /** - * Sets the Java interface for this service. This may be different from the interface used to define the service - * contract. - * - * @param serviceInterface the Java interface for this service - */ - public void setServiceInterface(Class<?> serviceInterface) { - this.serviceInterface = serviceInterface; - } - - public Member getCallbackMember() { - return callbackMember; - } - - public void setCallbackMember(Member callbackMember) { - this.callbackMember = callbackMember; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java deleted file mode 100644 index 2c0ff57b7c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.spi.model.ComponentType; -import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition; -import org.apache.tuscany.spi.model.Property; -import org.apache.tuscany.spi.model.ServiceDefinition; - -/** - * A component type specialization for POJO implementations - * - * @version $$Rev$$ $$Date$$ - */ -public class PojoComponentType<S extends ServiceDefinition, R extends ComponentTypeReferenceDefinition, P extends Property<?>> - extends ComponentType<S, R, P> { - private boolean allowsPassByReference; - private ConstructorDefinition<?> constructorDefinition; - private Method initMethod; - private Method destroyMethod; - private final Map<String, Resource> resources = new HashMap<String, Resource>(); - private Member conversationIDMember; - private List<String> passByReferenceMethods = new ArrayList<String>(); - - /** - * Returns the constructor used to instantiate implementation instances - */ - public ConstructorDefinition<?> getConstructorDefinition() { - return constructorDefinition; - } - - /** - * Sets the constructor used to instantiate implementation instances - */ - public void setConstructorDefinition(ConstructorDefinition<?> definition) { - this.constructorDefinition = definition; - } - - /** - * Returns the component initializer method - */ - public Method getInitMethod() { - return initMethod; - } - - /** - * Sets the component initializer method - */ - public void setInitMethod(Method initMethod) { - this.initMethod = initMethod; - } - - /** - * Returns the component destructor method - */ - public Method getDestroyMethod() { - return destroyMethod; - } - - /** - * Sets the component destructor method - */ - public void setDestroyMethod(Method destroyMethod) { - this.destroyMethod = destroyMethod; - } - - public Map<String, Resource> getResources() { - return resources; - } - - public void add(Resource resource) { - resources.put(resource.getName(), resource); - } - - public boolean isAllowsPassByReference() { - return allowsPassByReference; - } - - public void setAllowsPassByReference(boolean allowsPassByReference) { - this.allowsPassByReference = allowsPassByReference; - } - - public Member getConversationIDMember() { - return this.conversationIDMember; - } - - public void setConversationIDMember(Member conversationIDMember) { - this.conversationIDMember = conversationIDMember; - } - - public List<String> getPassByReferenceMethods() { - return passByReferenceMethods; - } - - public void setPassByReferenceMethods(List<String> passByReferenceMethods) { - this.passByReferenceMethods = passByReferenceMethods; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java deleted file mode 100644 index 40fd1dfd15..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ProcessingException.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; - -import org.apache.tuscany.spi.loader.LoaderException; - -/** - * Denotes a problem processing annotations on a POJO implementation - * - * @version $Rev$ $Date$ - */ -public class ProcessingException extends LoaderException { - private Member member; - - public ProcessingException() { - } - - public ProcessingException(String message) { - super(message); - } - - public ProcessingException(String message, String identifier) { - super(message, identifier); - } - - public ProcessingException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public ProcessingException(String message, Throwable cause) { - super(message, cause); - } - - public ProcessingException(Throwable cause) { - super(cause); - } - - - public Member getMemberName() { - return member; - } - - public void setMember(Member member) { - this.member = member; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java deleted file mode 100644 index 5df4c3716d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/Resource.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.reflect.Member; - -import org.apache.tuscany.spi.ObjectFactory; - -/** - * A resource dependency declared by a Java component implementation - * - * @version $Rev$ $Date$ - */ -public class Resource { - - private String name; - private String mappedName; - private boolean optional; - private Member member; - private Class<?> type; - private ObjectFactory<?> objectFactory; - - /** - * The name of the resource - * - * @return the name of the resource - */ - public String getName() { - return name; - } - - /** - * Sets the name of the resource - * - * @param name the name of the resource - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the URI of the resource - * - * @return the URI of the resource - */ - public String getMappedName() { - return mappedName; - } - - /** - * Sets the resource URI - */ - public void setMappedName(String mappedName) { - this.mappedName = mappedName; - } - - /** - * If true, the resource is optional - * - * @return true if the resource is optional - */ - public boolean isOptional() { - return optional; - } - - /** - * Sets whether the resource is optional - */ - public void setOptional(boolean optional) { - this.optional = optional; - } - - /** - * Returns the Member that this resource is mapped to. - * - * @return the Member that this resource is mapped to - */ - public Member getMember() { - return member; - } - - /** - * Sets the Member that this resource is mapped to - * - * @param member the Member that this resource is mapped to - */ - public void setMember(Member member) { - this.member = member; - } - - /** - * Returns the resource type - * - * @return the resource type - */ - public Class<?> getType() { - return type; - } - - /** - * Sets the resource type - */ - public void setType(Class<?> type) { - this.type = type; - } - - /** - * Returns the obeject factory - * - * @return the object factory - */ - public ObjectFactory<?> getObjectFactory() { - return objectFactory; - } - - /** - * Sets the object factory - */ - public void setObjectFactory(ObjectFactory<?> objectFactory) { - this.objectFactory = objectFactory; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java deleted file mode 100644 index 8ad01d8197..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ComponentTypeLoader.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.loader; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.Implementation; - -/** - * Loader that will load the ComponentType definition for the supplied implementation. The actual mechanism used to load - * that definition is determined by the Client and Implementation Specification for the implementaion type. In some - * cases the definition may be contained in a XML file related to the implementation artifact in some well defined - * manner; other implementations may obtain this information from introspection of the artifact itself (for example, by - * examining Java annotations). - * - * @version $Rev$ $Date$ - */ -public interface ComponentTypeLoader<I extends Implementation> { - /** - * Load the component type definition for the supplied implementation. - * - * @param parent the parent composite - * @param implementation the implementation whose component type information should be loaded - * @param deploymentContext the current deployment context - * @throws LoaderException if there was a problem loading the configuration type - */ - void load(CompositeComponent parent, I implementation, DeploymentContext deploymentContext) - throws LoaderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java deleted file mode 100644 index 34212a164b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java +++ /dev/null @@ -1,81 +0,0 @@ -/*
- * 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.spi.loader;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * Denotes a duplicate reference name
- *
- * @version $Rev: 487877 $ $Date: 2006-12-17 02:02:16 +0530 (Sun, 17 Dec 2006) $
- */
-public class DuplicateReferenceNameException extends LoaderException {
- public static final String COMPOSITE = "Composite";
- public static final String COMPONENT_TYPE = "ComponentType";
- public static final String MESSAGE = "Duplicat reference name ";
-
- private static final long serialVersionUID = -9127740669182714792L;
- private String duplicateName;
- private String container;
- private String containerName;
-
- public DuplicateReferenceNameException(String dupName, String container, String containerName) {
- super(MESSAGE, (String) null);
- this.duplicateName = dupName;
- this.container = container;
- this.containerName = containerName;
- }
-
- public String getMessage() {
- return MESSAGE + duplicateName + " in " + containerName + " " + container;
- }
-
- public String getContainer() {
- return container;
- }
-
-
- public void setContainer(String container) {
- this.container = container;
- }
-
-
- public String getContainerName() {
- return containerName;
- }
-
-
- public void setContainerName(String containerName) {
- this.containerName = containerName;
- }
-
-
- public String getDuplicateName() {
- return duplicateName;
- }
-
-
- public void setDuplicateName(String duplicateName) {
- this.duplicateName = duplicateName;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java deleted file mode 100644 index caa4ffdc81..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java +++ /dev/null @@ -1,74 +0,0 @@ -/*
- * 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.spi.loader;
-
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-import org.apache.tuscany.api.TuscanyException;
-
-/**
- * Denotes imcompatible service contracts for a wire
- *
- * @version $Rev: 487877 $ $Date: 2006-12-17 02:02:16 +0530 (Sun, 17 Dec 2006) $
- */
-public class IncompatibleOverridingServiceContractException extends LoaderException {
- private static final long serialVersionUID = 5127478601823295587L;
- private final ServiceContract<?> source;
- private final ServiceContract<?> target;
- private final Operation<?> sourceOperation;
- private final Operation<?> targetOperation;
-
- public IncompatibleOverridingServiceContractException(String message, ServiceContract<?> source, ServiceContract<?> target) {
- super(message, (String) null);
- this.source = source;
- this.target = target;
- this.sourceOperation = null;
- this.targetOperation = null;
- }
-
-
- public IncompatibleOverridingServiceContractException(String message,
- ServiceContract<?> source,
- ServiceContract<?> target,
- Operation<?> sourceOperation, Operation<?> targetOperation) {
- super(message, (String) null);
- this.source = source;
- this.target = target;
- this.sourceOperation = sourceOperation;
- this.targetOperation = targetOperation;
- }
-
- public ServiceContract<?> getTarget() {
- return target;
- }
-
- public ServiceContract<?> getSource() {
- return source;
- }
-
- public Operation<?> getSourceOperation() {
- return sourceOperation;
- }
-
- public Operation<?> getTargetOperation() {
- return targetOperation;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java deleted file mode 100644 index 1c7f3e073d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidConfigurationException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Denotes an invalid configuration artifact - * - * @version $Rev$ $Date$ - */ -public class InvalidConfigurationException extends LoaderException { - - public InvalidConfigurationException(String message) { - super(message); - } - - public InvalidConfigurationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java deleted file mode 100644 index 0a83bc2815..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java +++ /dev/null @@ -1,39 +0,0 @@ -/*
- * 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.spi.loader;
-
-/**
- * Used when a reference promoted by a composite is not found in any of the components defined within
- * the composite
- */
-public class InvalidPromotedReferenceException extends LoaderException {
- private static final long serialVersionUID = -2056138384524620064L;
-
- public InvalidPromotedReferenceException(String message) {
- super(message);
- }
-
- public InvalidPromotedReferenceException(String message, String identifier) {
- super(message, identifier);
- }
-
- public InvalidPromotedReferenceException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java deleted file mode 100644 index 40ae50bfe5..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidReferenceException.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.spi.loader; - -/** - * @version $Rev$ $Date$ - */ -public class InvalidReferenceException extends LoaderException { - private static final long serialVersionUID = -4346666572527197558L; - - public InvalidReferenceException(String message) { - super(message); - } - - public InvalidReferenceException(String message, String identifier) { - super(message, identifier); - } - - public InvalidReferenceException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java deleted file mode 100644 index 1717cae0c3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidServiceException.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
- * 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.spi.loader;
-
-/**
- * @version $Rev: 430937 $ $Date: 2006-08-12 06:47:56 +0530 (Sat, 12 Aug 2006) $
- */
-public class InvalidServiceException extends LoaderException {
-
- public InvalidServiceException(String message, String identifier) {
- super(message, identifier);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java deleted file mode 100644 index b0ad8594ca..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidValueException.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Exception that indicates the loader encountered an invalid value. - * The message should be set to the invalid value. - * - * @version $Rev$ $Date$ - */ -public class InvalidValueException extends LoaderException { - - public InvalidValueException(String message) { - super(message); - } - - public InvalidValueException(String message, Throwable cause) { - super(message, cause); - } - - public InvalidValueException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java deleted file mode 100644 index b26c81168f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidWireException.java +++ /dev/null @@ -1,45 +0,0 @@ -/*
- * 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.spi.loader;
-
-/**
- * @version $Rev: 430937 $ $Date: 2006-08-12 06:47:56 +0530 (Sat, 12 Aug 2006) $
- */
-public class InvalidWireException extends LoaderException {
-
- public InvalidWireException() {
- }
-
- public InvalidWireException(String message) {
- super(message);
- }
-
-
- public InvalidWireException(String message, String identifier) {
- super(message, identifier);
- }
-
- public InvalidWireException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public InvalidWireException(Throwable cause) {
- super(cause);
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java deleted file mode 100644 index e890d470a3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/Loader.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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.spi.loader; - -import java.net.URL; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.Implementation; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * System service for loading physical artifacts that represent SCDL configurations and creating the model objects that - * represent them. - * - * @version $Rev$ $Date$ - */ -public interface Loader { - /** - * Parse the supplied XML stream, dispatching to the appropriate registered loader for each element encountered in - * the stream. - * <p/> - * This method must be called with the XML cursor positioned on a START_ELEMENT event. When this method returns, the - * stream will be positioned on the corresponding END_ELEMENT event. - * - * @param parent the composite in which the model object is contained - * @param object the model object to load configuration data into. If null, the loader dispatched to is - * responsible for creating a model object itself - * @param reader the XML stream to parse - * @param deploymentContext the current deployment context - * @return the model object obtained by parsing the current element on the stream - * @throws XMLStreamException if there was a problem reading the stream - */ - ModelObject load(CompositeComponent parent, - ModelObject object, - XMLStreamReader reader, - DeploymentContext deploymentContext) - throws XMLStreamException, LoaderException; - - /** - * Load a model object from a specified location. - * - * @param parent the composite in which the model object is contained - * @param object the model object to load configuration data into. If null, the loader dispatched to is - * responsible for creating a model object itself - * @param url the location of an XML document to be loaded - * @param type the type of ModelObject that is expected to be in the document - * @param deploymentContext the current deployment context - * @return the model ojbect loaded from the document - * @throws LoaderException if there was a problem loading the document - */ - <MO extends ModelObject> MO load(CompositeComponent parent, - ModelObject object, - URL url, - Class<MO> type, - DeploymentContext deploymentContext) - throws LoaderException; - - /** - * Load the component type definition for a given implementation. How the component type information is located is - * defined by the implementation specification. It may include loading from an XML sidefile, introspection of some - * artifact related to the implementation, some combination of those techniques or any other implementation-defined - * mechanism. - * - * @param parent the parent composite - * @param implementation the implementation whose component type should be loaded - * @param deploymentContext the current deployment context - * @throws LoaderException if there was a problem loading the component type definition - */ - <I extends Implementation<?>> void loadComponentType(CompositeComponent parent, - I implementation, - DeploymentContext deploymentContext) - throws LoaderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java deleted file mode 100644 index defc6b06c9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderException.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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.spi.loader; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Base class for Exceptions raised during the loading process. Loader implementations should throw a subclass of this - * to indicate the actual problem. - * - * @version $Rev$ $Date$ - */ -public class LoaderException extends TuscanyException { - public static final int UNDEFINED = -1; - private static final long serialVersionUID = -7459051598906813461L; - private String resourceURI; - private int line = UNDEFINED; - private int column = UNDEFINED; - - public LoaderException() { - } - - public LoaderException(String message) { - super(message); - } - - public LoaderException(String message, String identifier) { - super(message, identifier); - } - - public LoaderException(String message, Throwable cause) { - super(message, cause); - } - - public LoaderException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public LoaderException(Throwable cause) { - super(cause); - } - - /** - * Returns the location of the resource that was being loaded. - * - * @return the location of the resource that was being loaded - */ - public String getResourceURI() { - return resourceURI; - } - - /** - * Sets the location of the resource that was being loaded. - * - * @param resourceURI the location of the resource that was being loaded - */ - public void setResourceURI(String resourceURI) { - this.resourceURI = resourceURI; - } - - public int getLine() { - return line; - } - - public void setLine(int line) { - this.line = line; - } - - public int getColumn() { - return column; - } - - public void setColumn(int column) { - this.column = column; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java deleted file mode 100644 index ea88b99b22..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderRegistry.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.spi.loader; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.Implementation; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Registry for XML loaders that can parse a StAX input stream and return model objects. - * <p/> - * Loaders will typically be contributed to the system by any extension that needs to handle extension specific - * information contained in some XML configuration file. The loader can be contributed as a system component with an - * autowire reference to this builderRegistry which is used during initialization to actually register. </p> This - * builderRegistry can also be used to parse an input stream, dispatching to the appropriate loader for each element - * accepted. Loaders can call back to the builderRegistry to load sub-elements that they are not able to handle - * directly. - * - * @version $Rev$ $Date$ - */ -public interface LoaderRegistry extends Loader { - /** - * Register a loader. This operation will typically be called by a loader during its initialization. - * - * @param element the element that should be delegated to the contibuted loader - * @param loader a loader that is being contributed to the system - */ - <T extends ModelObject> void registerLoader(QName element, StAXElementLoader<T> loader); - - /** - * Unregister a loader. This will typically be called by a loader as it is being destroyed. - * - * @param element the element that was being delegated to the contibuted loader - * @param loader a loader that should no longer be used - */ - <T extends ModelObject> void unregisterLoader(QName element, StAXElementLoader<T> loader); - - /** - * Regsiter a component type loader. - * - * @param key a type of implementation this loader can load component types for - * @param loader the loader that is being contributed to the system - */ - <I extends Implementation<?>> void registerLoader(Class<I> key, ComponentTypeLoader<I> loader); - - /** - * Unregister a component type loader form the system. - * - * @param key a type of implementation whose loader should be unregistered - */ - <I extends Implementation<?>> void unregisterLoader(Class<I> key); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java deleted file mode 100644 index bf48f91a74..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/LoaderUtil.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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.spi.loader; - -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamConstants; - -/** - * Utility functions to support loader implementations. - * - * @version $Rev$ $Date$ - */ -public final class LoaderUtil { - private LoaderUtil() { - } - - /** - * Advance the stream to the next END_ELEMENT event skipping any nested content. - * - * @param reader the reader to advance - * @throws XMLStreamException if there was a problem reading the stream - */ - public static void skipToEndElement(XMLStreamReader reader) throws XMLStreamException { - int depth = 0; - while (true) { - int event = reader.next(); - if (event == XMLStreamConstants.START_ELEMENT) { - depth++; - } else if (event == XMLStreamConstants.END_ELEMENT) { - if (depth == 0) { - return; - } - depth--; - } - } - } - - /** - * Load the class using the supplied ClassLoader. - * The class will be defined so any initializers present will be fired. - * As the class is being loaded, the Thread context ClassLoader will be - * set to the supplied classloader. - * - * @param name the name of the class to load - * @param cl the classloader to use to load it - * @return the class - * @throws MissingResourceException if the class could not be found - */ - public static Class<?> loadClass(String name, ClassLoader cl) throws MissingResourceException { - final Thread thread = Thread.currentThread(); - final ClassLoader oldCL = thread.getContextClassLoader(); - try { - thread.setContextClassLoader(cl); - return Class.forName(name, true, cl); - } catch (ClassNotFoundException e) { - throw new MissingResourceException(name, e); - } finally { - thread.setContextClassLoader(oldCL); - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java deleted file mode 100644 index 89a44083cc..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingImplementationException.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Exception that indicates that an implementation was not provided. - * - * @version $Rev$ $Date$ - */ -public class MissingImplementationException extends LoaderException { - private static final long serialVersionUID = -2917278473974880124L; - - /** - * Default constructor. - */ - public MissingImplementationException() { - super(); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java deleted file mode 100644 index 10e40f9288..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Exception that indicates that an include was not provided. - * - * @version $Rev$ $Date$ - */ -public class MissingIncludeException extends LoaderException { - private static final long serialVersionUID = -2917278473974880124L; - - public MissingIncludeException(String message, String identifier) { - super(message, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java deleted file mode 100644 index 78856784e5..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingMustOverridePropertyException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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.spi.loader; - -/** - * @version $Rev$ $Date$ - */ -public class MissingMustOverridePropertyException extends LoaderException { - - public MissingMustOverridePropertyException(String name) { - super(name); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingPropertyValueException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingPropertyValueException.java deleted file mode 100644 index c84169148d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingPropertyValueException.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
- * 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.spi.loader;
-
-/**
- * @version $Rev: 486986 $ $Date: 2006-12-14 11:48:28 +0530 (Thu, 14 Dec 2006) $
- */
-public class MissingPropertyValueException extends LoaderException {
-
- public MissingPropertyValueException(String name) {
- super(name);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java deleted file mode 100644 index 7bc206de34..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingReferenceException.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Indicates a required reference was not configured - * - * @version $Rev$ $Date$ - */ -public class MissingReferenceException extends LoaderException { - - public MissingReferenceException(String message) { - super(message); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java deleted file mode 100644 index 3b6a21aa74..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingResourceException.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Exception that indicates an expected resource could not be found. The message should be set to the name of the - * resource. - * - * @version $Rev$ $Date$ - */ -public class MissingResourceException extends LoaderException { - private static final long serialVersionUID = 3775013318397916445L; - - /** - * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the - * message. - * - * @param resource the resource that could not be found - */ - public MissingResourceException(String resource) { - super("Missing resource", resource); - } - - public MissingResourceException(String message, String identifier) { - super(message, identifier); - } - - /** - * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the - * message. - * - * @param resource the resource that could not be found - * @param cause the error thrown resolving the resource - */ - public MissingResourceException(String resource, Throwable cause) { - super("Missing resource", resource, cause); - } - - - /** - * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the - * message. - * - * @param message the message set on the exception - * @param identifier the resource that could not be found - * @param cause the error thrown resolving the resource - */ - public MissingResourceException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingSideFileException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingSideFileException.java deleted file mode 100644 index 67bcc6d7a0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingSideFileException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.loader; - - -/** - * @version $Rev$ $Date$ - */ -public class MissingSideFileException extends LoaderException { - - public MissingSideFileException(String message, String identifier) { - super(message, identifier); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java deleted file mode 100644 index 4672f22a6a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/NotOverridablePropertyException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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.spi.loader; - -/** - * @version $Rev$ $Date$ - */ -public class NotOverridablePropertyException extends LoaderException { - private static final long serialVersionUID = 1483304023970967982L; - - public NotOverridablePropertyException(String name) { - super(name); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java deleted file mode 100644 index 3fbeb6064f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/PropertyObjectFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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.spi.loader; - -import java.util.List; - -import org.apache.tuscany.spi.ObjectFactory; -import org.apache.tuscany.spi.model.Property; -import org.apache.tuscany.spi.model.PropertyValue; - -/** - * A factory that will create an ObjectFactory for a property - * - * @version $Rev$ $Date$ - */ -public interface PropertyObjectFactory { - /** - * Return an ObjectFactory for instances of a property defined in an XML. The ObjectFactory must return instances - * that can safely be supplied to component implementations. If the instance is mutable and isolation between - * components is required, then the factory must clone or otherwise protect the implementation from unexpected - * modifications by other implementation instances. - * - * @param property the Property definition that the resulting ObjectFactory must be able to assign to - * @param propertyValue The component configuration of the property - * @return an ObjectFactory that can produce instances that can be assigned to the supplied Property - * @throws LoaderException if there is a problem creating the ObjectFactory - */ - <T> ObjectFactory<T> createObjectFactory(Property<T> property, PropertyValue<T> propertyValue) - throws LoaderException; - - <T> ObjectFactory<List<T>> createListObjectFactory(Property<T> property, PropertyValue<T> propertyValue) - throws LoaderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java deleted file mode 100644 index 37a4b594c4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- * 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.spi.loader;
-
-import org.apache.tuscany.spi.model.Multiplicity;
-
-/**
- * Denote the violation in overriding of multiplicity declaration for a reference either when a
- * Component is overriding what is original in the underlying ComponentType or when a Composite is
- * overriding while promoting a Component reference definition.
- *
- * @version $Rev $Date
- */
-public class ReferenceMultiplicityOverridingException extends LoaderException {
- private static final long serialVersionUID = -5827228144446207988L;
- private final Multiplicity originalMultiplicity;
- private final Multiplicity overridenMultiplicity;
-
- /**
- * @param message
- * @param identifier
- * @param multiplicity
- * @param numberOfTargets
- */
- public ReferenceMultiplicityOverridingException(String message,
- String identifier,
- Multiplicity original,
- Multiplicity overriden) {
- super(message, identifier);
- this.originalMultiplicity = original;
- this.overridenMultiplicity = overriden;
- }
-
- /**
- * @param identifier
- * @param multiplicity
- * @param numberOfTargets
- */
- public ReferenceMultiplicityOverridingException(String identifier, Multiplicity original, Multiplicity overriden) {
- this("Multiplicity Overriding is violated", identifier, original, overriden);
- }
-
-
- /**
- * Get the original multiplicity for the reference definition
- *
- * @return multiplicity of the reference definition
- */
- public Multiplicity getoriginalMultiplicity() {
- return originalMultiplicity;
- }
-
- /**
- * Get the overriden multiplicity for the reference definition
- *
- * @return multiplicity of the reference definition
- */
- public Multiplicity getOverridenMultiplicity() {
- return overridenMultiplicity;
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityViolationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityViolationException.java deleted file mode 100644 index ce9acb8750..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityViolationException.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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.spi.loader; - -import org.apache.tuscany.spi.model.Multiplicity; - -/** - * Denote the violation of multiplicity declaration for a reference - * - * @version $Rev $Date - */ -public class ReferenceMultiplicityViolationException extends LoaderException { - private static final long serialVersionUID = -4049116356211578827L; - - private final Multiplicity multiplicity; - private final int numberOfTargets; - - /** - * @param message - * @param identifier - * @param multiplicity - * @param numberOfTargets - */ - public ReferenceMultiplicityViolationException(String message, - String identifier, - Multiplicity multiplicity, - int numberOfTargets) { - super(message, identifier); - this.multiplicity = multiplicity; - this.numberOfTargets = numberOfTargets; - } - - /** - * @param identifier - * @param multiplicity - * @param numberOfTargets - */ - public ReferenceMultiplicityViolationException(String identifier, Multiplicity multiplicity, int numberOfTargets) { - this("Multiplicity is violated", identifier, multiplicity, numberOfTargets); - } - - /** - * Get the multiplicity for the reference definition - * - * @return multiplicity of the reference definition - */ - public Multiplicity getMultiplicity() { - return multiplicity; - } - - /** - * Get the number of targets defined for this reference - * @return number of targets for this reference - */ - public int getNumberOfTargets() { - return numberOfTargets; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java deleted file mode 100644 index 401e34cb71..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/StAXElementLoader.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.loader; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.model.ModelObject; - -/** - * A loader that creates a model object from a StAX input stream. - * - * @version $Rev$ $Date$ - */ -public interface StAXElementLoader<T extends ModelObject> { - /** - * Create the model object for an element in an XML stream. When this method returns the stream will be positioned - * on the corresponding END_ELEMENT. - * - * @param parent the composite the model object being loaded is contained within - * @param object the model object to load configuration data into. An implementation may choose to return - * a different model object than the one passed in, in which case it is responsible for - * copying data. If null, the loader is responsible for creating a model object itself - * @param reader the XML stream reader positioned on the applicable START_ELEMENT - * @param deploymentContext the context for the load operation - * @return the model object for that element - */ - T load(CompositeComponent parent, ModelObject object, XMLStreamReader reader, DeploymentContext deploymentContext) - throws XMLStreamException, LoaderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java deleted file mode 100644 index bf3aa205d2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedPropertyException.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.spi.loader; - -/** - * @version $Rev$ $Date$ - */ -public class UndefinedPropertyException extends LoaderException { - public UndefinedPropertyException(String name) { - super("Property not found on implementation", name); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java deleted file mode 100644 index f9aa8812ac..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UndefinedReferenceException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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.spi.loader; - -/** - * @version $Rev$ $Date$ - */ -public class UndefinedReferenceException extends LoaderException { - private static final long serialVersionUID = -2897448857974015706L; - - public UndefinedReferenceException(String name) { - super("Reference not found on implementation", name); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java deleted file mode 100644 index 750762d839..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedComponentTypeException.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.spi.loader; - -/** - * Exception that indicates an component type was encountered that could not be handled. - * - * @version $Rev$ $Date$ - */ -public class UnrecognizedComponentTypeException extends LoaderException { - private final Class<?> type; - - /** - * Constructor that indicates which component type loader could not be found. - * - * @param type the component type type that could not be handled - */ - public UnrecognizedComponentTypeException(Class<?> type) { - super("Unrecognized element", type.getName()); - this.type = type; - } - - public Class<?> getType() { - return type; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java deleted file mode 100644 index 7991105da8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.loader; - -import javax.xml.namespace.QName; - -/** - * Exception that indicates an element was encountered that could not be handled. - * - * @version $Rev$ $Date$ - */ -public class UnrecognizedElementException extends LoaderException { - private static final long serialVersionUID = 2549543622209829032L; - private final QName element; - - /** - * Constructor that indicates which resource could not be found. The supplied parameter is also returned as the - * message. - * - * @param element the element that could not be handled - */ - public UnrecognizedElementException(QName element) { - super("Unrecognized element", element.toString()); - this.element = element; - } - - public QName getElement() { - return element; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java deleted file mode 100644 index 5693ee08e1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.marshaller; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Super class for all marshalling/unmarshalling exceptions. - * - * @version $Rev$ $Date$ - * - */ -@SuppressWarnings("serial") -public class MarshalException extends TuscanyException { - - /** - * Initializes the exception message. - * @param message Message for the exception. - */ - public MarshalException(String message) { - super(message); - } - - /** - * Initializes the root cause. - * @param cause Root cause for the exception. - */ - public MarshalException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java deleted file mode 100644 index da1ec90c8b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.spi.marshaller; - -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Interface for marshalling/unmarshalling internal model objects. - * - * @version $Rev$ $Date$ - * - */ -public interface ModelMarshaller<MD extends ModelObject> { - - /** - * Marshalls the model object to the specified stream writer. - * - * @param modelObject Model object to be serialized. - * @param writer Stream writer to which the infoset is serialized. - * @throws MarshalException In case of any marshalling error. - */ - void marshall(MD modelObject, XMLStreamWriter writer) throws MarshalException; - - /** - * Unmarshalls an XML stream to a model object. - * - * @param reader XML stream from where the marshalled XML is read. - * @param upconvert Whether to upconvert the object is the current runtime - * supports a higher version of the model object. - * @return Hydrated model object. - * @throws MarshalException In case of any unmarshalling error. - */ - MD unmarshall(XMLStreamReader reader, boolean upconvert) throws MarshalException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java deleted file mode 100644 index 3e38abf103..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.xml.namespace.QName; - -/** - * Represents a component reference - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractReferenceDefinition extends ModelObject { - private String name; - private ServiceContract serviceContract; - private Multiplicity multiplicity; - private boolean autowire; - private List<BindingDefinition> bindings; - private List<URI> targets = new ArrayList<URI>(); - private boolean wiredByImpl; - private List requiredIntents = new ArrayList<QName>(); - private List policySets = new ArrayList<QName>(); - - public AbstractReferenceDefinition() { - autowire = false; - multiplicity = Multiplicity.ONE_ONE; - bindings = new ArrayList<BindingDefinition>(); - } - - public AbstractReferenceDefinition(String name, ServiceContract serviceContract) { - this.name = name; - this.serviceContract = serviceContract; - bindings = new ArrayList<BindingDefinition>(); - autowire = false; - multiplicity = Multiplicity.ONE_ONE; - } - - public AbstractReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity) { - this.name = name; - this.serviceContract = serviceContract; - this.multiplicity = multiplicity; - bindings = new ArrayList<BindingDefinition>(); - autowire = false; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public ServiceContract<?> getServiceContract() { - return serviceContract; - } - - public void setServiceContract(ServiceContract serviceContract) { - this.serviceContract = serviceContract; - } - - public Multiplicity getMultiplicity() { - return multiplicity; - } - - public void setMultiplicity(Multiplicity multiplicity) { - this.multiplicity = multiplicity; - } - - public boolean isAutowire() { - return autowire; - } - - public void setAutowire(boolean autowire) { - this.autowire = autowire; - } - - public List<BindingDefinition> getBindings() { - return Collections.unmodifiableList(bindings); - } - - public void addBinding(BindingDefinition binding) { - this.bindings.add(binding); - } - - public List<URI> getTargets() { - return Collections.unmodifiableList(targets); - } - - public void addTarget(URI targetURI) { - this.targets.add(targetURI); - } - - public boolean isWiredByImpl() { - return wiredByImpl; - } - - public void setWiredByImpl(boolean wiredByImpl) { - this.wiredByImpl = wiredByImpl; - } - - public List getPolicySets() { - return policySets; - } - - public void setPolicySets(List policySets) { - this.policySets = policySets; - } - - public List getRequiredIntents() { - return requiredIntents; - } - - public void setRequiredIntents(List requiredIntents) { - this.requiredIntents = requiredIntents; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java deleted file mode 100644 index 8e12e970ae..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AtomicImplementation.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.model; - -/** - * The base representation of an atomic component implementation - * - * @version $Rev$ $Date$ - */ -public abstract class AtomicImplementation<T extends ComponentType> extends Implementation<T> { - protected AtomicImplementation() { - } - - protected AtomicImplementation(T componentType) { - super(componentType); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java deleted file mode 100644 index 85af2a7985..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; - -/** - * The base representation of a binding specified in an assembly - * - * @version $Rev$ $Date$ - */ -public abstract class BindingDefinition extends ModelObject implements Cloneable { - private URI targetUri; - - protected BindingDefinition() { - } - - public BindingDefinition(URI targetUri) { - this.targetUri = targetUri; - } - - public URI getTargetUri() { - return targetUri; - } - - public void setTargetUri(URI targetUri) { - this.targetUri = targetUri; - } - - abstract public Object clone(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java deleted file mode 100644 index f9ef20add9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * 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.spi.model; - -import java.util.HashMap; -import java.util.Map; - -/** - * Represents a component. - * <p>A component is a configured instance of an implementation. The services provided and consumed - * and the available configuration properties are defined by the implementation (represented by - * its componentType).</p> - * <p>Every component has a name which uniquely identifies it within the scope of the composite - * that contains it; the name must be different from the names of all other components, services and references - * immediately contained in the composite (directly or through an <include> element).</p> - * <p>A component may define a {@link PropertyValue} that overrides the default value of a {@link Property} - * defined in the componentType.</p> - * <p>It may also define a {@link ReferenceTarget} for a {@link AbstractReferenceDefinition} defined in the componentType. - * The ReferenceTarget must resolve to another component or a reference in the enclosing composite.</p> - * <p>Components may specify an initialization level that will determine the order in which it will be eagerly - * initialized relative to other components from the enclosing composite that are in the same scope. This can be - * used to define a startup sequence for components that are otherwise independent. Any initialization required - * to resolve references between components will override this initialization order.</p> - * - * @version $Rev$ $Date$ - */ -public class ComponentDefinition<I extends Implementation<?>> extends ModelObject { - private String name; - private Integer initLevel; - private final I implementation; - private final Map<String, ComponentReferenceDefinition> references = new HashMap<String, ComponentReferenceDefinition>(); - private final Map<String, PropertyValue<?>> propertyValues = new HashMap<String, PropertyValue<?>>(); - private boolean autowire; - - /** - * Constructor specifying the component's name and implementation. - * - * @param name the name of this component - * @param implementation the implementation of this component - */ - public ComponentDefinition(String name, I implementation) { - this.name = name; - this.implementation = implementation; - } - - /** - * Constructor specifying the implementation of this component. - * - * @param implementation the implementation of this component - */ - public ComponentDefinition(I implementation) { - this.implementation = implementation; - } - - /** - * Returns the {@link Implementation} of this component. - * - * @return the implementation of this component - */ - public I getImplementation() { - return implementation; - } - - /** - * Returns the name of this component. - * - * @return the name of this component - */ - public String getName() { - return name; - } - - /** - * Sets the name of this component. - * - * @param name the name of this component - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the initialization level of this component. - * - * @return the initialization level of this component - */ - public Integer getInitLevel() { - return initLevel; - } - - /** - * Sets the initialization level of this component. - * If set to null then the level from the componentType is used. - * If set to zero or a negative value then the component will not be eagerly initialized. - * - * @param initLevel the initialization level of this component - */ - public void setInitLevel(Integer initLevel) { - this.initLevel = initLevel; - } - - /** - * Returns a live Map of {@link PropertyValue property values} configured by this component definition. - * - * @return the property values configured by this component - */ - public Map<String, PropertyValue<?>> getPropertyValues() { - return propertyValues; - } - - /** - * Add a property value configuration to this component. - * Any existing configuration for the property names in the property value is replaced. - * - * @param value the property value to add - */ - public void add(PropertyValue<?> value) { - propertyValues.put(value.getName(), value); - } - - public boolean isAutowire() { - return autowire; - } - - public void setAutowire(boolean autowire) { - this.autowire = autowire; - } - - public Map<String, ComponentReferenceDefinition> getReferences() { - return references; - } - - public void add(ComponentReferenceDefinition ref) { - references.put(ref.getName(), ref); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java deleted file mode 100644 index 0f8e162c62..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java +++ /dev/null @@ -1,95 +0,0 @@ -/*
- * 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.spi.model;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * Represents reference defintion that is part of a Component definition
- *
- */
-public class ComponentReferenceDefinition extends AbstractReferenceDefinition {
- private ComponentTypeReferenceDefinition associatedCompTypeRefDefn;
-
- public ComponentReferenceDefinition(ComponentTypeReferenceDefinition ctRefDefn) {
- super();
- setMultiplicity(null);
- this.associatedCompTypeRefDefn = ctRefDefn;
- }
-
- public ComponentReferenceDefinition(String name, ServiceContract serviceContract, ComponentTypeReferenceDefinition ctRefDefn) {
- super(name, serviceContract, null);
- this.associatedCompTypeRefDefn = ctRefDefn;
- }
-
- public ComponentReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity, ComponentTypeReferenceDefinition ctRefDefn) {
- super(name, serviceContract, multiplicity);
- this.associatedCompTypeRefDefn = ctRefDefn;
- }
-
- @Override
- public String getName() {
- return associatedCompTypeRefDefn.getName();
- }
-
- public ComponentTypeReferenceDefinition getAssociatedCompTypeRefDefn() {
- return associatedCompTypeRefDefn;
- }
-
- public void setAssociatedCompTypeRefDefn(ComponentTypeReferenceDefinition associatedCompTypeRefDefn) {
- this.associatedCompTypeRefDefn = associatedCompTypeRefDefn;
- }
-
- @Override
- public Multiplicity getMultiplicity() {
- if (super.getMultiplicity() != null) {
- return super.getMultiplicity();
- } else {
- return associatedCompTypeRefDefn.getMultiplicity();
- }
- }
-
- @Override
- public List<URI> getTargets() {
- if (super.getTargets() == null || super.getTargets().isEmpty()) {
- return associatedCompTypeRefDefn.getTargets();
- } else {
- return super.getTargets();
- }
- }
-
- @Override
- public ServiceContract<?> getServiceContract() {
- if (super.getServiceContract() == null) {
- return associatedCompTypeRefDefn.getServiceContract();
- } else {
- return super.getServiceContract();
- }
- }
-
- @Override
- public List<BindingDefinition> getBindings() {
- if (super.getBindings() == null || super.getBindings().size() == 0) {
- return associatedCompTypeRefDefn.getBindings();
- } else {
- return super.getBindings();
- }
- }
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java deleted file mode 100644 index af3fcc6f48..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * 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.spi.model; - -import java.util.HashMap; -import java.util.Map; - -/** - * <p>The definition of the configurable aspects of an implementation in terms of the services it exposes, the services - * it references, and properties that can be used to configure it.</p> <p>A service represents an addressable interface - * provided by the implementation. Such a service may be the target of a wire from another component.</p> <p>A reference - * represents a requirement that an implementation has on a service provided by another component or by a resource - * outside the SCA system. Such a reference may be the source of a wire to another component.</p> <p>A property allows - * the behaviour of the implementation to be configured through externally set values.</p> <p>A component type may also - * declare that it wishes to be initialized upon activation of the scope that contains it and may specify an order - * relative to other eagerly initializing components. For example, an implementation that pre-loads some form of cache - * could declare that it should be eagerly initialized at the start of the scope so that the cache load occured on - * startup rather than first use.</p> - * - * @version $Rev$ $Date$ - */ -public class ComponentType<S extends ServiceDefinition, R extends ComponentTypeReferenceDefinition, P extends Property<?>> - extends ModelObject { - protected Scope implementationScope = Scope.UNDEFINED; - private int initLevel; - private long maxAge = -1; - private long maxIdleTime = -1; - private final Map<String, S> services = new HashMap<String, S>(); - private final Map<String, R> references = new HashMap<String, R>(); - private final Map<String, P> properties = new HashMap<String, P>(); - - /** - * Returns the component implementation scope - */ - public Scope getImplementationScope() { - return implementationScope; - } - - /** - * Sets the component implementation scope - */ - public void setImplementationScope(Scope implementationScope) { - this.implementationScope = implementationScope; - } - - /** - * Returns the default initialization level for components of this type. A value greater than zero indicates that - * components should be eagerly initialized. - * - * @return the default initialization level - */ - public int getInitLevel() { - return initLevel; - } - - /** - * Sets the default initialization level for components of this type. A value greater than zero indicates that - * components should be eagerly initialized. - * - * @param initLevel default initialization level for components of this type - */ - public void setInitLevel(int initLevel) { - this.initLevel = initLevel; - } - - /** - * Returns true if this component should be eagerly initialized. - * - * @return true if this component should be eagerly initialized - */ - public boolean isEagerInit() { - return initLevel > 0; - } - - /** - * Returns the idle time allowed between operations in milliseconds if the implementation is conversational - * - * @return the idle time allowed between operations in milliseconds if the implementation is conversational - */ - public long getMaxIdleTime() { - return maxIdleTime; - } - - /** - * Sets the idle time allowed between operations in milliseconds if the implementation is conversational - */ - public void setMaxIdleTime(long maxIdleTime) { - this.maxIdleTime = maxIdleTime; - } - - /** - * Returns the maximum age a conversation may remain active in milliseconds if the implementation is conversational - * - * @return the maximum age a conversation may remain active in milliseconds if the implementation is conversational - */ - public long getMaxAge() { - return maxAge; - } - - /** - * Sets the maximum age a conversation may remain active in milliseconds if the implementation is conversational - */ - public void setMaxAge(long maxAge) { - this.maxAge = maxAge; - } - - /** - * Returns a live Map of the services provided by the implementation. - * - * @return a live Map of the services provided by the implementation - */ - public Map<String, S> getServices() { - return services; - } - - /** - * Add a service to those provided by the implementation. Any existing service with the same name is replaced. - * - * @param service a service provided by the implementation - */ - public void add(S service) { - services.put(service.getName(), service); - } - - /** - * Returns a live Map of references to services consumed by the implementation. - * - * @return a live Map of references to services consumed by the implementation - */ - public Map<String, R> getReferences() { - return references; - } - - /** - * Add a reference to a service consumed by the implementation. Any existing reference with the same name is - * replaced. - * - * @param reference a reference to a service consumed by the implementation - */ - public void add(R reference) { - references.put(reference.getName(), reference); - } - - /** - * Returns a live Map of properties that can be used to configure the implementation. - * - * @return a live Map of properties that can be used to configure the implementation - */ - public Map<String, P> getProperties() { - return properties; - } - - /** - * Add a property that can be used to configure the implementation. Any existing property with the same name is - * replaced. - * - * @param property a property that can be used to configure the implementation - */ - public void add(P property) { - properties.put(property.getName(), property); - } - - /** - * Get a specific property that can be used to configure the implementation. - * - * @param name the name of the property - * @return the property that can be used to configure the implementation or null if no such property exists - */ - public Property getProperty(String name) { - return properties.get(name); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentTypeReferenceDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentTypeReferenceDefinition.java deleted file mode 100644 index 688d09b7df..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentTypeReferenceDefinition.java +++ /dev/null @@ -1,40 +0,0 @@ -/*
- * 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.spi.model;
-
-
-
-/**
- * Represents reference defintion that is part of a ComponentType definition
- *
- */
-public class ComponentTypeReferenceDefinition extends AbstractReferenceDefinition {
- public ComponentTypeReferenceDefinition() {
- super();
- }
-
- public ComponentTypeReferenceDefinition(String name, ServiceContract serviceContract) {
- super(name, serviceContract);
- }
-
- public ComponentTypeReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity) {
- super(name, serviceContract, multiplicity);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java deleted file mode 100644 index d9355d89c4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * A specialization of component type for composite components. - * - * @version $Rev$ $Date$ - */ -public class CompositeComponentType<S extends ServiceDefinition, - R extends CompositeReferenceDefinition, - P extends Property<?>> extends ComponentType<S, R, P> { - - private String name; - private final Map<String, ComponentDefinition<? extends Implementation<?>>> components = - new HashMap<String, ComponentDefinition<? extends Implementation<?>>>(); - private final Map<String, Include> includes = new HashMap<String, Include>(); - private final List<WireDefinition> wires = new ArrayList<WireDefinition>(); - private boolean autowire; - - public CompositeComponentType() { - implementationScope = Scope.SYSTEM; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - @SuppressWarnings("unchecked") - /** - * Get all properties including the ones are from included composites - * @return - */ - public Map<String, P> getProperties() { - Map<String, P> view = new HashMap<String, P>(super.getProperties()); - for (Include i : includes.values()) { - view.putAll(i.getIncluded().getProperties()); - } - return Collections.unmodifiableMap(view); - } - - @Override - @SuppressWarnings("unchecked") - /** - * Get all references including the ones are from included composites - * @return - */ - public Map<String, R> getReferences() { - Map<String, R> view = new HashMap<String, R>(super.getReferences()); - for (Include i : includes.values()) { - view.putAll(i.getIncluded().getReferences()); - } - return Collections.unmodifiableMap(view); - } - - @SuppressWarnings("unchecked") - @Override - /** - * Get all services including the ones are from included composites - * @return - */ - public Map<String, S> getServices() { - Map<String, S> view = new HashMap<String, S>(super.getServices()); - for (Include i : includes.values()) { - view.putAll(i.getIncluded().getServices()); - } - return Collections.unmodifiableMap(view); - } - - /** - * Get all components including the ones are from included composites - */ - @SuppressWarnings("unchecked") - public Map<String, ComponentDefinition<? extends Implementation<?>>> getComponents() { - Map<String, ComponentDefinition<? extends Implementation<?>>> view = - new HashMap<String, ComponentDefinition<? extends Implementation<?>>>(components); - for (Include i : includes.values()) { - view.putAll(i.getIncluded().getComponents()); - } - return Collections.unmodifiableMap(view); - } - - - /** - * Get all wires including the ones are from included composites - */ - @SuppressWarnings("unchecked") - public List<WireDefinition> getWires() { - List<WireDefinition> view = - new ArrayList<WireDefinition>(wires); - for (Include i : includes.values()) { - view.addAll(i.getIncluded().getWires()); - } - return Collections.unmodifiableList(view); - } - - /** - * Get declared properties in this composite type, included doesn't count - */ - public Map<String, P> getDeclaredProperties() { - return super.getProperties(); - } - - /** - * Get declared references in this composite type, included doesn't count - */ - public Map<String, R> getDeclaredReferences() { - return super.getReferences(); - } - - /** - * Get declared services in this composite type, included doesn't count - */ - public Map<String, S> getDeclaredServices() { - return super.getServices(); - } - - /** - * Get declared components in this composite type, included doesn't count - */ - public Map<String, ComponentDefinition<? extends Implementation<?>>> getDeclaredComponents() { - return components; - } - - /** - * Get declared wires in this composite type, included doesn't count - */ - public List<WireDefinition> getDeclaredWires() { - return wires; - } - - public void add(WireDefinition wireDefn) { - wires.add(wireDefn); - } - - - public void add(ComponentDefinition<? extends Implementation<?>> componentDefinition) { - components.put(componentDefinition.getName(), componentDefinition); - } - - public Map<String, Include> getIncludes() { - return includes; - } - - public void add(Include include) { - includes.put(include.getName(), include); - } - - public Map<Object, Object> getDeclaredExtensions() { - return super.getExtensions(); - } - - @SuppressWarnings("unchecked") - @Override - public Map<Object, Object> getExtensions() { - Map<Object, Object> view = new HashMap<Object, Object>(super.getExtensions()); - for (Include i : includes.values()) { - view.putAll(i.getIncluded().getExtensions()); - } - return Collections.unmodifiableMap(view); - } - - public boolean isAutowire() { - return autowire; - } - - public void setAutowire(boolean autowire) { - this.autowire = autowire; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java deleted file mode 100644 index 6948c52286..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeImplementation.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URL; - -/** - * A specialization of an implementation associated with composite components - * - * @version $Rev$ $Date$ - */ -public class CompositeImplementation extends Implementation<CompositeComponentType> { - private String name; - private URL scdlLocation; - private ClassLoader classLoader; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public URL getScdlLocation() { - return scdlLocation; - } - - public void setScdlLocation(URL scdlLocation) { - this.scdlLocation = scdlLocation; - } - - public ClassLoader getClassLoader() { - return classLoader; - } - - public void setClassLoader(ClassLoader classLoader) { - this.classLoader = classLoader; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeReferenceDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeReferenceDefinition.java deleted file mode 100644 index 30466296c0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeReferenceDefinition.java +++ /dev/null @@ -1,55 +0,0 @@ -/*
- * 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.spi.model;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-
-
-/**
- * Represents reference defintion that is part of a Composite definition
- *
- */
-public class CompositeReferenceDefinition extends ComponentTypeReferenceDefinition {
- protected List<URI> promotedReferences = new ArrayList<URI>();
-
- public CompositeReferenceDefinition() {
- super();
- }
-
- public CompositeReferenceDefinition(String name, ServiceContract serviceContract) {
- super(name, serviceContract);
- }
-
- public CompositeReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity) {
- super(name, serviceContract, multiplicity);
- }
-
- public void addPromotedReference(URI refUri) {
- this.promotedReferences.add(refUri);
- }
-
- public List<URI> getPromotedReferences() {
- return Collections.unmodifiableList(promotedReferences);
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Contribution.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Contribution.java deleted file mode 100644 index 6e73fb9e0f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Contribution.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.namespace.QName; - -/** - * The representation of a deployed contribution - * - * @version $Rev$ $Date$ - */ -public class Contribution extends DeployedArtifact { - public static final String SCA_CONTRIBUTION_META = "META-INF/sca-contribution.xml"; - public static final String SCA_CONTRIBUTION_GENERATED_META = "META-INF/sca-contribution-generated.xml"; - - protected List<String> exports = new ArrayList<String>(); - protected List<ContributionImport> imports = new ArrayList<ContributionImport>(); - protected List<QName> deployables = new ArrayList<QName>(); - - /** - * A list of artifacts in the contribution - */ - protected Map<URI, DeployedArtifact> artifacts = new HashMap<URI, DeployedArtifact>(); - - public Contribution() { - super(); - } - - /** - * @param uri - */ - public Contribution(URI uri) { - super(uri); - if (uri != null) { - artifacts.put(uri, this); - } - } - - public URI getUri() { - return uri; - } - - public void setURI(URI uri) { - super.setUri(uri); - if (uri != null) { - artifacts.put(uri, this); - } - } - - public List<String> getExports() { - return exports; - } - - public List<ContributionImport> getImports() { - return imports; - } - - public List<QName> getDeployables() { - return deployables; - } - - public Map<URI, DeployedArtifact> getArtifacts() { - return Collections.unmodifiableMap(artifacts); - } - - public void addArtifact(DeployedArtifact artifact) { - artifact.setContribution(this); - artifacts.put(artifact.getUri(), artifact); - } - - public DeployedArtifact getArtifact(URI uri) { - return artifacts.get(uri); - } - - /** - * @return the location - */ - public URL getLocation() { - return location; - } - - /** - * @param location the location to set - */ - public void setLocation(URL location) { - this.location = location; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ContributionImport.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ContributionImport.java deleted file mode 100644 index a678adbdc8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ContributionImport.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; - -/** - * The representation of an import for the contribution - * - * @version $Rev$ $Date$ - */ -public class ContributionImport extends ModelObject { - private String namespace; // The namespace to be imported - private URI location; // Optional location to hint the where it should be imported - - // TODO: We might need the field to point to the imported artifact/model - - public URI getLocation() { - return location; - } - - public void setLocation(URI location) { - this.location = location; - } - - public String getNamespace() { - return namespace; - } - - public void setNamespace(String namespace) { - this.namespace = namespace; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java deleted file mode 100644 index 72effb52e2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java +++ /dev/null @@ -1,249 +0,0 @@ -/* - * 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.spi.model; - -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; - -/** - * Representation of the type of data associated with an operation. Data is represented in two forms: the physical form - * used by the runtime and a logical form used by the assembly. The physical form is a Java Type because the runtime is - * written in Java. This may be the same form used by the application but it may not; for example, an application that - * is performing stream processing may want a physical form such as an {@link java.io.InputStream InputStream} to - * semantially operate on application data such as a purchase order. The logical description is that used by the - * assembly model and is an identifier into some well-known type space; examples may be a Java type represented by its - * Class or an XML type represented by its QName. Every data type may also contain metadata describing the expected - * data; for example, it could specify a preferred data binding technology or the size of a typical instance. - * - * @version $Rev$ $Date$ - */ -public class DataType<L> extends ModelObject implements Cloneable { - private String dataBinding; - - private final Type physical; - - private L logical; - - private Map<String, Object> metadata = new HashMap<String, Object>(); - - private Operation operation; - - /** - * Construct a data type specifying the physical and logical types. - * - * @param physical the physical class used by the runtime - * @param logical the logical type - * @see #getLogical() - */ - public DataType(Type physical, L logical) { - this.physical = physical; - this.logical = logical; - if (physical instanceof Class) { - this.dataBinding = ((Class) physical).getName(); - } - } - - public DataType(String dataBinding, Type physical, L logical) { - this.dataBinding = dataBinding; - this.physical = physical; - this.logical = logical; - } - - /** - * Returns the physical type used by the runtime. - * - * @return the physical type used by the runtime - */ - public Type getPhysical() { - return physical; - } - - /** - * Returns the logical identifier used by the assembly. The type of this value identifies the logical type system in - * use. Known values are: <ul> <li>a java.lang.reflect.Type identifies a Java type by name and ClassLoader; this - * includes Java Classes as they are specializations of Type</li> <li>a javax.xml.namespace.QName identifies an XML - * type by local name and namespace</li> </ul> - * - * @return the logical type name - */ - public L getLogical() { - return logical; - } - - /** - * Returns all metadata about this type. - * - * @return all metadata about this type - */ - public Map<String, ?> getMetadata() { - return metadata; - } - - /** - * Returns the specified metadata item or null if not present. - * - * @param name the name of the metadata item - * @return the value, or null if not present - */ - public Object getMetadata(String name) { - return metadata.get(name); - } - - /** - * Sets the specified metadata value. A null value undefines it. - * - * @param name the name of the metadata item - * @param value the value, or null to undefine - * @return the old value for the item, or null if not present - */ - public Object setMetadata(String name, Object value) { - if (value == null) { - return metadata.remove(name); - } else { - return metadata.put(name, value); - } - } - - public String getDataBinding() { - if (dataBinding == null) { - // databinding is not set at the DataType level, check the operation - Operation<?> operation = (Operation<?>) getOperation(); - if (operation != null) { - return operation.getDataBinding(); - } - } - return dataBinding; - } - - /** - * @param dataBinding the dataBinding to set - */ - public void setDataBinding(String dataBinding) { - this.dataBinding = dataBinding; - } - - public int hashCode() { - int result; - result = dataBinding != null ? dataBinding.hashCode() : 0; - result = 29 * result + (physical != null ? physical.hashCode() : 0); - result = 29 * result + (logical != null ? logical.hashCode() : 0); - // Commented the following line out since it causes infinite loop from Operation.hashCode() - // if the metadata map contains the Operation - // result = 29 * result + (metadata != null ? metadata.hashCode() : 0); - return result; - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - final DataType dataType = (DataType) o; - - if (dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null) { - return false; - } - if (logical != null ? !logical.equals(dataType.logical) : dataType.logical != null) { - return false; - } - return !(physical != null ? !physical.equals(dataType.physical) : dataType.physical != null); - - } - -// @SuppressWarnings("unchecked") -// public boolean equals(Object o) { -// if (this == o) { -// return true; -// } -// if (o == null || getClass() != o.getClass()) { -// return false; -// } -// -// final DataType dataType = (DataType) o; -// -// if (logical instanceof Class && dataType.logical instanceof Class) { -// Class<?> logicalClass = (Class<?>) logical; -// Class<?> targetLogicalClass = (Class<?>) dataType.logical; -// if (!logicalClass.isAssignableFrom(targetLogicalClass)) { -// return false; -// } -// } else { -// if (logical != null ? !logical.equals(dataType.logical) : dataType.logical != null) { -// return false; -// } -// } -// if (physical instanceof Class && dataType.physical instanceof Class) { -// Class<?> physicalClass = (Class<?>) physical; -// Class<?> physicalTargetClass = (Class<?>) dataType.physical; -// if (dataBinding != null -// && dataType.dataBinding != null -// && dataBinding.equals(physicalClass.getName()) -// && dataType.dataBinding.equals(physicalTargetClass.getName())) { -// return physicalClass.isAssignableFrom(physicalTargetClass); -// } -// if (!physicalClass.isAssignableFrom(physicalTargetClass)) { -// return false; -// } -// return !(dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null); -// -// -// } -// -// if (dataBinding != null ? !dataBinding.equals(dataType.dataBinding) : dataType.dataBinding != null) { -// return false; -// } -// -// return !(physical != null ? !physical.equals(dataType.physical) : dataType.physical != null); -// } - - public String toString() { - StringBuffer sb = new StringBuffer(); - sb.append(physical).append(" ").append(dataBinding).append(" ").append(logical); - return sb.toString(); - } - - @SuppressWarnings("unchecked") - @Override - public Object clone() throws CloneNotSupportedException { - DataType<L> copy = (DataType<L>) super.clone(); - assert this.metadata instanceof HashMap; - copy.metadata = (HashMap<String, Object>) ((HashMap) this.metadata).clone(); - return copy; - } - - public Operation getOperation() { - return operation; - } - - public void setOperation(Operation operation) { - this.operation = operation; - } - - /** - * @param logical the logical to set - */ - public void setLogical(L logical) { - this.logical = logical; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DeployedArtifact.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DeployedArtifact.java deleted file mode 100644 index c3261cbe97..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DeployedArtifact.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -/** - * Representation of a deployed artifact - * - * @version $Rev$ $Date$ - */ -public class DeployedArtifact extends ModelObject { - protected Contribution contribution; - protected URI uri; - protected URL location; - /** - * The map keeps all the model objects loaded/introspected from this artifact. The objects - * are keyed by the java type of the model such as javax.wsdl.ModelObject. The value is also - * a map with namespace as the key and the model object as the value. - */ - protected Map<Class, Map<String, Object>> modelObjects = new HashMap<Class, Map<String, Object>>(); - - public DeployedArtifact() { - super(); - } - - /** - * @param uri - */ - public DeployedArtifact(URI uri) { - super(); - this.uri = uri; - } - - /** - * Get the absolute URI as the unique id for the artifact - * @return - */ - public URI getUri() { - return uri; - } - - public void setUri(URI uri) { - this.uri = uri; - } - - /** - * @return the location - */ - public URL getLocation() { - return location; - } - - /** - * @param location the location to set - */ - public void setLocation(URL location) { - this.location = location; - } - - public Contribution getContribution() { - return contribution; - } - - public void setContribution(Contribution contribution) { - this.contribution = contribution; - } - - public Map<Class, Map<String, Object>> getModelObjects() { - return modelObjects; - } - - public Map<String, Object> getModelObjects(Class type) { - return modelObjects.get(type); - } - - public Object getModelObject(Class type, String namespace) { - Map<String, Object> map = modelObjects.get(type); - if (map == null) { - return null; - } else { - return map.get(namespace); - } - } - - public void addModelObject(Class type, String namespace, Object modelObject) { - Map<String, Object> map = modelObjects.get(type); - if (map == null) { - map = new HashMap<String, Object>(); - modelObjects.put(type, map); - } - map.put(namespace, modelObject); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java deleted file mode 100644 index 8520ab49e8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Implementation.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.model; - -/** - * Represents a component implementation - * - * @version $Rev$ $Date$ - */ -public abstract class Implementation<T extends ComponentType> extends ModelObject { - private T componentType; - - protected Implementation() { - } - - protected Implementation(T componentType) { - this.componentType = componentType; - } - - public T getComponentType() { - return componentType; - } - - public void setComponentType(T componentType) { - this.componentType = componentType; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java deleted file mode 100644 index ac320a2b5c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Include.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URL; - -/** - * Model object that represents the include of a composite by value. - * - * @version $Rev$ $Date$ - */ -public class Include extends ModelObject { - private String name; - private URL scdlLocation; - private CompositeComponentType included; - - /** - * Returns the name of the composite that is being included. - * @return the name of the composite that is being included - */ - public String getName() { - return name; - } - - /** - * Sets the name of the composite that is being included. - * @param name the name of the composite that is being included - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the location of the SCDL for composite being included. - * @return the location of the SCDL for composite being included - */ - public URL getScdlLocation() { - return scdlLocation; - } - - /** - * Sets the location of the SCDL for composite being included. - * @param scdlLocation the location of the SCDL for composite being included - */ - public void setScdlLocation(URL scdlLocation) { - this.scdlLocation = scdlLocation; - } - - /** - * Returns the composite that was included. - * @return the composite that was included - */ - public CompositeComponentType getIncluded() { - return included; - } - - /** - * Sets the composite that was included. - * @param included the composite that was included - */ - public void setIncluded(CompositeComponentType included) { - this.included = included; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java deleted file mode 100644 index 9f3ee78a23..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Intent.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import static java.util.Collections.unmodifiableList; -import java.util.List; -import javax.xml.namespace.QName; - -/** - * Model representation for intent. This class is used by intent loader only, other SCA model classes will not reference - * this class directly. - * - * @version $Rev$ $Date$ - */ -public class Intent { - - /** - * name of intent. - */ - protected IntentName name; - - /** - * Description for this intent - */ - protected String description; - - /** - * QNames of artifacts this intent can apply to - */ - protected List<QName> appliedArtifacts = new ArrayList<QName>(); - - /** - * intents required by this intent, only useful when this intent is a profile intent - */ - protected List<IntentName> requriedIntents = new ArrayList<IntentName>(); - - /** - * Create a policy intent. - * - * @param name name of the intent. - * @param description description of the intent. - */ - public Intent(IntentName name, String description) { - this.name = name; - this.description = description; - } - - public List<QName> getAppliedArtifacts() { - return unmodifiableList(appliedArtifacts); - } - - public String getDescription() { - return description; - } - - public IntentName getName() { - return name; - } - - public List<IntentName> getRequriedIntents() { - return unmodifiableList(requriedIntents); - } - - public void addRequriedIntents(IntentName intent) { - requriedIntents.add(intent); - } - - public void addAppliedArtifacts(QName artifactName) { - appliedArtifacts.add(artifactName); - } - - public boolean isProfileIntent() { - return !requriedIntents.isEmpty(); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java deleted file mode 100644 index cbfba86dfe..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentMap.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.Collection; -import static java.util.Collections.unmodifiableCollection; - -/** - * Represents an IntentMap within PolicySet. - * - * @version $Rev$ $Date$ - */ -public class IntentMap extends PolicyModel { - - /* Name of default intent provied by this IntentMap */ - private String defaultProvideIntent; - - /* Name of intent provided by this IntentMap */ - private Collection<String> provideIntents = new ArrayList<String>(); - - /* Qualifiers of this IntentMap */ - private Collection<Qualifier> qualifiers = new ArrayList<Qualifier>(); - - public IntentMap(String defaultProvideIntent, Collection<String> provideIntents) { - super(); - this.defaultProvideIntent = defaultProvideIntent; - this.provideIntents.addAll(provideIntents); - } - - public Collection<String> getProvideIntents() { - return unmodifiableCollection(provideIntents); - } - - public void addQualifier(Qualifier qualifier) { - qualifiers.add(qualifier); - } - - public Collection<Qualifier> getQualifiers() { - return unmodifiableCollection(qualifiers); - } - - public String getDefaultProvideIntent() { - return defaultProvideIntent; - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java deleted file mode 100644 index eb69b44b37..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentName.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 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.spi.model; - -import java.util.Arrays; - -/** - * Model class represents a name of a intent. An intent name has a domain name and one or more qualified names. For - * example, in "sec.confidentiality/message/body", the domain name is sec, and the qualified names are confidentiality, - * message and body - */ -@SuppressWarnings({"SerializableHasSerializationMethods"}) -public class IntentName implements java.io.Serializable { - private static final String QUALIFIED_SEPARATOR = "/"; - private static final String DOMAIN_SEPARATOR = "."; - private static final long serialVersionUID = -7030021353149084879L; - - /** - * domain of the intent - */ - private String domain; - - private String[] qualifiedNames; - - /** - * Construct a IntentName from a string representation. - * - * @param intent string representation for a intent. - */ - public IntentName(String intent) { - parse(intent); - } - - /** - * Construct a IntentName from domain name and qualified names - * - * @param domain domain name of the intent - * @param qualifiedNames qualified names of the intent - */ - public IntentName(String domain, String[] qualifiedNames) { - this.domain = domain; - this.qualifiedNames = qualifiedNames; - } - - public String getDomain() { - return domain; - } - - public String[] getQualifiedNames() { - String[] results = new String[qualifiedNames.length]; - System.arraycopy(qualifiedNames, 0, results, 0, qualifiedNames.length); - return results; - } - - @Override - public String toString() { - return getName(); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final IntentName other = (IntentName) obj; - if (domain == null) { - if (other.domain != null) { - return false; - } - } else if (!domain.equals(other.domain)) { - return false; - } - return Arrays.equals(qualifiedNames, other.qualifiedNames); - } - - @Override - public int hashCode() { - final int PRIME = 17; - int result = 1; - result = PRIME * result + ((domain == null) ? 0 : domain.hashCode()); - result = PRIME * result + Arrays.hashCode(qualifiedNames); - return result; - } - - private String getName() { - StringBuilder sbd = new StringBuilder(domain); - for (int i = 0; i < qualifiedNames.length; i++) { - if (i == 0) { - sbd.append(DOMAIN_SEPARATOR); - } else { - sbd.append(QUALIFIED_SEPARATOR); - } - sbd.append(qualifiedNames[i]); - } - - return sbd.toString(); - } - - /** - * Parse a string representation of intent. - * - * @param intent string representation of intent - */ - private void parse(String intent) { - String iname = validateFormat(intent); - int domainIdx = iname.indexOf(DOMAIN_SEPARATOR); - domain = iname.substring(0, domainIdx); - String qualifNamesStr = iname.substring(domainIdx + 1); - qualifiedNames = qualifNamesStr.split(QUALIFIED_SEPARATOR); - - } - - private String validateFormat(String intent) { - // TODO validate and canonicalize intent name - return intent; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java deleted file mode 100644 index 4e15e353c6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/InteractionScope.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.spi.model; - -/** - * Represents the interaction scope specifed for a service - * - * @version $Rev$ $Date$ - */ -public enum InteractionScope { - CONVERSATIONAL, - NONCONVERSATIONAL -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java deleted file mode 100644 index 2d5a0802e6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ModelObject.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.spi.model; - -import java.util.HashMap; -import java.util.Map; - -/** - * The base class for assembly model subtypes - * - * @version $Rev$ $Date$ - */ -public abstract class ModelObject { - private final Map<Object, Object> extensions = new HashMap<Object, Object>(); - - protected ModelObject() { - } - - public Map<Object, Object> getExtensions() { - return extensions; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java deleted file mode 100644 index f7ec8759f8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Multiplicity.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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.spi.model; - -/** - * Enumeration for multiplicity. - */ -public enum Multiplicity { - /** - * Indicates a relationship that is optionally connected to the requestor and which, if supplied, must be connected - * to exactly one provider. - */ - ZERO_ONE, - - /** - * Indicates a relationship that must be connected between exactly one requestor and exactly one provider. - */ - ONE_ONE, - - /** - * Indicates a relationship that is optionally connects the requestor to zero to unbounded providers. - */ - ZERO_N, - - /** - * Indicates a relationship that must be connected at the requestor and which connects it to zero to unbounded - * providers. - */ - ONE_N - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java deleted file mode 100644 index 76e437276b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java +++ /dev/null @@ -1,413 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Represents an operation that is part of a service contract. The type paramter of this operation identifies the - * logical type system for all data types. - * - * @version $Rev$ $Date$ - */ -public class Operation<T> extends ModelObject implements Cloneable { - public static final int NO_CONVERSATION = -1; - public static final int CONVERSATION_CONTINUE = 1; - public static final int CONVERSATION_END = 2; - - protected Map<String, Object> metaData; - private final String name; - private ServiceContract<T> contract; - private final DataType<T> outputType; - private final DataType<List<DataType<T>>> inputType; - private final List<DataType<T>> faultTypes; - private String dataBinding; - private boolean wrapperStyle; - private WrapperInfo wrapper; - private boolean callback; - private boolean nonBlocking; - private int conversationSequence = NO_CONVERSATION; - - /** - * Construct a minimally-specified operation - * - * @param name the name of the operation - * @param inputType the data types of parameters passed to the operation - * @param outputType the data type returned by the operation - * @param faultTypes the data type of faults raised by the operation - */ - public Operation(String name, - DataType<List<DataType<T>>> inputType, - DataType<T> outputType, - List<DataType<T>> faultTypes) { - this(name, inputType, outputType, faultTypes, false, null, NO_CONVERSATION); - } - - /** - * Construct an operation - * - * @param name the name of the operation - * @param inputType the data types of parameters passed to the operation - * @param outputType the data type returned by the operation - * @param faultTypes the data type of faults raised by the operation - * @param nonBlocking if the operation is non-blocking - * @param dataBinding the data-binding type required by the operation - * @param sequence the conversational attributes of the operation, {@link NO_CONVERSATION}, {@link - * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END} - */ - public Operation(final String name, - final DataType<List<DataType<T>>> inputType, - final DataType<T> outputType, - final List<DataType<T>> faultTypes, - boolean nonBlocking, - String dataBinding, - int sequence) { - super(); - this.name = name; - List<DataType<T>> types = Collections.emptyList(); - this.inputType = (inputType != null) ? inputType : new DataType<List<DataType<T>>>(Object[].class, types); - this.outputType = (outputType != null) ? outputType : new DataType<T>(void.class, null); - this.faultTypes = (faultTypes == null) ? types : faultTypes; - this.nonBlocking = nonBlocking; - this.dataBinding = dataBinding; - this.conversationSequence = sequence; - // Register the operation with the types - this.inputType.setOperation(this); - for (DataType<?> d : this.inputType.getLogical()) { - d.setOperation(this); - } - this.outputType.setOperation(this); - for (DataType<?> d : this.faultTypes) { - d.setOperation(this); - } - } - - /** - * Returns the service contract the operation is part of. - * - * @return the service contract the operation is part of. - */ - public ServiceContract<T> getServiceContract() { - return contract; - } - - /** - * Sets the service contract the operation is part of. - * - * @param contract the service contract the operation is part of. - */ - public void setServiceContract(ServiceContract<T> contract) { - this.contract = contract; - } - - /** - * Returns true if the operation is part of the callback contract. - * - * @return true if the operation is part of the callback contract. - */ - public boolean isCallback() { - return callback; - } - - /** - * Sets whether the operation is part of the callback contract. - * - * @param callback whether the operation is part of the callback contract. - */ - public void setCallback(boolean callback) { - this.callback = callback; - } - - /** - * Returns the name of the operation. - * - * @return the name of the operation - */ - public String getName() { - return name; - } - - /** - * Returns the data type returned by the operation. - * - * @return the data type returned by the operation - */ - public DataType<T> getOutputType() { - return outputType; - } - - /** - * Returns the data types of the parameters passed to the operation. - * <p/> - * The inputType's logical type is a list of DataTypes which describes the parameter types - * - * @return the data types of the parameters passed to the operation - */ - public DataType<List<DataType<T>>> getInputType() { - return inputType; - } - - /** - * Returns the data types of the faults raised by the operation. - * - * @return the data types of the faults raised by the operation - */ - public List<DataType<T>> getFaultTypes() { - if (faultTypes == null) { - return Collections.emptyList(); - } - return faultTypes; - } - - /** - * Returns true if the operation is non-blocking. A non-blocking operation may not have completed execution at the - * time an invocation of the operation returns. - * - * @return true if the operation is non-blocking - */ - public boolean isNonBlocking() { - return nonBlocking; - } - - /** - * Sets if the operation is non-blocking - */ - public void setNonBlocking(boolean nonBlocking) { - this.nonBlocking = nonBlocking; - } - - /** - * Returns the sequence the operation is called in a conversation, {@link NO_CONVERSATION}, {@link - * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END} - * - * @return the sequence the operation is called in a conversation - */ - public int getConversationSequence() { - return conversationSequence; - } - - /** - * Sets the sequence the operation is called in a conversation, {@link NO_CONVERSATION}, {@link - * CONVERSATION_CONTINUE}, or {@link CONVERSATION_END} - */ - public void setConversationSequence(int conversationSequence) { - this.conversationSequence = conversationSequence; - } - - /** - * Returns the data binding type specified for the operation or null. - * - * @return the data binding type specified for the operation or null. - */ - public String getDataBinding() { - return (dataBinding == null && contract != null) ? contract.getDataBinding() : dataBinding; - } - - /** - * Set the databinding for this operation - * - * @param dataBinding The databinding - */ - public void setDataBinding(String dataBinding) { - this.dataBinding = dataBinding; - } - - /** - * Returns a map of metadata key to value mappings for the operation. - * - * @return a map of metadata key to value mappings for the operation. - */ - public Map<String, Object> getMetaData() { - if (metaData == null) { - return Collections.emptyMap(); - } - return metaData; - } - - /** - * Adds metadata associated with the operation. - * - * @param key the metadata key - * @param val the metadata value - */ - public void setMetaData(String key, Object val) { - if (metaData == null) { - metaData = new HashMap<String, Object>(); - } - metaData.put(key, val); - } - - public String toString() { - return name; - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - final Operation operation = (Operation) o; - - if (name != null ? !name.equals(operation.name) : operation.name != null) { - return false; - } - - // HACK: If the operation is mappable, then the equality test is relaxed - if (isMappable()) { - return true; - } - - // TODO: TUSCANY-1111, currently comparing different IDLs fail - if (contract != null && !(contract.getClass().equals(operation.getServiceContract().getClass()))) { - return true; - } - - if (faultTypes == null && operation.faultTypes != null) { - return false; - } else if (faultTypes != null - && operation.faultTypes != null - && faultTypes.size() != 0 - && operation.faultTypes.size() != 0) { - if (faultTypes.size() < operation.faultTypes.size()) { - return false; - } else { - //noinspection ForLoopReplaceableByForEach - for (int i = 0; i < operation.faultTypes.size(); i++) { - if (!faultTypes.get(i).equals(operation.faultTypes.get(i))) { - return false; - } - } - } - } - - if (inputType != null ? !inputType.equals(operation.inputType) : operation.inputType != null) { - return false; - } - return !(outputType != null ? !outputType.equals(operation.outputType) : operation.outputType != null); - } - - public int hashCode() { - int result; - result = name != null ? name.hashCode() : 0; - // HACK: - if (isMappable()) { - return result; - } - result = 29 * result + (outputType != null ? outputType.hashCode() : 0); - result = 29 * result + (inputType != null ? inputType.hashCode() : 0); - result = 29 * result + (faultTypes != null ? faultTypes.hashCode() : 0); - return result; - } - - /** - * Returns true if the operation may be mapped to another target operation through an mediation - */ - private boolean isMappable() { - if (contract != null) { - return contract.isRemotable(); - } else { - return false; - } - } - - /** - * Returns true if the operation is wrapper style - * - * @return the wrapperStyle - */ - public boolean isWrapperStyle() { - return wrapperStyle; - } - - /** - * Return the Wrapper information for this operation is it's wrapper style - * - * @return The Wrapper - */ - public WrapperInfo getWrapper() { - if (!isWrapperStyle()) { - throw new IllegalStateException("The operation is not wrapper style."); - } else { - return wrapper; - } - } - - /** - * @param wrapper the wrapper to set - */ - public void setWrapper(WrapperInfo wrapper) { - this.wrapper = wrapper; - } - - /** - * @param wrapperStyle the wrapperStyle to set - */ - public void setWrapperStyle(boolean wrapperStyle) { - this.wrapperStyle = wrapperStyle; - } - - @SuppressWarnings({"unchecked", "CloneDoesntCallSuperClone"}) - @Override - public Operation<T> clone() throws CloneNotSupportedException { - final List<DataType<T>> clonedFaultTypes = new ArrayList<DataType<T>>(this.faultTypes.size()); - for (DataType<T> t : this.faultTypes) { - clonedFaultTypes.add((DataType<T>) t.clone()); - } - - List<DataType<T>> clonedTypes = new ArrayList<DataType<T>>(); - for (DataType<T> t : inputType.getLogical()) { - DataType<T> type = (DataType<T>) t.clone(); - clonedTypes.add(type); - } - - DataType<List<DataType<T>>> clonedInputType = - new DataType<List<DataType<T>>>(inputType.getPhysical(), clonedTypes); - clonedInputType.setDataBinding(inputType.getDataBinding()); - - DataType<T> outputType = (DataType<T>) this.outputType.clone(); - Operation<T> copy = - new Operation<T>(name, - clonedInputType, - outputType, - clonedFaultTypes, - nonBlocking, - dataBinding, - conversationSequence); - - copy.callback = this.callback; - copy.contract = this.contract; - copy.wrapper = this.wrapper; - copy.wrapperStyle = this.wrapperStyle; - - if (this.metaData != null) { - assert this.metaData instanceof HashMap; - copy.metaData = (HashMap) ((HashMap) this.metaData).clone(); - } - return copy; - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java deleted file mode 100644 index cc86b2670a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/OverrideOptions.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.spi.model; - -/** - * <ul> - * <li>no – the value may not be overridden by the higher composite. In this - * case, a value must be provided for the reference or property as part of its - * declaration. - * <li>may – the value may be overridden by the composite. This is the default - * for references. - * <li>must – no value is specified and the using composite must specify one. - * </ul> - */ -public enum OverrideOptions { - NO, MAY, MUST -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java deleted file mode 100644 index eae425dca8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachable.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.apache.tuscany.spi.model; - -import java.util.Collection; -/** -* -* Represents capability of being attached with Intent and PolicySet. -* -*/ -public interface PolicyAttachable { - /** - * Get the name of PolicySet attached - * @return the name of PolicySet - */ - String getPolicySet(); - /** - * Get collection contains <code>IntentName</code> required. - * @return collection contains <code>IntentName</code> required. - */ - Collection<IntentName> getRequiredIntents(); - -}
\ No newline at end of file diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java deleted file mode 100644 index 3ebbfb16d7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyAttachableModel.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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.spi.model; - -import java.util.Collection; - -/** - * Base class for model classes which can be associated with Intent and PolicySet by specifing requires and policySet - * attributes on xml element. - */ - -public abstract class PolicyAttachableModel extends ModelObject implements PolicyAttachable { - protected Collection<IntentName> requiredIntent; - protected String policySet; - - public String getPolicySet() { - return policySet; - } - - public void setPolicySet(String policySet) { - this.policySet = policySet; - } - - public Collection<IntentName> getRequiredIntents() { - return requiredIntent; - } - - public void addRequiredIntent(IntentName requiredIntent) { - this.requiredIntent.add(requiredIntent); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java deleted file mode 100644 index 7d2412ee8d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyContentModel.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.Collection; -import static java.util.Collections.unmodifiableCollection; - -/** - * PolicyModel which contains concrete policy content in form of WSPolicyAttachment or other extensions. - */ -public abstract class PolicyContentModel extends PolicyModel { - /* WSPolicyAttachment contained in this Model */ - protected Collection<WSPolicyAttachment> wsPolicyAttachments = new ArrayList<WSPolicyAttachment>(); - /* Any policy model extensions besides standard intentMap, ws-policyattachment, etc. */ - protected Collection<PolicyModel> extensions = new ArrayList<PolicyModel>(); - - public Collection<PolicyModel> getPolicyExtensions() { - return extensions; - } - - public Collection<WSPolicyAttachment> getWsPolicyAttachments() { - return unmodifiableCollection(wsPolicyAttachments); - } - - public void addWsPolicyAttachment(WSPolicyAttachment attachment) { - wsPolicyAttachments.add(attachment); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java deleted file mode 100644 index 17bd8f0b7e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicyModel.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.spi.model; - - -/** - * An abstract base class for all policy model representations. - * <p/> - * $Version$ $Date$ - */ -public abstract class PolicyModel extends ModelObject { - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java deleted file mode 100644 index 7545f234e1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySet.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.Collection; -import static java.util.Collections.unmodifiableCollection; -import static java.util.Collections.unmodifiableList; -import java.util.List; -import javax.xml.namespace.QName; - -/** - * Model representation for PolicySet. - * <p/> - * $Rev$ $Date$ - */ -public class PolicySet extends PolicyContentModel { - - /** - * QNames of artifacts to which this Policy can apply - */ - protected List<QName> appliedArtifacts = new ArrayList<QName>(); - - /** - * IntentMap contained in this PolicySet - */ - private Collection<IntentMap> intentMaps = new ArrayList<IntentMap>(); - - /** - * Name for PolicySet, corresponding to name attribute of PolicySet element in SCDL - */ - private QName name; - - /** - * References to other PolicySet - */ - private Collection<PolicySetReference> policySetReferences = new ArrayList<PolicySetReference>(); - - /** - * Name of intents provided by this PolicySet - */ - private Collection<IntentName> provideIntents = new ArrayList<IntentName>(); - - public PolicySet(QName name, List<IntentName> providesIntent) { - super(); - this.name = name; - this.provideIntents.addAll(providesIntent); - } - - - public void addPolicySetReference(PolicySetReference ref) { - policySetReferences.add(ref); - } - - public void addAppliedArtifacts(QName artifactName) { - appliedArtifacts.add(artifactName); - } - - public List<QName> getAppliedArtifacts() { - return unmodifiableList(appliedArtifacts); - } - - public void addIntentMap(IntentMap intentMap) { - intentMaps.add(intentMap); - } - - public Collection<IntentMap> getIntentMaps() { - return unmodifiableCollection(intentMaps); - } - - public QName getName() { - return name; - } - - public Collection<PolicySetReference> getPolicySetReferences() { - return unmodifiableCollection(policySetReferences); - } - - public Collection<IntentName> getProvideIntents() { - return unmodifiableCollection(provideIntents); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java deleted file mode 100644 index 46924910d0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PolicySetReference.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.spi.model; - -import javax.xml.namespace.QName; - -/** - * Presents a PolicySetReference. - */ -public class PolicySetReference extends PolicyModel { - - private QName reference; - - public PolicySetReference(QName reference) { - super(); - this.reference = reference; - } - - public QName getReference() { - return reference; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java deleted file mode 100644 index dff7ee897b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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.spi.model; - -import java.util.List; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.ObjectFactory; -import org.w3c.dom.Element; - -/** - * A component property - * - * @version $Rev$ $Date$ - */ -public class Property<T> extends ModelObject { - private String name; - private ObjectFactory<?> defaultValueFactory; - private QName xmlType; - private QName xmlElement; - private Class<T> javaType; - private boolean many; - private boolean mustSupply; - private List<Element> defaultValues; - - - public Property() { - mustSupply = false; - many = false; - } - - public Property(String name, QName xmlType, Class<T> javaType) { - this.name = name; - this.xmlType = xmlType; - this.javaType = javaType; - mustSupply = false; - many = false; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public ObjectFactory<?> getDefaultValueFactory() { - return defaultValueFactory; - } - - public void setDefaultValueFactory(ObjectFactory<T> factory) { - this.defaultValueFactory = factory; - } - - public void setDefaultMultiValueFactory(ObjectFactory<List<T>> factory) { - this.defaultValueFactory = factory; - } - - public QName getXmlType() { - return xmlType; - } - - public void setXmlType(QName xmlType) { - this.xmlType = xmlType; - } - - public Class<T> getJavaType() { - return javaType; - } - - public void setJavaType(Class<T> javaType) { - this.javaType = javaType; - } - - public boolean isMany() { - return many; - } - - public void setMany(boolean many) { - this.many = many; - } - - public boolean isMustSupply() { - return mustSupply; - } - - public void setMustSupply(boolean mustSupply) { - this.mustSupply = mustSupply; - } - - /*public Document getDefaultValue() { - return defaultValue; - } - - public void setDefaultValue(Document defaultValue) { - this.defaultValue = defaultValue; - }*/ - - public QName getXmlElement() { - return xmlElement; - } - - public void setXmlElement(QName xmlElement) { - this.xmlElement = xmlElement; - } - - public List<Element> getDefaultValues() { - return defaultValues; - } - - public void setDefaultValues(List<Element> defaultValues) { - this.defaultValues = defaultValues; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java deleted file mode 100644 index 209be4d13a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * 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.spi.model; - -import java.util.List; - -import org.apache.tuscany.spi.ObjectFactory; -import org.w3c.dom.Element; - -/** - * Represents a configured component property - * @version $Rev$ $Date$ - */ -public class PropertyValue<T> extends ModelObject { - private String name; - private String source; - private String file; - private List<Element> value; - private ObjectFactory<?> valueFactory; - - public PropertyValue() { - } - - /** - * Constructor specifying the name of a property and the XPath source expression. - * - * @param name the name of the property which this value is for - * @param source an XPath expression whose result will be the actual value - * @param file A URI that the property value can be loaded from - */ - public PropertyValue(String name, String source, String file) { - this.name = name; - this.source = source; - this.file = file; - } - - /** - * @param name - * @param value - */ - public PropertyValue(String name, List<Element> value) { - this.name = name; - this.value = value; - } - - public PropertyValue(String name, ObjectFactory<?> valueFactory) { - this.name = name; - this.valueFactory = valueFactory; - } - - /** - * Returns the name of the property that this value is for. - * @return the name of the property that this value is for - */ - public String getName() { - return name; - } - - /** - * Sets the name of the property that this value is for. - * @param name the name of the property that this value is for - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns an XPath expression that should be evaluated to get the actual property value. - * - * @return an XPath expression that should be evaluated to get the actual property value - */ - public String getSource() { - return source; - } - - /** - * Sets an XPath expression that should be evaluated to get the actual property value. - * @param source an XPath expression that should be evaluated to get the actual property value - */ - public void setSource(String source) { - this.source = source; - } - - public ObjectFactory<?> getValueFactory() { - return valueFactory; - } - - public void setValueFactory(ObjectFactory<?> valueFactory) { - this.valueFactory = valueFactory; - } - - public void setMultiValueFactory(ObjectFactory<List<T>> valueFactory) { - this.valueFactory = valueFactory; - } - - - public List<Element> getValue() { - return value; - } - - public void setValue(List<Element> value) { - this.value = value; - } - - /** - * @return the file - */ - public String getFile() { - return file; - } - - /** - * @param file the file to set - */ - public void setFile(String file) { - this.file = file; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java deleted file mode 100644 index 8a7d709bd9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Qualifier.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.spi.model; - -/** - * Model reprentation for qualifier - */ - -public class Qualifier extends PolicyContentModel { - - private String name; - - /** - * IntentMap contained in this Qualifier - */ - private IntentMap intentMap; - - public Qualifier(String name) { - super(); - this.name = name; - } - - public String getName() { - return name; - } - - public IntentMap getIntentMap() { - return intentMap; - } - - public void setIntentMap(IntentMap intentMap) { - this.intentMap = intentMap; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java deleted file mode 100644 index db0bdb2b22..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; -import java.util.ArrayList; -import java.util.List; - -/** - * Represents the set of targets configured on a reference - * - * @version $Rev$ $Date$ - */ -public class ReferenceTarget extends ModelObject { - private String referenceName; - private List<URI> targets = new ArrayList<URI>(); - - public String getReferenceName() { - return referenceName; - } - - public void setReferenceName(String referenceName) { - this.referenceName = referenceName; - } - - public List<URI> getTargets() { - return targets; - } - - public void addTarget(URI target) { - targets.add(target); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java deleted file mode 100644 index a53b26d2ba..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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.spi.model; - -/** - * The default implementation scopes supported by assemblies. - * - * @version $Rev$ $Date$ - */ -public class Scope { - public static final Scope STATELESS = new Scope("STATELESS"); - public static final Scope REQUEST = new Scope("REQUEST"); - public static final Scope SESSION = new Scope("SESSION"); - public static final Scope CONVERSATION = new Scope("CONVERSATION"); - public static final Scope COMPOSITE = new Scope("COMPOSITE"); - public static final Scope SYSTEM = new Scope("SYSTEM"); - public static final Scope UNDEFINED = new Scope("UNDEFINED"); - - private String scope; - - public Scope(String scope) { - this.scope = scope.toUpperCase().intern(); - } - - public String getScope() { - return scope; - } - - @SuppressWarnings({"StringEquality"}) - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - final Scope scope1 = (Scope) o; - return !(scope != null ? scope != scope1.scope.intern() : scope1.scope != null); - } - - public int hashCode() { - return scope != null ? scope.hashCode() : 0; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java deleted file mode 100644 index 2a1316139c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java +++ /dev/null @@ -1,279 +0,0 @@ -/* - * 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.spi.model; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -/** - * Base class representing service contract information - * - * @version $Rev$ $Date$ - */ -public abstract class ServiceContract<T> extends ModelObject implements Cloneable { - protected InteractionScope interactionScope; - protected boolean remotable; - protected Class<?> interfaceClass; - protected String interfaceName; - protected String callbackName; - protected Class<?> callbackClass; - protected Map<String, Operation<T>> operations; - protected Map<String, Operation<T>> callbackOperations; - protected String dataBinding; - protected Map<String, Object> metaData; - - protected ServiceContract() { - } - - protected ServiceContract(Class<?> interfaceClass) { - this.interfaceClass = interfaceClass; - } - - protected ServiceContract(String interfaceName) { - this.interfaceName = interfaceName; - } - - /** - * Returns the interface name for the contract - * - * @return the interface name for the contract - */ - public String getInterfaceName() { - return interfaceName; - } - - /** - * Sets the interface name for the contract - */ - public void setInterfaceName(String interfaceName) { - this.interfaceName = interfaceName; - } - - /** - * Returns the class used to represent the service contract - */ - public Class<?> getInterfaceClass() { - return interfaceClass; - } - - /** - * Sets the class used to represent the service contract - */ - public void setInterfaceClass(Class<?> interfaceClass) { - this.interfaceClass = interfaceClass; - } - - /** - * Returns the service interaction scope - */ - public InteractionScope getInteractionScope() { - return interactionScope; - } - - /** - * Sets the service interaction scope - */ - public void setInteractionScope(InteractionScope interactionScope) { - this.interactionScope = interactionScope; - } - - /** - * @return the remotable - */ - public boolean isRemotable() { - return remotable; - } - - /** - * @param remotable the remotable to set - */ - public void setRemotable(boolean remotable) { - this.remotable = remotable; - } - - /** - * Returns the name of the callback or null if the contract is unidirectional - */ - public String getCallbackName() { - return callbackName; - } - - /** - * Sets the name of the callback service - */ - public void setCallbackName(String callbackName) { - this.callbackName = callbackName; - } - - /** - * Returns the name of the callback service - */ - public Class<?> getCallbackClass() { - return callbackClass; - } - - public void setCallbackClass(Class<?> callbackClass) { - this.callbackClass = callbackClass; - } - - public Operation getOperation(String name) { - return operations == null ? null : operations.get(name); - } - - public Map<String, Operation<T>> getOperations() { - if (operations == null) { - return Collections.emptyMap(); - } - return Collections.unmodifiableMap(operations); - } - - public void setOperations(Map<String, Operation<T>> operations) { - for (Operation<T> operation : operations.values()) { - operation.setServiceContract(this); - } - this.operations = operations; - } - - public Map<String, Operation<T>> getCallbackOperations() { - if (callbackOperations == null) { - return Collections.emptyMap(); - } - return Collections.unmodifiableMap(callbackOperations); - } - - public void setCallbackOperations(Map<String, Operation<T>> callbacksOperations) { - for (Operation<T> operation : callbacksOperations.values()) { - operation.setServiceContract(this); - operation.setCallback(true); - } - this.callbackOperations = callbacksOperations; - } - - public String getDataBinding() { - return dataBinding; - } - - public void setDataBinding(String dataBinding) { - this.dataBinding = dataBinding; - } - - /** - * Returns a map of metadata key to value mappings for the operation. - * - * @return a map of metadata key to value mappings for the operation. - */ - public Map<String, Object> getMetaData() { - if (metaData == null) { - return Collections.emptyMap(); - } - return metaData; - } - - /** - * Adds metadata associated with the operation. - * - * @param key the metadata key - * @param val the metadata value - */ - public void setMetaData(String key, Object val) { - if (metaData == null) { - metaData = new HashMap<String, Object>(); - } - metaData.put(key, val); - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - final ServiceContract that = (ServiceContract) o; - - if (callbackName != null ? !callbackName.equals(that.callbackName) : that.callbackName != null) { - return false; - } - if (callbackOperations != null ? !callbackOperations.equals(that.callbackOperations) - : that.callbackOperations != null) { - return false; - } - if (interfaceClass != null ? !interfaceClass.equals(that.interfaceClass) : that.interfaceClass != null) { - return false; - } - if (interfaceName != null ? !interfaceName.equals(that.interfaceName) : that.interfaceName != null) { - return false; - } - return !(operations != null ? !operations.equals(that.operations) : that.operations != null); - - } - - public int hashCode() { - int result; - result = interfaceClass != null ? interfaceClass.hashCode() : 0; - result = 29 * result + (interfaceName != null ? interfaceName.hashCode() : 0); - result = 29 * result + (callbackName != null ? callbackName.hashCode() : 0); - result = 29 * result + (operations != null ? operations.hashCode() : 0); - result = 29 * result + (callbackOperations != null ? callbackOperations.hashCode() : 0); - return result; - } - - public String toString() { - if (interfaceName != null) { - return new StringBuilder().append("ServiceContract[").append(interfaceName).append("]").toString(); - } else if (interfaceClass != null) { - return new StringBuilder().append("ServiceContract[").append(interfaceClass.getName()).append("]") - .toString(); - } else { - return super.toString(); - } - - } - - @SuppressWarnings("unchecked") - @Override - public Object clone() throws CloneNotSupportedException { - ServiceContract<T> copy = (ServiceContract<T>) super.clone(); - - if (operations != null) { - Map<String, Operation<T>> clonedOperations = new HashMap<String, Operation<T>>(); - for (Operation<T> o : operations.values()) { - clonedOperations.put(o.getName(), (Operation<T>) o.clone()); - } - copy.setOperations(clonedOperations); - } - - if (callbackOperations != null) { - Map<String, Operation<T>> clonedCallbackOperations = new HashMap<String, Operation<T>>(); - for (Operation<T> o : callbackOperations.values()) { - clonedCallbackOperations.put(o.getName(), (Operation<T>) o.clone()); - } - copy.setCallbackOperations(clonedCallbackOperations); - } - - if (this.metaData != null) { - assert this.metaData instanceof HashMap; - copy.metaData = (HashMap) ((HashMap) this.metaData).clone(); - } - - return copy; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java deleted file mode 100644 index 6740902c8c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Represents a service offered by a component - * - * @version $Rev$ $Date$ - */ -public class ServiceDefinition extends ModelObject { - private String name; - private ServiceContract serviceContract; - private boolean remotable; - private String callbackRefName; - private List<BindingDefinition> bindings; - private URI target; - - public ServiceDefinition() { - bindings = new ArrayList<BindingDefinition>(); - } - - public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable) { - bindings = new ArrayList<BindingDefinition>(); - this.name = name; - this.serviceContract = serviceContract; - this.remotable = remotable; - } - - public ServiceDefinition(String name, ServiceContract serviceContract, boolean remotable, String callbackRefName) { - bindings = new ArrayList<BindingDefinition>(); - this.name = name; - this.serviceContract = serviceContract; - this.remotable = remotable; - this.callbackRefName = callbackRefName; - } - - /** - * Returns the service name - * - * @return the service name - */ - public String getName() { - return name; - } - - /** - * Sets the service name - * - * @param name the service name - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the service contract - * - * @return the service contract - */ - public ServiceContract<?> getServiceContract() { - return serviceContract; - } - - /** - * Sets the service contract - * - * @param contract the service contract - */ - public void setServiceContract(ServiceContract contract) { - this.serviceContract = contract; - } - - /** - * Returns true if the service is remotable - * - * @return true if the service is remotable - */ - public boolean isRemotable() { - return remotable; - } - - /** - * Sets if the service is remotable - * - * @param remotable if the service is remotable - */ - public void setRemotable(boolean remotable) { - this.remotable = remotable; - } - - /** - * Returns the callback name. - */ - public String getCallbackReferenceName() { - return callbackRefName; - } - - /** - * Sets the callback name - */ - public void setCallbackReferenceName(String name) { - this.callbackRefName = name; - } - - /** - * Returns the bindings configured for the service - * - * @return the bindings configured for the service - */ - public List<BindingDefinition> getBindings() { - return Collections.unmodifiableList(bindings); - } - - /** - * Configures the service with a binding - * - * @param binding the binding - */ - public void addBinding(BindingDefinition binding) { - this.bindings.add(binding); - } - - /** - * Returns the target URI the service is wired to - * - * @return the target URI the service is wired to - */ - public URI getTarget() { - return target; - } - - /** - * Sets the target URI the service is wired to - * - * @param target the target URI the service is wired to - */ - public void setTarget(URI target) { - this.target = target; - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java deleted file mode 100644 index ff1a6cf791..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WSPolicyAttachment.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.model; - -/* - * Presents a ws-policy attachment. - */ -public class WSPolicyAttachment<T> extends PolicyModel { - private T content; - - public T getContent() { - return content; - } - - public void setContent(T content) { - this.content = content; - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java deleted file mode 100644 index 7ae91811b6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WireDefinition.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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.spi.model; - -import java.net.URI; - -/** - * Represents a wire specified in an assembly - * - * @version $Rev$ $Date$ - */ -public class WireDefinition extends ModelObject { - private URI source; - private URI target; - - public URI getSource() { - return source; - } - - public void setSource(URI source) { - this.source = source; - } - - public URI getTarget() { - return target; - } - - public void setTarget(URI target) { - this.target = target; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java deleted file mode 100644 index d66d09bcf3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.spi.idl.ElementInfo; -import org.apache.tuscany.spi.idl.XMLType; - -/** - * The "Wrapper Style" WSDL operation is defined by The Java API for XML-Based - * Web Services (JAX-WS) 2.0 specification, section 2.3.1.2 Wrapper Style. <p/> - * A WSDL operation qualifies for wrapper style mapping only if the following - * criteria are met: - * <ul> - * <li>(i) The operation’s input and output messages (if present) each contain - * only a single part - * <li>(ii) The input message part refers to a global element declaration whose - * localname is equal to the operation name - * <li>(iii) The output message part refers to a global element declaration - * <li>(iv) The elements referred to by the input and output message parts - * (henceforth referred to as wrapper elements) are both complex types defined - * using the xsd:sequence compositor - * <li>(v) The wrapper elements only contain child elements, they must not - * contain other structures such as wildcards (element or attribute), - * xsd:choice, substitution groups (element references are not permitted) or - * attributes; furthermore, they must not be nillable. - * </ul> - * - * @version $Rev$ $Date$ - */ -public class WrapperInfo { - private ElementInfo inputWrapperElement; - - private ElementInfo outputWrapperElement; - - private List<ElementInfo> inputChildElements; - - private List<ElementInfo> outputChildElements; - - private DataType<List<DataType<XMLType>>> unwrappedInputType; - - private DataType<XMLType> unwrappedOutputType; - - private String dataBinding; - - public WrapperInfo(String dataBinding, - ElementInfo inputWrapperElement, - ElementInfo outputWrapperElement, - List<ElementInfo> inputElements, - List<ElementInfo> outputElements) { - super(); - this.dataBinding = dataBinding; - this.inputWrapperElement = inputWrapperElement; - this.outputWrapperElement = outputWrapperElement; - this.inputChildElements = inputElements; - this.outputChildElements = outputElements; - } - - /** - * @return the inputElements - */ - public List<ElementInfo> getInputChildElements() { - return inputChildElements; - } - - /** - * @return the inputWrapperElement - */ - public ElementInfo getInputWrapperElement() { - return inputWrapperElement; - } - - /** - * @return the outputElements - */ - public List<ElementInfo> getOutputChildElements() { - return outputChildElements; - } - - /** - * @return the outputWrapperElement - */ - public ElementInfo getOutputWrapperElement() { - return outputWrapperElement; - } - - /** - * @return the unwrappedInputType - */ - public DataType<List<DataType<XMLType>>> getUnwrappedInputType() { - if (unwrappedInputType == null) { - List<DataType<XMLType>> childTypes = new ArrayList<DataType<XMLType>>(); - for (ElementInfo element : getInputChildElements()) { - DataType<XMLType> type = new DataType<XMLType>(dataBinding, Object.class, new XMLType(element)); - // type.setMetadata(ElementInfo.class.getName(), - // getElementInfo(element)); - childTypes.add(type); - } - unwrappedInputType = - new DataType<List<DataType<XMLType>>>("idl:unwrapped.input", Object[].class, childTypes); - } - return unwrappedInputType; - } - - /** - * @return the unwrappedOutputType - */ - public DataType<XMLType> getUnwrappedOutputType() { - if (unwrappedOutputType == null) { - List<ElementInfo> elements = getOutputChildElements(); - if (elements != null && elements.size() > 0) { - if (elements.size() > 1) { - // We don't support output with multiple parts - throw new IllegalArgumentException("Multi-part output is not supported"); - } - ElementInfo element = elements.get(0); - unwrappedOutputType = new DataType<XMLType>(dataBinding, Object.class, new XMLType(element)); - } - } - return unwrappedOutputType; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java deleted file mode 100644 index 8517977f0d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/IntentRegistry.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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.spi.policy; - -import java.util.Collection; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.Intent; -import org.apache.tuscany.spi.model.IntentName; - -/** - * The registry for intents. - * - * @version $Rev$ $Date$ - */ -public interface IntentRegistry { - - /** - * Register a intent. - * - * @param intent intent to register - */ - void register(Intent intent); - - /** - * Unregister a intent. - * - * @param intent intent to unregister - */ - void unRegister(Intent intent); - - /** - * Replace the profile intents in intentNameList with the real concrete intent. - * - * @param intentNameList intent list that may contains profile intents - * @param artifact QName of SCA artifact - * @return concrete intents list - */ - Collection<IntentName> inlineProfileIntent(Collection<IntentName> intentNameList, QName artifact); - - /** - * Whether the intent is appplicable for specified SCA artifact. - * - * @param intentName name of intent - * @param artifact QName of SCA artifact - * @return Whether the intent is appplicable for specified SCA artifact - */ - boolean isApplicable(IntentName intentName, QName artifact); - - /** - * Get a list including all qualified intents for a qulifiable intent. - * - * @param qualifiable qualifiable intent - * @param artifact QName of SCA artifact - * @return list including all qualified intents for a qulifiable intent. - */ - Collection<IntentName> getQualifiedIntents(IntentName qualifiable, QName artifact); - - /** - * Whether the intent is a qualified. - * - * @param name intent name. - * @return whether the intent is a qualified - */ - boolean isQualifiedIntent(IntentName name); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java deleted file mode 100644 index d65bc3edf1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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.spi.policy; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import org.apache.tuscany.spi.model.ServiceDefinition; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; - -/** - * A registry for policy builders that dispatches to the appropriate builder when converting an assembly to runtime - * artifacts. Policy builders operate on either a source- or target-side wires. - * - * @version $Rev$ $Date$ - */ -public interface PolicyBuilderRegistry { - - int INITIAL = 0; - int EXTENSION = 1; - int FINAL = 2; - - /** - * Registers a target-side policy builder. Called by extensions to register their builders. - * - * @param phase the phase hwne the builder must be run - * @param builder the builder to register - */ - void registerTargetBuilder(int phase, TargetPolicyBuilder builder); - - /** - * Registers a source-side policy builder. Called by extensions to register their builders. - * - * @param phase the phase hwne the builder must be run - * @param builder the builder to register - */ - void registerSourceBuilder(int phase, SourcePolicyBuilder builder); - - /** - * Evaluates source-side policy metadata for referenceDefinition and updates the curresponding collection of wire - * configurations - * - * @throws BuilderException - */ - void buildSource(AbstractReferenceDefinition referenceDefinition, OutboundWire wire) throws BuilderException; - - /** - * Evaluates target-side policy metadata for configured reference and updates the curresponding collection of wire - * configurations - * - * @throws BuilderException - */ - void buildTarget(ServiceDefinition serviceDefinition, InboundWire wire) throws BuilderException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java deleted file mode 100644 index fd4ba129d5..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyEngine.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.spi.policy; - -import java.util.Collection; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.IntentName; -import org.apache.tuscany.spi.model.PolicyModel; - -/** - * Responsible for matching concrete policy artifacts required by abstract intent name. - */ -public interface PolicyEngine { - - /** - * Retrieve policies which match the intents requirement on a SCA artifact. See SCA policy frame spec. 1.4.5 Guided - * Selection of PolicySets using Intents - * - * @param requires Intent names requred by the SCA artifact - * @param policySetName PolicySet names specify on the SCA artifact explicitly - * @param artifactType QName of SCA artifact type, which may be a abstract artifact type - * @return Collection contains all policy matching the intent requirement - */ - Collection<PolicyModel> getPolicy(IntentName[] requires, QName[] policySetName, QName artifactType); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java deleted file mode 100644 index f7a9e0922a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/PolicySetContainer.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.policy; - -import java.util.Collection; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.model.PolicySet; - -/** - * The host for PolicySet. - */ -public interface PolicySetContainer { - - /** - * Get all PolicySet of this container - * - * @return Collection contains all PolicySet of this container - */ - Collection<PolicySet> getAllPolicySet(); - - /** - * Get PolicySet by name. - * - * @param name QName of PolicySet. - * @return PolicySet with specified name - */ - PolicySet getPolicySet(QName name); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java deleted file mode 100644 index 3a5127f014..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SCATypeManager.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.spi.policy; - -import javax.xml.namespace.QName; - -public interface SCATypeManager { - - /** - * Whether the <code>subType</code> is a sub type of <code>type</code> or the type itself. - */ - boolean isTypeOf(QName subType, QName type); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java deleted file mode 100644 index 5e2c152052..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilder.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.policy; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import org.apache.tuscany.spi.wire.OutboundWire; - -/** - * Implementations contribute {@link org.apache.tuscany.spi.wire.Interceptor}s to handle source-side policy on a wire. - * - * @version $$Rev$$ $$Date$$ - */ -public interface SourcePolicyBuilder { - - /** - * Callback for attaching policy to a source-side wire - * - * @param definition the service definition - * @param wire the wire to attach policy to - * @throws BuilderException - */ - void build(AbstractReferenceDefinition definition, OutboundWire wire) throws BuilderException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java deleted file mode 100644 index 2bb06add8f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtension.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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.spi.policy; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Property; - -import org.apache.tuscany.spi.annotation.Autowire; - -/** - * A runtime extension point for {@link SourcePolicyBuilder}s - * - * @version $Rev$ $Date$ - */ -@EagerInit -public abstract class SourcePolicyBuilderExtension implements SourcePolicyBuilder { - protected int phase = PolicyBuilderRegistry.EXTENSION; - private PolicyBuilderRegistry registry; - - @Autowire - public void setRegistry(PolicyBuilderRegistry registry) { - this.registry = registry; - } - - @Property - public void setPhase(int phase) { - this.phase = phase; - } - - @Init - public void init() { - registry.registerSourceBuilder(phase, this); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java deleted file mode 100644 index c4b932fdd8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilder.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.policy; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.model.ServiceDefinition; -import org.apache.tuscany.spi.wire.InboundWire; - -/** - * Implementations contribute {@link org.apache.tuscany.spi.wire.Interceptor}s to handle target-side policy on a wire. - * - * @version $$Rev$$ $$Date$$ - */ -public interface TargetPolicyBuilder { - - /** - * Callback for attaching policy to a target-side wire - * - * @param definition the service definition - * @param wire the wire to attach policy to - * @throws BuilderException - */ - void build(ServiceDefinition definition, InboundWire wire) throws BuilderException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java deleted file mode 100644 index babcce50e9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtension.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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.spi.policy; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Property; - -import org.apache.tuscany.spi.annotation.Autowire; - -/** - * A runtime extension point for {@link org.apache.tuscany.spi.policy.SourcePolicyBuilder}s - * - * @version $Rev$ $Date$ - */ -@EagerInit -public abstract class TargetPolicyBuilderExtension implements TargetPolicyBuilder { - protected int phase = PolicyBuilderRegistry.EXTENSION; - private PolicyBuilderRegistry registry; - - @Autowire - public void setRegistry(PolicyBuilderRegistry registry) { - this.registry = registry; - } - - @Property - public void setPhase(int phase) { - this.phase = phase; - } - - @Init - public void init() { - registry.registerTargetBuilder(phase, this); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolutionException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolutionException.java deleted file mode 100644 index fd7394b6dd..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolutionException.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.resolver; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Denotes an error during the resolve phase as an assembly is evaluated - * - * @version $Rev$ $Date$ - */ -public abstract class ResolutionException extends TuscanyException { - - public ResolutionException() { - } - - public ResolutionException(String message) { - super(message); - } - - public ResolutionException(String message, String identifier) { - super(message, identifier); - } - - public ResolutionException(String message, Throwable cause) { - super(message, cause); - } - - public ResolutionException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public ResolutionException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/Resolver.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/Resolver.java deleted file mode 100644 index 036d43eae3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/Resolver.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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.spi.resolver; - -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Implementations are responsible for resolving resources referenced by an assembly model object - * - * @version $Rev$ $Date$ - */ -public interface Resolver<T extends ModelObject> { - - /** - * Processes a model object, resolving resources referenced by it - * - * @param object the model object to process - * @throws ResolutionException - */ - void resolve(T object) throws ResolutionException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolverRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolverRegistry.java deleted file mode 100644 index 62bdb8d52d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/resolver/ResolverRegistry.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.resolver; - -import org.apache.tuscany.spi.model.ModelObject; - -/** - * Registry for resolvers that handle resolution of resources referenced by assembly model elements - * <p/> - * Resolvers are contributed by system extensions - * - * @version $Rev$ $Date$ - */ -public interface ResolverRegistry { - /** - * Register a resolver for a model type. - * - * @param modelClass the type model element the resolver handles - * @param resolver the resolver to be registered - */ - <T extends ModelObject> void register(Class<T> modelClass, Resolver<T> resolver); - - /** - * Unregister a resolver for a model type. - * - * @param modelClass the model type whose builder should be unregistered - */ - <T extends ModelObject> void unregister(Class<T> modelClass); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java deleted file mode 100644 index 777cfbd3e9..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/VoidService.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.services; - -import org.osoa.sca.annotations.Service; - -/** - * Empty interface for a service component that has no operations. - * This can be used as a default service interface by components that - * do not wish the base class to be used as the interface as specified - * by the defaulting rules. - * - * @version $Rev$ $Date$ - */ -@Service -public interface VoidService { -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java deleted file mode 100644 index 4da522d196..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/Artifact.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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.spi.services.artifact; - -import java.net.URL; -import java.util.HashSet; -import java.util.Set; - -/** - * Description of some packaged artifact such as a JAR file or a Composite. - * - * @version $Rev$ $Date$ - */ -public class Artifact { - - /* Artifact group */ - private String group; - - /* Artifact name */ - private String name; - - /* Artifact version */ - private String version; - - /* Artifact classifier */ - private String classifier; - - /* Artifact type */ - private String type; - - /* Artifact url */ - private URL url; - - /* Transitive dependencies */ - private Set<Artifact> dependencies = new HashSet<Artifact>(); - - /** - * Adds a transitive dependency to the artifact. - * - * @param artifact Dependency to be added. - */ - public void addDependency(Artifact artifact) { - dependencies.add(artifact); - } - - /** - * Gets the URLs for all the transitive dependencies. - * - * @return Sets of URLs for all the transitive dependencies. - */ - public Set<URL> getUrls() { - - Set<URL> urls = new HashSet<URL>(); - - for (Artifact artifact : dependencies) { - urls.add(artifact.getUrl()); - } - urls.add(getUrl()); - - return urls; - - } - - /** - * Returns the name of a logical grouping to which this artifact belongs. For example, this might represent the - * original publisher of the artifact. - * - * @return the name of a logical grouping to which this artifact belongs - */ - public String getGroup() { - return group; - } - - /** - * Sets the name of a logical grouping to which this artifact belongs. - * - * @param group the name of a logical grouping to which this artifact belongs - */ - public void setGroup(String group) { - this.group = group; - } - - /** - * Returns the name of an artifact. - * - * @return the name of an artifact - */ - public String getName() { - return name; - } - - /** - * Sets the name of an artifact. - * - * @param name the name of an artifact - */ - public void setName(String name) { - this.name = name; - } - - /** - * Returns the version of an artifact. - * - * @return the version of an artifact - */ - public String getVersion() { - return version; - } - - /** - * Sets the version of an artifact. - * - * @param version the version of an artifact - */ - public void setVersion(String version) { - this.version = version; - } - - /** - * Returns a way of classifying an artifact. This can be used to distinguish variants of an artifact that provide - * the same function but which may have platform specific requirements. For example, it may contain the name of a - * hardware platform for artifacts that contain native code. - * - * @return a way of classifying an artifact - */ - public String getClassifier() { - return classifier; - } - - /** - * Sets a way of classifying an artifact - * - * @param classifier a way of classifying an artifact - */ - public void setClassifier(String classifier) { - this.classifier = classifier; - } - - /** - * Returns the type of artifact. - * - * @return the type of artifact - */ - public String getType() { - return type; - } - - /** - * Sets the type of artifact. - * - * @param type the type of artifact - */ - public void setType(String type) { - this.type = type; - } - - /** - * Returns a URL from which the artifact can be obtained. - * - * @return a URL from which the artifact can be obtained - */ - public URL getUrl() { - return url; - } - - /** - * Sets a URL from which the artifact can be obtained. - * - * @param url a URL from which the artifact can be obtained - */ - public void setUrl(URL url) { - this.url = url; - } - - - public String toString() { - StringBuilder buf = new StringBuilder(); - buf.append(group).append(':').append(name).append(':').append(version).append(':').append(type); - return buf.toString(); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java deleted file mode 100644 index b0f590e163..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/artifact/ArtifactRepository.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.spi.services.artifact; - -import java.util.Collection; - -/** - * Abstraction for a repository of SCA and other artifacts. - * - * @version $Rev$ $Date$ - */ -public interface ArtifactRepository { - /** - * Resolve an artifact. - * This ensures that the information associated with an artifact is fully populated; - * Specifically, after this operation the URL should contain a location where the artifact can be obtained. - * - * @param artifact the artifact to be resolved - */ - void resolve(Artifact artifact); - - /** - * Resolve a collection of Artifacts. - * - * @param artifacts a collection of artifacts to be resolved - * @see #resolve(Artifact) - */ - void resolve(Collection<? extends Artifact> artifacts); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java deleted file mode 100644 index a3dcaae21f..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * 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.spi.services.discovery; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.host.RuntimeInfo; -import org.apache.tuscany.spi.annotation.Autowire; -import org.osoa.sca.annotations.Destroy; -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; - -/** - * Abstract implementation of the discovery service. - * - * @version $Revision$ $Date$ - * - */ -@EagerInit -public abstract class AbstractDiscoveryService implements DiscoveryService { - - /** Runtime info. */ - private RuntimeInfo runtimeInfo; - - /** Request listeners. */ - private Map<QName, RequestListener> requestListenerMap = new ConcurrentHashMap<QName, RequestListener>(); - - /** Response listeners. */ - private Map<QName, ResponseListener> responseListenerMap = new ConcurrentHashMap<QName, ResponseListener>(); - - /** - * Registers a request listener for async messages. - * - * @param messageType Message type that can be handled by the listener. - * @param listener Recipient of the async message. - */ - public void registerRequestListener(QName messageType, RequestListener listener) { - requestListenerMap.put(messageType, listener); - } - - /** - * Registers a response listener for async messages. - * - * @param messageType Message type that can be handled by the listener. - * @param listener Recipient of the async message. - */ - public void registerResponseListener(QName messageType, ResponseListener listener) { - responseListenerMap.put(messageType, listener); - } - - /** - * Sets the runtime info for the runtime using the discovery service. - * - * @param runtimeInfo Runtime info for the runtime using the discovery service. - */ - @Autowire - public final void setRuntimeInfo(RuntimeInfo runtimeInfo) { - this.runtimeInfo = runtimeInfo; - } - - /** - * Starts the discovery service. - */ - @Init - public final void start() throws DiscoveryException { - onStart(); - } - - /** - * Stops the discovery service. - */ - @Destroy - public final void stop() throws DiscoveryException { - onStop(); - } - - /** - * Gets the runtime info for the runtime using the discovery service. - * - * @return Runtime info for the runtime using the discovery service. - */ - protected final RuntimeInfo getRuntimeInfo() { - return runtimeInfo; - } - - /** - * Returns the request listener for the specified message type. - * - * @param messageType Message type for the incoming message. - * @return Listener interested in the message type. - */ - public final RequestListener getRequestListener(QName messageType) { - return requestListenerMap.get(messageType); - } - - /** - * Returns the request listener for the specified message type. - * - * @param messageType Message type for the incoming message. - * @return Listener interested in the message type. - */ - public final ResponseListener getResponseListener(QName messageType) { - return responseListenerMap.get(messageType); - } - - /** - * Broadcasts the messages to all runtimes in the domain. - * - * @param content Message content. - * @return The message id. - * @throws DiscoveryException In case of discovery errors. - */ - public int broadcastMessage(XMLStreamReader content) throws DiscoveryException { - return sendMessage(null, content); - } - - /** - * Required to be overridden by sub-classes. - * - */ - protected abstract void onStart() throws DiscoveryException; - - /** - * Required to be overridden by sub-classes. - * - */ - protected abstract void onStop() throws DiscoveryException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryException.java deleted file mode 100644 index e85bd797b3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryException.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.services.discovery; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Checked exception thrown during discovery operations. - * - * @version $Revision$ $Date$ - * - */ -@SuppressWarnings("serial") -public class DiscoveryException extends TuscanyException { - - /** - * Initialises the exception message. - * @param message Message for the exception. - */ - public DiscoveryException(String message) { - super(message); - } - - /** - * Initialises the exception root cause. - * @param message Root cause for the exception. - */ - public DiscoveryException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java deleted file mode 100644 index 5c0a518323..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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.spi.services.discovery; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; - -/** - * Defines the abstraction that allows runtimes participating - * in the domain to discover each other and broadcast liveness - * to the admin server that holds the domain's runtime physical - * model and the domain-wide assembly model.. - * - * @version $Revision$ $Date$ - * - */ -public interface DiscoveryService { - - /** - * Sends a message to the specified runtime. The method returns a unique - * message id for the sent message. The consumers can use the message id for - * correlating responses to sent messages. - * - * @param runtimeId Runtime id of recipient. - * @param content Message content. - * @return The message id. - * @throws DiscoveryException In case of discovery errors. - */ - int sendMessage(String runtimeId, XMLStreamReader content) throws DiscoveryException; - - /** - * Broadcasts the messages to all runtimes in the domain. - * - * @param content Message content. - * @return The message id. - * @throws DiscoveryException In case of discovery errors. - */ - int broadcastMessage(XMLStreamReader content) throws DiscoveryException; - - /** - * Registers a request listener for async messages. Request listeners handle - * unslolicited async messages sent by recipients. - * - * @param messageType Message type that can be handled by the listener. - * @param listener Recipient of the async message. - */ - void registerRequestListener(QName messageType, RequestListener listener); - - /** - * Registers a response listener for async messages. Response listeners handle - * async meesages that are received in response to a request message that was - * originally sent. - * - * @param messageType Message type that can be handled by the listener. - * @param listener Recipient of the async message. - */ - void registerResponseListener(QName messageType, ResponseListener listener); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java deleted file mode 100644 index 8729757a6b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.spi.services.discovery; - -import javax.xml.stream.XMLStreamReader; - -/** - * Message listener for propogating callbacks. Request listeners handle - * unslolicited async messages sent by recipients. - * - * @version $Revision$ $Date$ - * - */ -public interface RequestListener { - - /** - * Callback for propogating async messages. - * @param content Message content. - * @return Response to the request message. - */ - XMLStreamReader onRequest(XMLStreamReader content); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java deleted file mode 100644 index 5b84ec4002..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.services.discovery; - -import javax.xml.stream.XMLStreamReader; - -/** - * Message listener for propogating callbacks. Response listeners handle - * async meesages that are received in response to a request message that was - * originally sent. - * - * @version $Revision$ $Date$ - * - */ -public interface ResponseListener { - - /** - * Callback for propogating async messages. - * @param content Message content. - * @param An optional message id if this was in response to a message that was sent. - */ - void onResponse(XMLStreamReader content, int messageId); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java deleted file mode 100644 index 10c2215bf6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/management/TuscanyManagementService.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.services.management; - -import org.apache.tuscany.host.management.ManagementService; -import org.apache.tuscany.spi.component.Component; - -/** - * Interface for the management service abstraction. The implementaion - * could be based on a variety of technologies including JMX, WSDM, - * SNMP etc. - * - * @version $Revision$ $Date$ - */ -public interface TuscanyManagementService extends ManagementService<Component> { - - /** - * Registers a component for management. - * - * @param name Name of the component. - * @param component Component to be registered. - */ - void registerComponent(String name, Component component); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java deleted file mode 100644 index 1210d05f5a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/DuplicateRecordException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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.spi.services.store; - -/** - * thrown when a record already exists during an insert operation - * - * @version $Rev$ $Date$ - */ -public class DuplicateRecordException extends StoreWriteException { - - public DuplicateRecordException(String owner, String identifier) { - super(null, owner, identifier); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java deleted file mode 100644 index 186d741c04..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/RecoveryListener.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.services.store; - -import java.util.UUID; - -/** - * Implementations receive callback events during a store recovery operation - * - * @version $Rev$ $Date$ - */ -public interface RecoveryListener { - - /** - * Signals the start of a recovery - */ - void onBegin(); - - /** - * Received when a record is recovered - * - * @param id - */ - void onRecord(UUID id); - - /** - * Signals the end of recovery - */ - void onEnd(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java deleted file mode 100644 index 7a09f90811..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/Store.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * 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.spi.services.store; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.event.EventPublisher; - -/** - * Implementations provide a persistent store for runtime data such as conversational state. A persistent store could be - * implemented in a durable fashion using JDBC or a journaling system, or using a non-durable mechanism such as an - * in-memory map. - * - * @version $Rev$ $Date$ - */ -public interface Store extends EventPublisher { - - /* Used to indicate an the default expiration offset for records for the store */ - long DEFAULT_EXPIRATION_OFFSET = -1; - - /* Used to indicate an entry should not expire */ - long NEVER = -2; - - /** - * Adds the given record to the store. Implementations may choose different strategies for writing data such as - * write-through or write-behind. - * - * @param owner the instance owner - * @param id the unique id of the record - * @param object the object representing the data to write - * @param expiration the time in milliseconds when the entry expires - * @throws StoreWriteException if an error occurs during the write operation - */ - void insertRecord(SCAObject owner, String id, Object object, long expiration) throws StoreWriteException; - - /** - * Updates a given record in the store, overwriting previous information. - * - * @param owner the instance owner - * @param id the unique id of the record - * @param object the object representing the data to write - * @param expiration the time in milliseconds when the entry expires - * @throws StoreWriteException - */ - void updateRecord(SCAObject owner, String id, Object object, long expiration) throws StoreWriteException; - - /** - * Returns the deserialized object in the store corresponding to the given id - * - * @param owner the instance owner - * @param id the unique id of the record - * @return the deserialized object or null if one is not found - * @throws StoreReadException - */ - Object readRecord(SCAObject owner, String id) throws StoreReadException; - - /** - * Removes a record from the store - * - * @param owner the instance owner - * @param id the unique id of the record - * @throws StoreWriteException - */ - void removeRecord(SCAObject owner, String id) throws StoreWriteException; - - /** - * Removes all records from the store - * - * @throws StoreWriteException - */ - void removeRecords() throws StoreWriteException; - - /** - * Initiates a recovery operation, for example during restart after a crash - * - * @param listener the listener to receive recovery callback events - * @throws StoreReadException - */ - void recover(RecoveryListener listener) throws StoreReadException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java deleted file mode 100644 index 59f1797490..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreException.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.spi.services.store; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Represents a generic exception thrown by a <code>Store</code> - * - * @version $Rev$ $Date$ - */ -public class StoreException extends TuscanyException { - private final String owner; - - public StoreException(String message, String owner, String identifier) { - super(message, identifier); - this.owner = owner; - } - - public StoreException(String message, String owner, String identifier, Throwable cause) { - super(message, identifier, cause); - this.owner = owner; - } - - public StoreException(String message, String owner, Throwable cause) { - super(message, cause); - this.owner = owner; - } - - public StoreException(Throwable cause) { - super(cause); - owner = null; - } - - public String getOwner() { - return owner; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java deleted file mode 100644 index fbb38dd362..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreExpirationEvent.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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.spi.services.store; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.event.Event; - -/** - * Fired when a store implementation expires a resource - * - * @version $Rev$ $Date$ - */ -public class StoreExpirationEvent implements Event { - private Object source; - private SCAObject owner; - private Object instance; - - /** - * Constructor. - * - * @param source the source of the event - * @param owner the owner of the expiring object - * @param instance the expiring object - */ - public StoreExpirationEvent(Object source, SCAObject owner, Object instance) { - assert source != null; - assert owner != null; - assert instance != null; - this.source = source; - this.owner = owner; - this.instance = instance; - } - - public Object getSource() { - return source; - } - - /** - * Returns the owner of the expiring object. - * - * @return the owner of the expiring object. - */ - public SCAObject getOwner() { - return owner; - } - - /** - * Returns the expiring object. - * - * @return the expiring object. - */ - public Object getInstance() { - return instance; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java deleted file mode 100644 index 4f5177bf45..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreMonitor.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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.spi.services.store; - -import org.apache.tuscany.api.annotation.LogLevel; - -/** - * A generic monintor interface for services to log events - * - * @version $Rev$ $Date$ - */ -public interface StoreMonitor { - - /** - * Signals the service has started - * - * @param msg - */ - @LogLevel("FINER") - void start(String msg); - - /** - * Signals the service has been shutdown - * - * @param msg - */ - @LogLevel("FINER") - void stop(String msg); - - /** - * Fired when recovery is started - */ - @LogLevel("FINER") - void beginRecover(); - - /** - * Fired when recovery is completed - */ - @LogLevel("FINER") - void endRecover(); - - /** - * Fired when a record is processed during recovery - * - * @param recordId the id of the record being recovered - */ - @LogLevel("FINER") - void recover(Object recordId); - - /** - * Signals an error event - * - * @param e the error - */ - @LogLevel("SEVERE") - void error(Throwable e); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java deleted file mode 100644 index 0f46ac6878..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreReadException.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.services.store; - -/** - * Thrown when an error occurs reading from persistent storage - * - * @version $Rev$ $Date$ - */ -public class StoreReadException extends StoreException { - - public StoreReadException(Throwable cause) { - super(cause); - } - - public StoreReadException(String message, String owner, String identifier) { - super(message, owner, identifier); - } - - public StoreReadException(String owner, String identifier, Throwable throwable) { - super(owner, identifier, throwable); - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java deleted file mode 100644 index 9eef91db9a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/store/StoreWriteException.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.spi.services.store; - -/** - * Thrown when an error occurs writing to persistent storage - * - * @version $Rev$ $Date$ - */ -public class StoreWriteException extends StoreException { - - public StoreWriteException(String message, String owner, String identifier) { - super(message, owner, identifier); - } - - public StoreWriteException(String message, String owner, String identifier, Throwable cause) { - super(message, owner, identifier, cause); - } - - public StoreWriteException(String message, String owner, Throwable cause) { - super(message, owner, cause); - } - - public StoreWriteException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java deleted file mode 100644 index 9675cdce53..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/NotificationListener.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.spi.services.work; - -/** - * A callback inyterface that can be optionally used for registering - * interest in status of asynchronously scheduled unit of work. - * - */ -public interface NotificationListener<T extends Runnable> { - - /** - * Callback method when the unit of work is accepted. - * - * @param work Work that was accepted. - */ - void workAccepted(T work); - - /** - * Callback method when the unit of work is successfully completed. - * - * @param work Work that was succesfully completed. - */ - void workCompleted(T work); - - /** - * Callback when the unit of work is started. - * - * @param work Unit of work that was started. - */ - void workStarted(T work); - - /** - * Callback when the unit of work is rejected. - * - * @param work Unit of work that was rejected. - */ - void workRejected(T work); - - /** - * Callnack when the unit of work fails to complete. - * - * @param work Unit of work that failed to complete. - * @param error Error that caused the unit of work to fail. - */ - void workFailed(T work, Throwable error); - - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java deleted file mode 100644 index 0824990c93..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkScheduler.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.services.work; - -/** - * Defines the contract for scheduling asychronous units of work. - * - * <p> - * Units of work can be scheduled with an optional <code>NotificationListener</code>. - * If a notification listener is specified, the caller will be notified regarding the - * status of the work. The unit of work can either be completed, rejected or completed - * with an error. If the work completed with an error, the caller is notfied with the - * error details. - * </p> - * - */ -public interface WorkScheduler { - - /** - * Schedules a unit of work for future execution. The notification listener - * is used to register interest in callbacks regarding the status of the work. - * - * @param work The unit of work that needs to be asynchronously executed. - * @param listener Notification listener for callbacks. - */ - <T extends Runnable>void scheduleWork(T work, NotificationListener<T> listener); - - /** - * Schedules a unit of work for future execution. The notification listener - * is used to register interest in callbacks regarding the status of the work. - * - * @param work The unit of work that needs to be asynchronously executed. - */ - <T extends Runnable>void scheduleWork(T work); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java deleted file mode 100644 index d13edab6a7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/work/WorkSchedulerException.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.spi.services.work; - -import org.apache.tuscany.api.TuscanyRuntimeException; - -/** - * Exception thrown by the work scheduler in case of unexpected exceptions. - * - * @version $Rev$ $Date$ - * - */ -@SuppressWarnings("serial") -public class WorkSchedulerException extends TuscanyRuntimeException { - - /** - * Wraps the root cause. - * - * @param cause Root cause for the exception. - */ - public WorkSchedulerException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java deleted file mode 100644 index cf495d7f18..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/SCAObjectInputStream.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.util; - -import java.io.IOException; -import java.io.InputStream; -import java.io.ObjectInputStream; -import java.io.ObjectStreamClass; - -import org.apache.tuscany.spi.component.SCAExternalizable; -import org.apache.tuscany.spi.component.WorkContext; - -/** - * Deserializes an object based on the thread context classloader and provides special handling for {@link - * SCAExternalizable} - * - * @version $Rev$ $Date$ - */ -public class SCAObjectInputStream extends ObjectInputStream { - private final ClassLoader classLoader; - private WorkContext context; - - public SCAObjectInputStream(InputStream in, WorkContext context) throws IOException, SecurityException { - super(in); - this.context = context; - this.classLoader = Thread.currentThread().getContextClassLoader(); - enableResolveObject(true); - } - - protected Class resolveClass(ObjectStreamClass streamClass) throws IOException, ClassNotFoundException { - return classLoader.loadClass(streamClass.getName()); - } - - protected Object resolveObject(Object obj) throws IOException { - if (obj instanceof SCAExternalizable) { - SCAExternalizable ext = (SCAExternalizable) obj; - ext.setWorkContext(context); - ext.reactivate(); - } - return obj; - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java deleted file mode 100644 index e8ade891b7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java +++ /dev/null @@ -1,401 +0,0 @@ -/* - * 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.spi.util.stax; - -import static org.osoa.sca.Constants.SCA_NS; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.XMLConstants; -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension; -import org.apache.tuscany.spi.model.InteractionScope; -import org.apache.tuscany.spi.model.Multiplicity; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * Utility for stax operations. - * - * @version $Revision$ $Date: 2007-02-01 05:37:32 +0530 (Thu, 01 Feb - * 2007) $ - */ -public abstract class StaxUtil { - - /** XML input factory. */ - private static final XMLInputFactory xmlFactory = - XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", StaxUtil.class - .getClassLoader()); - - private static final Map<String, Multiplicity> MULTIPLICITY = - new HashMap<String, Multiplicity>(4); - - static { - MULTIPLICITY.put("0..1", Multiplicity.ZERO_ONE); - MULTIPLICITY.put("1..1", Multiplicity.ONE_ONE); - MULTIPLICITY.put("0..n", Multiplicity.ZERO_N); - MULTIPLICITY.put("1..n", Multiplicity.ONE_N); - } - - private StaxUtil() { - } - - /** - * Convert a "multiplicity" attribute to the equivalent enum value. - * - * @param multiplicity the attribute to convert - * @param def the default value - * @return the enum equivalent - */ - public static Multiplicity multiplicity(String multiplicity, Multiplicity def) { - return multiplicity == null ? def : MULTIPLICITY.get(multiplicity); - } - - /** - * Convert a "scope" attribute to the equivalent enum value. Returns - * CONVERSATIONAL if the value equals (ignoring case) "conversational", - * otherwise returns NONCONVERSATIONAL. - * - * @param scope the attribute to convert - * @return the enum equivalent - */ - public static InteractionScope interactionScope(String scope) { - if ("conversational".equalsIgnoreCase(scope)) { - return InteractionScope.CONVERSATIONAL; - } else { - return InteractionScope.NONCONVERSATIONAL; - } - } - - public static List<Element> createPropertyValues(XMLStreamReader reader, - QName type, - QName element, - boolean many, - DocumentBuilder builder) throws XMLStreamException { - - final QName PROPERTY = new QName(SCA_NS, "property"); - List<Element> propertyValues = new ArrayList<Element>(); - Document ownerDocument = builder.newDocument(); - Element value = null; - do { - value = StaxUtil.createPropertyValue(reader, type, element, many, ownerDocument); - if (value != null) { - propertyValues.add(value); - } - } while (!PROPERTY.equals(reader.getName())); - - return propertyValues; - } - - - private static Element createDefaultRootElement(QName type, Document doc) { - - Element root = doc.createElementNS(null, "value"); - if (type != null) { - Attr xsi = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:xsi"); - xsi.setValue(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); - root.setAttributeNodeNS(xsi); - - String prefix = type.getPrefix(); - if (prefix == null || prefix.length() == 0) { - prefix = "ns"; - } - Attr typeXmlns = - doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:" + prefix); - typeXmlns.setValue(type.getNamespaceURI()); - root.setAttributeNodeNS(typeXmlns); - - Attr xsiType = - doc.createAttributeNS(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:type"); - xsiType.setValue(prefix + ":" + type.getLocalPart()); - root.setAttributeNodeNS(xsiType); - } - return root; - } - - - public static Element createPropertyValue(XMLStreamReader reader, - QName type, - QName element, - boolean many, - Document document - ) throws XMLStreamException { - if (element == null && type != null && SimpleTypeMapperExtension.isSimpleXSDType(type)) { - if (many) { - //if property is 'many' then each simple value is enclosed within an element - //with local name 'value' FIXME :(an assumption for now until specs is clear on this - return loadPropertyValue(reader, null, document); - } else { - // root element has no namespace and local name "value" - Element root = createDefaultRootElement(type, document); - //doc.appendChild(root); - loadPropertyValue(reader, root, document); - if (!isValueDefined(root)) { - return null; - } else { - return root; - } - } - } else { - return loadPropertyValue(reader, null, document); - } - } - - - private static boolean isValueDefined(Element value) { - if (value.hasChildNodes()) { - Node childNode = value.getFirstChild(); - if (childNode.getNodeType() == Document.ELEMENT_NODE - || (childNode.getNodeType() == Document.TEXT_NODE - && childNode.getTextContent().trim().length() > 0)) { - return true; - } - } - return false; - } - - - /** - * Load a property value specification from an StAX stream into a DOM - * Document. Only elements, text and attributes are processed; all comments - * and other whitespace are ignored. - * - * @param reader the stream to read from - * @param root the DOM node to load - */ - public static Element loadPropertyValue(XMLStreamReader reader, Element root, Document document) throws XMLStreamException { - Node current = root; - while (true) { - switch (reader.next()) { - case XMLStreamConstants.START_ELEMENT: - QName name = reader.getName(); - Element child = - document.createElementNS(name.getNamespaceURI(), name.getLocalPart()); - child.setPrefix(name.getPrefix()); - - // add the attributes for this element - int count = reader.getAttributeCount(); - for (int i = 0; i < count; i++) { - String ns = reader.getAttributeNamespace(i); - String localPart = reader.getAttributeLocalName(i); - String value = reader.getAttributeValue(i); - child.setAttributeNS(ns, localPart, value); - } - - // push the new element and make it the current one - if (root == null) { - root = child; - } else { - current.appendChild(child); - } - current = child; - - break; - case XMLStreamConstants.CDATA: - if (current != null) { - current.appendChild(document.createCDATASection(reader.getText())); - } - break; - case XMLStreamConstants.CHARACTERS: - if (current != null) { - current.appendChild(document.createTextNode(reader.getText())); - } - break; - case XMLStreamConstants.END_ELEMENT: - // if we are back at the root then we are done - if (current == root) { - return root; - } - - // pop the element off the stack - current = current.getParentNode(); - } - } - } - - /** - * Serializes the infoset in the stream reader. - * - * @param reader Stream reader. - * @return Serialized XML. - * @throws XMLStreamException In case of an xml stream error. - */ - public static final String serialize(XMLStreamReader reader) throws XMLStreamException { - - try { - - StringBuffer xml = new StringBuffer(); - - int event = reader.getEventType(); - while (true) { - - switch (event) { - case XMLStreamConstants.START_ELEMENT: - onStartElement(reader, xml); - onNsMappings(reader, xml); - onAttributes(reader, xml); - xml.append(">"); - break; - case XMLStreamConstants.CHARACTERS: - if (reader.isWhiteSpace()) { - break; - } - xml.append(reader.getText()); - break; - case XMLStreamConstants.END_ELEMENT: - onEndElement(reader, xml); - break; - } - - if (!reader.hasNext()) { - break; - } - event = reader.next(); - - } - return xml.toString(); - - } finally { - reader.close(); - } - - } - - /** - * Creates a stream reader to the serialized XML. - * - * @param xml Serialized XML to which reader is to be created. - * @return XML stream reader instance. - * @throws XMLStreamException In case of an xml stream error. - */ - public static final XMLStreamReader createReader(String xml) throws XMLStreamException { - - InputStream in = new ByteArrayInputStream(xml.getBytes()); - return xmlFactory.createXMLStreamReader(in); - - } - - /** - * Creates a stream reader to the serialized XML. - * - * @param xml XML stream to which reader is to be created. - * @return XML stream reader instance. - * @throws XMLStreamException In case of an xml stream error. - */ - public static final XMLStreamReader createReader(InputStream xml) throws XMLStreamException { - - return xmlFactory.createXMLStreamReader(xml); - - } - - /** - * Returns the qualified name of the document element. - * - * @param xml Serialized xml that needs to be checked. - * @return Qualified name of the document element. - * @throws XMLStreamException In case of an xml stream error. - */ - public static final QName getDocumentElementQName(String xml) throws XMLStreamException { - - XMLStreamReader reader = null; - try { - reader = createReader(xml); - reader.next(); - return reader.getName(); - } finally { - reader.close(); - } - - } - - /* - * Renders end element markup. - */ - private static void onEndElement(XMLStreamReader reader, StringBuffer xml) { - String name = getName(reader); - xml.append("</"); - xml.append(name); - xml.append(">"); - } - - /* - * Gets the fully-qualified name of the element. - */ - private static String getName(XMLStreamReader reader) { - QName qname = reader.getName(); - String namePrefix = qname.getPrefix(); - String localPart = qname.getLocalPart(); - String name = - namePrefix == null || "".equals(namePrefix) ? localPart : namePrefix + ":" + localPart; - return name; - } - - /* - * Render the attributes. - */ - private static void onAttributes(XMLStreamReader reader, StringBuffer xml) { - for (int i = 0, n = reader.getAttributeCount(); i < n; ++i) { - xml.append(" "); - xml.append(reader.getAttributeLocalName(i)); - xml.append("="); - xml.append("'"); - xml.append(reader.getAttributeValue(i)); - xml.append("'"); - } - } - - /* - * Renedr namespace mappings. - */ - private static void onNsMappings(XMLStreamReader reader, StringBuffer xml) { - for (int i = 0, n = reader.getNamespaceCount(); i < n; ++i) { - String prefix = reader.getNamespacePrefix(i); - prefix = prefix == null ? prefix = "xmlns" : "xmlns:" + prefix; - xml.append(" "); - xml.append(prefix); - xml.append("="); - xml.append("'"); - xml.append(reader.getNamespaceURI(i)); - xml.append("'"); - } - } - - /* - * Render start element. - */ - private static void onStartElement(XMLStreamReader reader, StringBuffer xml) { - xml.append("<"); - String name = getName(reader); - xml.append(name); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java deleted file mode 100644 index 77bc189bb2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.spi.wire; - -/** - * Base class for dispatching an invocation through an {@link InboundInvocationChain} - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractInboundInvocationHandler { - - /** - * Dispatches a client request made on a proxy - */ - public Object invoke(InboundInvocationChain chain, TargetInvoker invoker, Object[] args) throws Throwable { - Interceptor headInterceptor = chain.getHeadInterceptor(); - if (headInterceptor == null) { - // short-circuit the dispatch and invoke the target directly - if (chain.getTargetInvoker() == null) { - throw new AssertionError("No target invoker [" + chain.getOperation().getName() + "]"); - } - return chain.getTargetInvoker().invokeTarget(args, TargetInvoker.NONE); - } else { - Message msg = new MessageImpl(); - msg.setTargetInvoker(invoker); - msg.setBody(args); - Message resp; - // dispatch the wire down the chain and get the response - resp = headInterceptor.invoke(msg); - Object body = resp.getBody(); - if (resp.isFault()) { - throw (Throwable) body; - } - return body; - } - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java deleted file mode 100644 index 2ac99e2a60..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * 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.spi.wire; - -import java.lang.reflect.InvocationTargetException; -import java.util.LinkedList; - -import org.apache.tuscany.spi.model.InteractionScope; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * Base class for performing invocations on an outbound chain. Subclasses are responsible for retrieving and supplying - * the appropriate chain, target invoker and invocation arguments. - * - * @version $Rev$ $Date$ - */ -public abstract class AbstractOutboundInvocationHandler { - private boolean conversationStarted; - - protected Object invoke(OutboundInvocationChain chain, - TargetInvoker invoker, - Object[] args, - Object correlationId, - LinkedList<Object> callbackRoutingChain) - throws Throwable { - Interceptor headInterceptor = chain.getHeadInterceptor(); - if (headInterceptor == null) { - try { - // short-circuit the dispatch and invoke the target directly - TargetInvoker targetInvoker = chain.getTargetInvoker(); - if (targetInvoker == null) { - String name = chain.getOperation().getName(); - throw new AssertionError("No target invoker [" + name + "]"); - } - return targetInvoker.invokeTarget(args, TargetInvoker.NONE); - } catch (InvocationTargetException e) { - // the cause was thrown by the target so throw it - throw e.getCause(); - } - } else { - Message msg = new MessageImpl(); - msg.setTargetInvoker(invoker); - Object fromAddress = getFromAddress(); - if (fromAddress != null && callbackRoutingChain != null) { - throw new AssertionError("Can't use both a from address and callback routing chain"); - } - if (fromAddress != null) { - msg.pushFromAddress(fromAddress); - } - if (correlationId != null) { - msg.setCorrelationId(correlationId); - } - if (callbackRoutingChain != null) { - msg.setCallbackRoutingChain(callbackRoutingChain); - } - Operation operation = chain.getOperation(); - ServiceContract contract = operation.getServiceContract(); - if (InteractionScope.CONVERSATIONAL.equals(contract.getInteractionScope())) { - int sequence = chain.getOperation().getConversationSequence(); - if (sequence == Operation.CONVERSATION_END) { - msg.setConversationSequence(TargetInvoker.END); - conversationStarted = false; - } else if (sequence == Operation.CONVERSATION_CONTINUE) { - if (conversationStarted) { - msg.setConversationSequence(TargetInvoker.CONTINUE); - } else { - conversationStarted = true; - msg.setConversationSequence(TargetInvoker.START); - } - } - } - msg.setBody(args); - // dispatch the wire down the chain and get the response - Message resp = headInterceptor.invoke(msg); - Object body = resp.getBody(); - if (resp.isFault()) { - throw (Throwable) body; - } - return body; - } - } - - protected Object getFromAddress() { - // Default to null, only needed in outbound (forward) direction - return null; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java deleted file mode 100644 index d557fb84a3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundInvocationChain.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.spi.wire; - -/** - * A set of interceptors associated with the inbound side of a wire for an operation. - * - * @version $$Rev$$ $$Date$$ - */ -public interface InboundInvocationChain extends InvocationChain { - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java deleted file mode 100644 index ef7e3e2980..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InboundWire.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * 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.spi.wire; - -import java.util.Map; - -import org.apache.tuscany.spi.model.Operation; - -/** - * Implementations are responsible for managing the inbound side of a wire, including the invocation chains associated - * with each service operation. - * - * @version $$Rev$$ $$Date$$ - */ -public interface InboundWire extends Wire { - - /** - * Returns the name of the target service of the wire - */ - String getServiceName(); - - /** - * Sets the name of the target service of the wire - */ - void setServiceName(String name); - - /** - * Returns the invocation chain for each operation on a service specified by a reference or a target - * service. - */ - Map<Operation<?>, InboundInvocationChain> getInvocationChains(); - - /** - * Adds the collection of invocation chains keyed by operation - */ - void addInvocationChains(Map<Operation<?>, InboundInvocationChain> chains); - - /** - * Adds the invocation chain associated with the given operation - */ - void addInvocationChain(Operation<?> operation, InboundInvocationChain chain); - - /** - * Returns the callback invocation configuration for each operation on a service specified by a reference or a - * target service. - */ - Map<Operation<?>, OutboundInvocationChain> getSourceCallbackInvocationChains(Object targetAddr); - - /** - * Adds the collection of callback invocation chains keyed by operation for a given target addr - */ - void addSourceCallbackInvocationChains(Object targetAddr, Map<Operation<?>, OutboundInvocationChain> chains); - - /** - * Adds the callback invocation chain associated with the given operation for a given target addr - */ - void addSourceCallbackInvocationChain(Object targetAddr, Operation<?> operation, OutboundInvocationChain chain); - - /** - * Returns the name of the callback associated with the service of the wire - */ - String getCallbackReferenceName(); - - /** - * Sets the name of the callback associated with the service of the wire - */ - void setCallbackReferenceName(String callbackReferenceName); - - /** - * Set when a wire can be optimized; that is when no handlers or interceptors exist on either end - */ - void setTargetWire(OutboundWire wire); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java deleted file mode 100644 index 114df5a55c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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.spi.wire; - -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; - -import org.apache.tuscany.api.TuscanyException; - -/** - * Denotes imcompatible service contracts for a wire - * - * @version $Rev$ $Date$ - */ -public class IncompatibleServiceContractException extends TuscanyException { - private static final long serialVersionUID = 5127478601823295587L; - private final ServiceContract<?> source; - private final ServiceContract<?> target; - private final Operation<?> sourceOperation; - private final Operation<?> targetOperation; - - public IncompatibleServiceContractException(String message, ServiceContract<?> source, ServiceContract<?> target) { - super(message, (String) null); - this.source = source; - this.target = target; - this.sourceOperation = null; - this.targetOperation = null; - } - - - public IncompatibleServiceContractException(String message, - ServiceContract<?> source, - ServiceContract<?> target, - Operation<?> sourceOperation, Operation<?> targetOperation) { - super(message, (String) null); - this.source = source; - this.target = target; - this.sourceOperation = sourceOperation; - this.targetOperation = targetOperation; - } - - public ServiceContract<?> getTarget() { - return target; - } - - public ServiceContract<?> getSource() { - return source; - } - - public Operation<?> getSourceOperation() { - return sourceOperation; - } - - public Operation<?> getTargetOperation() { - return targetOperation; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java deleted file mode 100644 index ad38ed1cf1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Interceptor.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.wire; - -/** - * Synchronous, around-style mediation associated with a client- or target- side wire. - * - * @version $Rev$ $Date$ - */ -public interface Interceptor { - - /** - * Process a synchronous wire - * - * @param msg the request Message for the wire - * @return the response Message from the wire - */ - Message invoke(Message msg); - - /** - * Sets the next interceptor - */ - void setNext(Interceptor next); - - /** - * Returns the next interceptor or null - */ - Interceptor getNext(); - - /** - * Returns true if the interceptor can be optimized away from a wire - */ - boolean isOptimizable(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java deleted file mode 100644 index 82e1a52adf..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationChain.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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.spi.wire; - -import org.apache.tuscany.spi.model.Operation; - -/** - * An inbound or outbound invocation pipeline for a service operation. Wires consist of 1..n invocation chains - * associated with the operations of the service contract the wire represents. Invocation chains are associated with the - * outbound or inbound side of a wire are bridged or "connected" when an assembly is processed. Outbound chains are only - * connected to inbound chains and vice versa. - * <p/> - * Invocation chains contain at least one {@link Interceptor} that process invocations in an around-style manner. In - * some scenarios, a service proxy may only contain inbound invocation chains, for example, when a service is resolved - * through a locate operation by a non-component client. In this case, there will be no outbound invocation chains and - * the target invoker will be held by the target-side and passed down the pipeline. - * <p/> - * A {@link Message} is used to pass data associated with an invocation through the chain. <code>Message</code>s contain - * a {@link TargetInvoker} responsible for dispatching to a target instance and may be cached on the source-side. - * Caching allows various optimizations such as avoiding target instance resolution when the client-side lifecycle scope - * is a shorter duration than the target. - * - * @version $Rev$ $Date$ - */ -public interface InvocationChain { - /** - * Returns the target operation for this invocation chain - */ - Operation getOperation(); - - /** - * Sets the target invoker to pass down the chain - */ - void setTargetInvoker(TargetInvoker invoker); - - /** - * Returns the target invoker that is passed down the chain - */ - TargetInvoker getTargetInvoker(); - - /** - * Adds an interceptor to the chain - */ - void addInterceptor(Interceptor interceptor); - - /** - * Adds an interceptor at the given position in the interceptor stack - * - * @param index the position in the interceptor stack to add the interceptor - * @param interceptor the interceptor to add - */ - void addInterceptor(int index, Interceptor interceptor); - - /** - * Returns the first interceptor in the chain - */ - Interceptor getHeadInterceptor(); - - /** - * Returns the last interceptor in the chain - */ - Interceptor getTailInterceptor(); - - /** - * Sets the head interceptor of the bridged target-side chain - */ - void setTargetInterceptor(Interceptor interceptor); - - /** - * Returns the head interceptor of the birdged target-side chain - */ - Interceptor getTargetInterceptor(); - - /** - * Signals to the chain that its configuration is complete. Implementations may use this callback to prepare their - * invocation chains. - */ - void prepare(); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java deleted file mode 100644 index c2ba19c48a..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationRuntimeException.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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.spi.wire; - -import org.osoa.sca.ServiceRuntimeException; - -/** - * Denotes a runtime exception thrown during an invocation over a wire - * - * @version $Rev$ $Date$ - */ -public class InvocationRuntimeException extends ServiceRuntimeException { - - public InvocationRuntimeException() { - super(); - } - - public InvocationRuntimeException(String message) { - super(message); - } - - public InvocationRuntimeException(String message, Throwable cause) { - super(message, cause); - } - - public InvocationRuntimeException(Throwable cause) { - super(cause); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java deleted file mode 100644 index e6fc43d889..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 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.spi.wire; - -import java.util.LinkedList; - -/** - * Represents a request, response, or exception flowing through a wire - * - * @version $Rev $Date - */ -public interface Message { - - /** - * Returns the body of the message, which will be the payload or parameters associated with the wire - */ - Object getBody(); - - /** - * Sets the body of the message. - */ - void setBody(Object body); - - /** - * Sets the target invoker to dispatch to when the message passes through the request side of the invocation chain - */ - void setTargetInvoker(TargetInvoker invoker); - - /** - * Sets the target invoker to dispatch to when the message passes through the request side of the invocation chain - */ - TargetInvoker getTargetInvoker(); - - /** - * Returns the latest 'address' of the SCAObject where this message originated - */ - Object popFromAddress(); - - /** - * Adds the latest 'address' of the SCAObject where this message originated - */ - void pushFromAddress(Object fromAddress); - - /** - * Returns the chain of SCAObject addresses - */ - LinkedList<Object> getCallbackRoutingChain(); - - /** - * Sets the chain of SCAObject addresses - */ - void setCallbackRoutingChain(LinkedList<Object> fromAddresses); - - /** - * Returns the id of the message - */ - Object getMessageId(); - - /** - * Sets the id of the message - */ - void setMessageId(Object messageId); - - /** - * Returns the correlation id of the message - */ - Object getCorrelationId(); - - /** - * Sets the correlation id of the message - */ - void setCorrelationId(Object correlationId); - - /** - * Test if the message represents a fault/exception - * - * @return true if the message body is a fault object, false is the body is a normal payload - */ - boolean isFault(); - - /** - * Set the message body with a fault object. After this method is called, isFault() returns true. - * - * @param fault The fault object represents an exception - */ - void setBodyWithFault(Object fault); - - /** - * Returns the conversational sequence the message is associated with, {@link TargetInvoker.NONE}, {@link - * TargetInvoker.START}, {@link TargetInvoker.CONTINUE}, or {@link TargetInvoker.END} - * - * @return the conversational sequence the message is associated with - */ - short getConversationSequence(); - - /** - * Sets the conversational sequence the message is associated with, - * - * @param sequence {@link TargetInvoker.NONE}, {@link TargetInvoker.START}, {@link TargetInvoker.CONTINUE}, or - * {@link TargetInvoker.END} - */ - void setConversationSequence(short sequence); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java deleted file mode 100644 index f179eb79b1..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageId.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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.spi.wire; - -/** - * A unique identifier for a message flowing on a wire, potentially end-to-end (ie, through more than one SCAObject to - * SCAObject hop). - */ -public class MessageId { - - private long timestamp; - - public MessageId() { - this.timestamp = System.currentTimeMillis(); - } - - public long getTimestamp() { - return timestamp; - } - - public String toString() { - return "MsgId[" + timestamp + "]"; - } - - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - final MessageId messageId = (MessageId) o; - return timestamp == messageId.timestamp; - } - - public int hashCode() { - return (int) (timestamp ^ (timestamp >>> 32)); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java deleted file mode 100644 index 728be85771..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * 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.spi.wire; - -import java.util.LinkedList; - -/** - * The default implementation of a message flowed through a wire during an invocation - * - * @version $Rev $Date - */ -public class MessageImpl implements Message { - private Object body; - private TargetInvoker invoker; - private LinkedList<Object> callbackRoutingChain; - private Object messageId; - private Object correlationId; - private boolean isFault; - private short conversationSequence; - - public MessageImpl() { - } - - public Object getBody() { - return body; - } - - public void setBody(Object body) { - this.isFault = false; - this.body = body; - } - - public void setTargetInvoker(TargetInvoker invoker) { - this.invoker = invoker; - } - - public TargetInvoker getTargetInvoker() { - return invoker; - } - - public Object popFromAddress() { - return callbackRoutingChain.removeFirst(); - } - - public void pushFromAddress(Object fromAddress) { - if (callbackRoutingChain == null) { - callbackRoutingChain = new LinkedList<Object>(); - } - callbackRoutingChain.addFirst(fromAddress); - } - - public LinkedList<Object> getCallbackRoutingChain() { - return callbackRoutingChain; - } - - public void setCallbackRoutingChain(LinkedList<Object> callbackRoutingChain) { - this.callbackRoutingChain = callbackRoutingChain; - } - - public Object getMessageId() { - return messageId; - } - - public void setMessageId(Object messageId) { - this.messageId = messageId; - } - - public Object getCorrelationId() { - return correlationId; - } - - public void setCorrelationId(Object correlationId) { - this.correlationId = correlationId; - } - - public boolean isFault() { - return isFault; - } - - public void setBodyWithFault(Object fault) { - this.isFault = true; - this.body = fault; - } - - public TargetInvoker getInvoker() { - return invoker; - } - - public void setInvoker(TargetInvoker invoker) { - this.invoker = invoker; - } - - public short getConversationSequence() { - return conversationSequence; - } - - public void setConversationSequence(short conversationSequence) { - this.conversationSequence = conversationSequence; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java deleted file mode 100644 index 7c20efeca8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundChainHolder.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.apache.tuscany.spi.wire; - -/** - * A holder used to associate an wire chain with a local copy of a target invoker that was previously cloned from the - * chain master - * - * @version $Rev$ $Date$ - */ -public class OutboundChainHolder implements Cloneable { - OutboundInvocationChain chain; - TargetInvoker cachedInvoker; - - public OutboundChainHolder(OutboundInvocationChain config) { - this.chain = config; - } - - public OutboundInvocationChain getChain() { - return chain; - } - - public TargetInvoker getCachedInvoker() { - return cachedInvoker; - } - - public void setCachedInvoker(TargetInvoker invoker) { - this.cachedInvoker = invoker; - } - - @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"}) - @Override - public OutboundChainHolder clone() { - try { - return (OutboundChainHolder) super.clone(); - } catch (CloneNotSupportedException e) { - throw new AssertionError(); - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java deleted file mode 100644 index b15678a4a8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundInvocationChain.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.spi.wire; - -/** - * Responsible for flowing a request to a target service and invoking an operation. - * - * @version $$Rev$$ $$Date$$ - */ -public interface OutboundInvocationChain extends InvocationChain { - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java deleted file mode 100644 index cf37fe84d7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * 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.spi.wire; - -import java.util.Map; - -import org.apache.tuscany.spi.QualifiedName; -import org.apache.tuscany.spi.model.Operation; - -/** - * Implementations are responsible for managing the reference side of a wire, including the invocation chains associated - * with each service operation. An <code>OutboundWire</code> is connected to an {@link InboundWire} through their - * invocation chains. - * - * @version $$Rev$$ $$Date$$ - */ -public interface OutboundWire extends Wire { - - /** - * Returns the name of the source reference - */ - String getReferenceName(); - - /** - * Sets the name of the source reference - */ - void setReferenceName(String name); - - /** - * Returns the name of the target - */ - QualifiedName getTargetName(); - - /** - * Sets the name of the target - */ - void setTargetName(QualifiedName name); - - boolean isAutowire(); - - void setAutowire(boolean val); - - /** - * Sets the callback interface type generated proxies implement - */ - void setCallbackInterface(Class<?> interfaze); - - /** - * Returns the callback interface type implemented by generated proxies - */ - Class<?> getCallbackInterface(); - - /** - * Returns the invocation configuration for each operation on a service specified by a reference or a target - * service. - */ - Map<Operation<?>, OutboundInvocationChain> getInvocationChains(); - - /** - * Adds the collection of invocation chains keyed by operation - */ - void addInvocationChains(Map<Operation<?>, OutboundInvocationChain> chains); - - /** - * Adds the invocation chain associated with the given operation - */ - void addInvocationChain(Operation<?> operation, OutboundInvocationChain chain); - - /** - * Returns the callback invocation configuration for each operation on a service specified by a reference or a - * target service. - */ - Map<Operation<?>, InboundInvocationChain> getTargetCallbackInvocationChains(); - - /** - * Adds the collection of callback invocation chains keyed by operation - */ - void addTargetCallbackInvocationChains(Map<Operation<?>, InboundInvocationChain> chains); - - /** - * Adds the callback invocation chain associated with the given operation - */ - void addTargetCallbackInvocationChain(Operation<?> operation, InboundInvocationChain chain); - - /** - * Set when a wire can be optimized; that is when no handlers or interceptors exist on either end - */ - void setTargetWire(InboundWire wire); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java deleted file mode 100644 index 4805c75252..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.spi.wire; - -import org.apache.tuscany.spi.CoreRuntimeException; - -/** - * Denotes an error creating a proxy - * - * @version $$Rev$$ $$Date$$ - */ -public class ProxyCreationException extends CoreRuntimeException { - public ProxyCreationException() { - } - - public ProxyCreationException(String message) { - super(message); - } - - public ProxyCreationException(String message, String identifier) { - super(message, identifier); - } - - public ProxyCreationException(String message, Throwable cause) { - super(message, cause); - } - - public ProxyCreationException(String message, String identifier, Throwable cause) { - super(message, identifier, cause); - } - - public ProxyCreationException(Throwable cause) { - super(cause); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java deleted file mode 100644 index b2d4648a2e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/TargetInvoker.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.spi.wire; - -import java.lang.reflect.InvocationTargetException; - -/** - * Implementations are responsible for resolving a target and performing the actual invocation on it, for example, a - * component implementation instance or a service client. - * - * @version $Rev$ $Date$ - */ -public interface TargetInvoker extends Cloneable { - /* indicates that no conversational sequence is associated with the message */ - short NONE = 0; - /* indicates that the message initiates a conversation */ - short START = 1; - /* indicates that the message continues a conversation */ - short CONTINUE = 2; - /* indicates that the message ends a conversation */ - short END = 3; - - /** - * Invokes an operation on a target with the given payload. Used in optmized cases where messages do not need to be - * flowed such as in non-proxied wires. - * - * @param payload the invocation payload, typically an array of parameters - * @param sequence if the invocation is part of a conversation, the sequence. Valid values are {@link NONE} for - * non-conversational, {@link START} to begin a conversation, {@link CONTINUE} to continue a - * conversation, or {@link END} to end a conversation - * @throws InvocationTargetException - */ - Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException; - - /** - * Invokes an operation on a target with the given message - * - * @throws InvocationRuntimeException - */ - Message invoke(Message msg) throws InvocationRuntimeException; - - /** - * Determines whether the proxy can be cached on the client/source side - */ - boolean isCacheable(); - - /** - * Sets whether the target service instance may be cached by the invoker. This is a possible optimization when a - * wire is configured for a "down-scope" reference, i.e. a reference from a source of a shorter lifetime to a source - * of greater lifetime. - */ - void setCacheable(boolean cacheable); - - /** - * Determines if the target invoker can be discarded during wire optimization - */ - boolean isOptimizable(); - - /** - * Implementations must support deep cloning - */ - Object clone() throws CloneNotSupportedException; -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java deleted file mode 100644 index bece953a6e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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.spi.wire; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.component.SCAObject; -import org.apache.tuscany.spi.component.TargetResolutionException; -import org.apache.tuscany.spi.model.ServiceContract; - -/** - * The base wire type used to connect references and serviceBindings - * - * @version $$Rev$$ $$Date$$ - */ -public interface Wire { - QName LOCAL_BINDING = new QName("http://tuscany.apache.org/xmlns/sca/binding/1.0", "binding.local"); - - QName getBindingType(); - - /** - * Returns the non-proxied target instance for this wire - */ - Object getTargetService() throws TargetResolutionException; - - /** - * Returns the service contract associated with the wire - * - * @return the service contract associated with the wire - */ - ServiceContract getServiceContract(); - - /** - * Sets the contract associated with the wire - * - * @param contract the contract associated with the wire - */ - void setServiceContract(ServiceContract contract); - - /** - * Adds an interface type generated proxies implement - */ - void addInterface(Class<?> claz); - - /** - * Returns true if its invocation chains may be bypassed - */ - boolean isOptimizable(); - - /** - * Determines if the wire may be optimized - * - * @param optimizable true if the wire is optimizable - */ - void setOptimizable(boolean optimizable); - - /** - * Returns the SCAObject that contains this wire - */ - SCAObject getContainer(); - - /** - * Sets the name of the SCAObject that contains this wire - */ - void setContainer(SCAObject container); -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java deleted file mode 100644 index 325f26ba91..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireInvocationHandler.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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.spi.wire; - -import java.lang.reflect.Method; - -/** - * Implementations are responsible for dispatching an operation down an invocation chain - * - * @version $$Rev$$ $$Date$$ - */ -public interface WireInvocationHandler { - - Object invoke(Method method, Object[] args) throws Throwable; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java deleted file mode 100644 index a0b1192bde..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireObjectFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.spi.wire; - -import org.apache.tuscany.spi.ObjectCreationException; -import org.apache.tuscany.spi.ObjectFactory; - -/** - * @version $Rev$ $Date$ - */ -public class WireObjectFactory<T> implements ObjectFactory<T> { - private Class<T> interfaze; - private OutboundWire wire; - private WireService wireService; - - /** - * Constructor. - * - * @param interfaze the interface to inject on the client - * @param wire the backing wire - * @param wireService the wire service to create the proxy - */ - public WireObjectFactory(Class<T> interfaze, OutboundWire wire, WireService wireService) { - this.interfaze = interfaze; - this.wire = wire; - this.wireService = wireService; - } - - public T getInstance() throws ObjectCreationException { - return interfaze.cast(wireService.createProxy(interfaze, wire)); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java deleted file mode 100644 index c380d208d8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessor.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.spi.wire; - -/** - * Implementations are called after inbound and outbound wires are decorated with policy and before they are connected. - * - * @version $Rev$ $Date$ - */ -public interface WirePostProcessor { - - /** - * @param source - * @param target - */ - void process(OutboundWire source, InboundWire target); - - /** - * @param source - * @param target - */ - void process(InboundWire source, OutboundWire target); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java deleted file mode 100644 index 605a433590..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorExtension.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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.spi.wire; - -import org.osoa.sca.annotations.EagerInit; -import org.osoa.sca.annotations.Init; -import org.osoa.sca.annotations.Scope; - -import org.apache.tuscany.spi.annotation.Autowire; - -/** - * @version $Rev$ $Date$ - */ -@Scope("COMPOSITE") -@EagerInit -public abstract class WirePostProcessorExtension implements WirePostProcessor { - protected WirePostProcessorRegistry registry; - - @Autowire - public void setRegistry(WirePostProcessorRegistry registry) { - this.registry = registry; - } - - @Init - public void init() { - registry.register(this); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java deleted file mode 100644 index f012d119c3..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WirePostProcessorRegistry.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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.spi.wire; - -/** - * Acts as a delegating <code>WirePostProcessor</code>, delegating post-processing of wires after policies have been - * applied and source an targets have been matched but before they are connected. - * - * @version $Rev$ $Date$ - */ -public interface WirePostProcessorRegistry extends WirePostProcessor { - - - /** - * Registers a post-processor in the runtime - * - * @param processor the processor to register - */ - void register(WirePostProcessor processor); - - /** - * De-registers a post-processor in the runtime - * - * @param processor the processor to de-register - */ - void unregister(WirePostProcessor processor); - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java b/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java deleted file mode 100644 index f913b9ed80..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * 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.spi.wire; - -import java.lang.reflect.Method; -import java.util.Map; - -import org.apache.tuscany.spi.QualifiedName; -import org.apache.tuscany.spi.component.AtomicComponent; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.model.ComponentDefinition; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.model.ServiceDefinition; - -/** - * Creates proxies that implement Java interfaces and invocation handlers for fronting wires - * - * @version $$Rev$$ $$Date$$ - */ - -public interface WireService { - - /** - * Creates a Java proxy for the given wire - * - * @param interfaze the interface the proxy implements - * @param wire the wire to proxy @return the proxy - * @throws ProxyCreationException - */ - <T> T createProxy(Class<T> interfaze, Wire wire) throws ProxyCreationException; - - /** - * Creates a Java proxy for the given wire - * - * @param interfaze the interface the proxy implements - * @param wire the wire to proxy @return the proxy - * @param mapping the method to chain holder mapping to use in creating the proxy. Clients may cache and resuse - * this mapping for performance. - * @throws ProxyCreationException - */ - <T> T createProxy(Class<T> interfaze, Wire wire, Map<Method, OutboundChainHolder> mapping) - throws ProxyCreationException; - - /** - * Creates a Java proxy for the service contract callback - * - * @param interfaze the interface the proxy should implement - * @return the proxy - * @throws ProxyCreationException - */ - Object createCallbackProxy(Class<?> interfaze, InboundWire wire) throws ProxyCreationException; - - /** - * Creates an {@link WireInvocationHandler} for the given wire - * - * @param interfaze the client side interface - * @param wire the wire to create the invocation handler for - * @return the invocation handler - */ - WireInvocationHandler createHandler(Class<?> interfaze, Wire wire); - - /** - * Creates an outbound invocation chain for a given operation - * - * @param operation the operation to create the chain for - * @return the outbound invocation chain for a given operation - */ - OutboundInvocationChain createOutboundChain(Operation<?> operation); - - /** - * Creates an inbound invocation chain for a given operation - * - * @param operation the operation to create the chain for - * @return the inbound invocation chain for a given operation - */ - InboundInvocationChain createInboundChain(Operation<?> operation); - - /** - * Creates a wire for flowing inbound invocations to a service. The returned inbound chain will always contain at - * least one interceptor in order for outbound wires to connect to it. - * - * @param service the model representation of the service - * @return the wire for flowing inbound invocations to a service - */ - InboundWire createWire(ServiceDefinition service); - - /** - * Creates and injects wires for an atomic component - * - * @param component the component - * @param definition the model artifact representing the component - */ - void createWires(AtomicComponent component, ComponentDefinition<?> definition); - - /** - * Creates and injects wires for a reference binding - * - * @param referenceBinding the reference - * @param contract the model artifact representing the service contract for the reference - * @param targetName the qualified target name or null if the reference referes to a target outside the SCA - * domain - */ - void createWires(ReferenceBinding referenceBinding, ServiceContract<?> contract, QualifiedName targetName); - - /** - * Creates and injects wires for a service binding - * - * @param serviceBinding the serviceBinding - * @param contract the serviceBinding contract - * @param targetName the target nane - */ - void createWires(ServiceBinding serviceBinding, ServiceContract<?> contract, String targetName); - - /** - * Check the compatiblity of the source and the target service contracts.<p> A wire may only connect a source to a - * target if the target implements an interface that is compatible with the interface required by the source. The - * source and the target are compatible if: - * <p/> - * <ol> <li>the source interface and the target interface MUST either both be remotable or they are both local - * <li>the methods on the target interface MUST be the same as or be a superset of the methods in the interface - * specified on the source <li>compatibility for the individual method is defined as compatibility of the signature, - * that is method name, input types, and output types MUST BE the same. <li>the order of the input and output types - * also MUST BE the same. <li>the set of Faults and Exceptions expected by the source MUST BE the same or be a - * superset of those specified by the service. <li>other specified attributes of the two interfaces MUST match, - * including Scope and Callback interface </ol> - * <p/> - * <p>Please note this test is not symetric: the success of checkCompatibility(A, B) does NOT imply that - * checkCompatibility(B, A) - * - * @param source The source service contract - * @param target The target service contract - * @param ignoreCallback Indicate the callback should be checked - * @throws IncompatibleServiceContractException - * If the source service contract is not compatible with the target one - */ - void checkCompatibility(ServiceContract<?> source, ServiceContract<?> target, boolean ignoreCallback) - throws IncompatibleServiceContractException; - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/AssertionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/AssertionTestCase.java deleted file mode 100644 index 72739d56c4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/AssertionTestCase.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.spi; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class AssertionTestCase extends TestCase { - /** - * test case that confirms that JRE assertions are enabled - */ - public void testAssertionsAreEnabled() { - try { - assert false; - fail("assertions are not enabled"); - } catch (AssertionError e) { - // ok - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/QualifiedNameTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/QualifiedNameTestCase.java deleted file mode 100644 index 1f5faa5f9e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/QualifiedNameTestCase.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.spi; - -import junit.framework.TestCase; - -/** - * Tests parsing of naming patters - * - * @version $Rev$ $Date$ - */ -public class QualifiedNameTestCase extends TestCase { - - public void testSimpleName() throws Exception { - QualifiedName name = new QualifiedName("Foo"); - assertEquals("Foo", name.getPartName()); - assertEquals(null, name.getPortName()); - } - - public void testCompoundName() throws Exception { - QualifiedName name = new QualifiedName("Foo/Bar"); - assertEquals("Foo", name.getPartName()); - assertEquals("Bar", name.getPortName()); - } - - public void testCompoundMultiName() throws Exception { - QualifiedName name = new QualifiedName("Foo/Bar/Baz"); - assertEquals("Foo", name.getPartName()); - assertEquals("Bar/Baz", name.getPortName()); - } - - public void testInvalidName() throws Exception { - try { - new QualifiedName("/Foo/Bar"); - fail("Invalid name exception not thrown"); - } catch (InvalidNameException e) { - //expected - } - } - - public void testQualifiedName() throws Exception { - QualifiedName name = new QualifiedName("Foo/Bar"); - assertEquals("Foo/Bar", name.getQualifiedName()); - } - - public void testToString() throws Exception { - QualifiedName name = new QualifiedName("Foo/Bar"); - assertEquals("Foo/Bar", name.toString()); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/TuscanyRuntimeExceptionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/TuscanyRuntimeExceptionTestCase.java deleted file mode 100644 index 44e6bd7927..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/TuscanyRuntimeExceptionTestCase.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.spi; - -import junit.framework.TestCase; - -import org.apache.tuscany.api.TuscanyRuntimeException; - -/** - * @version $Rev$ $Date$ - */ -public class TuscanyRuntimeExceptionTestCase extends TestCase { - - public void testIdentifier() throws Exception { - TuscanyRuntimeException e = new TestException("bar", "foo"); - assertEquals("foo", e.getIdentifier()); - } - - public void testAddContext() throws Exception { - TuscanyRuntimeException e = new TestException(); - e.addContextName("foo"); - e.addContextName("bar"); - assertEquals("foo", e.returnContextNames().get(0)); - assertEquals("bar", e.returnContextNames().get(1)); - } - - public void testEmptyContext() throws Exception { - TuscanyRuntimeException e = new TestException(); - assertEquals(0, e.returnContextNames().size()); - } - - public void testEmptyGetMessage() throws Exception { - TuscanyRuntimeException e = new TestException(); - e.getMessage(); - } - - public void testFullMessage() throws Exception { - TuscanyRuntimeException e = new TestException(); - e.addContextName("foo"); - e.getMessage(); - } - - - private class TestException extends TuscanyRuntimeException { - - public TestException() { - } - - public TestException(String message, String identifier) { - super(message, identifier); - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/annotation/ConstructorAnnotationTest.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/annotation/ConstructorAnnotationTest.java deleted file mode 100644 index affd52df42..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/annotation/ConstructorAnnotationTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.annotation; - -import java.util.Arrays; - -import org.osoa.sca.annotations.Constructor; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class ConstructorAnnotationTest extends TestCase { - public void testSingleName() throws NoSuchMethodException { - Constructor ann = Foo1.class.getConstructor(String.class).getAnnotation(Constructor.class); - assertNotNull(ann); - String[] names = ann.value(); - assertTrue(Arrays.equals(new String[]{"prop"}, names)); - } - - public void testMultipleNames() throws NoSuchMethodException { - Constructor ann = Foo1.class.getConstructor(String.class, String.class).getAnnotation(Constructor.class); - assertNotNull(ann); - String[] names = ann.value(); - assertTrue(Arrays.equals(new String[]{"prop", "ref"}, names)); - } - - public static class Foo1 { - @Constructor({"prop", "ref"}) - public Foo1(String prop, String ref) { - } - - @Constructor("prop") - public Foo1(String prop) { - } - } - - public static class Foo2 { - public Foo2(@Autowire String prop, - @Autowire String ref) { - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java deleted file mode 100644 index 4f99d3b7ec..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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.spi.component; - -import org.apache.tuscany.spi.event.Event; -import org.apache.tuscany.spi.event.EventFilter; -import org.apache.tuscany.spi.event.RuntimeEventListener; -import org.apache.tuscany.spi.event.TrueFilter; -import org.apache.tuscany.spi.model.Scope; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class AbstractSCAObjectTestCase extends TestCase { - - public void testFireListener() { - SCAObject object = new TestSCAObject("foo", null); - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - listener.onEvent(EasyMock.same(event)); - EasyMock.expectLastCall(); - EasyMock.replay(listener); - object.addListener(listener); - object.publish(event); - } - - public void testRemoveListener() { - SCAObject object = new TestSCAObject("foo", null); - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - EasyMock.replay(listener); - object.addListener(listener); - object.removeListener(listener); - object.publish(event); - } - - public void testFalseFilterListener() { - SCAObject object = new TestSCAObject("foo", null); - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - EasyMock.replay(listener); - object.addListener(new FalseFilter(), listener); - object.publish(event); - } - - public void testTrueFilterListener() { - SCAObject object = new TestSCAObject("foo", null); - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - listener.onEvent(EasyMock.same(event)); - EasyMock.expectLastCall(); - EasyMock.replay(listener); - object.addListener(new TrueFilter(), listener); - object.publish(event); - } - - public void testToString() { - SCAObject object = new TestSCAObject("foo", null); - assertNotNull(object.toString()); - } - - public void testGetName() { - SCAObject object = new TestSCAObject("foo", null); - assertEquals("foo", object.getName()); - } - - - public void testToPrepare() throws Exception { - SCAObject object = new TestSCAObject("foo", null); - object.prepare(); - } - - public void testCanonicalName() { - CompositeComponent parent = EasyMock.createMock(CompositeComponent.class); - EasyMock.expect(parent.getCanonicalName()).andReturn("foo"); - EasyMock.replay(parent); - TestSCAObject test = new TestSCAObject("bar", parent); - assertEquals("foo/bar", test.getCanonicalName()); - } - - private class TestSCAObject extends AbstractSCAObject { - public TestSCAObject(String name, CompositeComponent parent) { - super(name, parent); - } - - public Scope getScope() { - return null; - } - - } - - private class TestEvent implements Event { - public Object getSource() { - return null; - } - } - - private class FalseFilter implements EventFilter { - - public boolean match(Event event) { - return false; - } - } - - -} - - - diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DOMHelperTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DOMHelperTestCase.java deleted file mode 100644 index 40843dea94..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DOMHelperTestCase.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import junit.framework.TestCase; - -/** - * - */ -public class DOMHelperTestCase extends TestCase { - private static final QName FOO_NAME = new QName("http://foo", "foo"); - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - } - - public void testDOM() throws Exception { - DocumentBuilder builder = DOMHelper.newDocumentBuilder(); - assertNotNull(builder); - Document document = DOMHelper.newDocument(); - assertNotNull(document); - Element element = DOMHelper.createElement(document, FOO_NAME); - document.appendChild(element); - QName name = DOMHelper.getQName(element); - assertEquals(FOO_NAME, name); - - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtensionTestCase.java deleted file mode 100644 index b78cddf70e..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/DataBindingExtensionTestCase.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import junit.framework.TestCase; - -import org.apache.tuscany.spi.databinding.DataBindingRegistry; -import org.apache.tuscany.spi.model.DataType; -import org.easymock.EasyMock; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * - */ -public class DataBindingExtensionTestCase extends TestCase { - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - } - - public void testExtension() { - DataBinding1 binding1 = new DataBinding1(Node.class); - assertEquals(Node.class.getName(), binding1.getName()); - DataType dt1 = new DataType(Element.class, null); - assertTrue(binding1.introspect(dt1, null)); - DataType dt2 = new DataType(String.class, null); - assertFalse(binding1.introspect(dt2, null)); - assertNull(binding1.getWrapperHandler()); - - DataBindingRegistry registry = EasyMock.createMock(DataBindingRegistry.class); - registry.register(binding1); - EasyMock.expect(registry.getDataBinding(Node.class.getName())).andReturn(binding1); - EasyMock.replay(registry); - - binding1.setDataBindingRegistry(registry); - binding1.init(); - assertNotNull(registry.getDataBinding(Node.class.getName())); - - DataBinding1 binding2 = new DataBinding1("dom", Node.class); - assertEquals("dom", binding2.getName()); - } - - private static class DataBinding1 extends DataBindingExtension { - - /** - * @param baseType - */ - public DataBinding1(Class<?> baseType) { - super(baseType); - } - - /** - * @param name - * @param baseType - */ - public DataBinding1(String name, Class<?> baseType) { - super(name, baseType); - } - - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java deleted file mode 100644 index c3b1f90741..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/SimpleTypeMapperExtensionTestCase.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import java.util.HashMap; -import java.util.Map; - -import javax.xml.namespace.NamespaceContext; - -import junit.framework.TestCase; - -import org.apache.tuscany.spi.databinding.TransformationContext; -import org.apache.tuscany.spi.idl.TypeInfo; -import org.easymock.EasyMock; - -/** - * - */ -public class SimpleTypeMapperExtensionTestCase extends TestCase { - - private static final Map<String, Object> SAMPLE_VALUES = new HashMap<String, Object>(); - - static { - SAMPLE_VALUES.put("anyURI", "http://www.w3.com"); - SAMPLE_VALUES.put("boolean", new String[] {"true", "false", "1", "0"}); - SAMPLE_VALUES.put("byte", new String[] {"-128", "127"}); - SAMPLE_VALUES.put("date", new String[] {"2004-03-15", "2002-09-24-06:00"}); - SAMPLE_VALUES.put("dateTime", "2003-12-25T08:30:00"); - SAMPLE_VALUES.put("decimal", "3.1415292"); - SAMPLE_VALUES.put("double", new String[] {"3.1415292", "INF", "NaN"}); - SAMPLE_VALUES.put("duration", new String[] {"P8M3DT7H33M2S", "P5Y2M10DT15H"}); - SAMPLE_VALUES.put("float", new String[] {"3.1415292", "INF", "NaN"}); - SAMPLE_VALUES.put("gDay", "---11"); - SAMPLE_VALUES.put("gMonth", "--02--"); - SAMPLE_VALUES.put("gMonthDay", "--02-14"); - SAMPLE_VALUES.put("gYear", "1999"); - SAMPLE_VALUES.put("gYearMonth", "1972-08"); - SAMPLE_VALUES.put("ID", "id-102"); - SAMPLE_VALUES.put("IDREF", "id-102"); - SAMPLE_VALUES.put("IDREFS", "id-102 id-103 id-100"); - SAMPLE_VALUES.put("int", "77"); - SAMPLE_VALUES.put("integer", "77"); - SAMPLE_VALUES.put("long", "214"); - SAMPLE_VALUES.put("negativeInteger", "-123"); - SAMPLE_VALUES.put("nonNegativeInteger", "2"); - SAMPLE_VALUES.put("nonPositiveInteger", "0"); - SAMPLE_VALUES.put("positiveInteger", "500"); - SAMPLE_VALUES.put("short", "476"); - SAMPLE_VALUES.put("string", "Joeseph"); - SAMPLE_VALUES.put("time", "13:02:00"); - SAMPLE_VALUES.put("base64Binary", "TWFu"); - SAMPLE_VALUES.put("hexBinary", "2CDB5F"); - SAMPLE_VALUES.put("QName", "f:foo"); - SAMPLE_VALUES.put("NOTATION", "f:bar"); - } - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - } - - public void testMap() throws Exception { - SimpleTypeMapperExtension extension = new SimpleTypeMapperExtension(); - TransformationContext context = EasyMock.createMock(TransformationContext.class); - Map<Class<?>, Object> metaData = new HashMap<Class<?>, Object>(); - EasyMock.expect(context.getMetadata()).andReturn(metaData).anyTimes(); - EasyMock.replay(context); - - NamespaceContext namespaceContext = EasyMock.createMock(NamespaceContext.class); - EasyMock.expect(namespaceContext.getNamespaceURI(EasyMock.eq("f"))).andReturn("http://foo") - .anyTimes(); - EasyMock.expect(namespaceContext.getPrefix(EasyMock.eq("http://foo"))).andReturn("f").anyTimes(); - EasyMock.replay(namespaceContext); - context.getMetadata().put(NamespaceContext.class, namespaceContext); - for (TypeInfo simpleType : SimpleTypeMapperExtension.XSD_SIMPLE_TYPES.values()) { - String name = simpleType.getQName().getLocalPart(); - Object value = SAMPLE_VALUES.get(name); - if (value instanceof String[]) { - for (String s : (String[])value) { - Object obj = extension.toJavaObject(simpleType.getQName(), s, context); - String str = extension.toXMLLiteral(simpleType.getQName(), obj, context); - assertNotNull(str); - // assertTrue("[" + name + "] " + s + " " + str, - // str.contains((String) s)); - } - } else if (value instanceof String) { - Object obj = extension.toJavaObject(simpleType.getQName(), (String)value, context); - String str = extension.toXMLLiteral(simpleType.getQName(), obj, context); - assertNotNull(str); - // assertTrue("[" + name + "] " + value + " " + str, - // str.contains((String) value)); - } - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/TransformerExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/TransformerExtensionTestCase.java deleted file mode 100644 index 6f5dfc90e2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/TransformerExtensionTestCase.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import javax.xml.stream.XMLStreamReader; - -import junit.framework.TestCase; - -import org.apache.tuscany.spi.databinding.Transformer; -import org.apache.tuscany.spi.databinding.TransformerRegistry; -import org.easymock.EasyMock; -import org.w3c.dom.Node; - -/** - * Test case for TransformerExtension - */ -public class TransformerExtensionTestCase extends TestCase { - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - } - - public void testExtension() { - MyTransformer transformer = new MyTransformer(); - assertEquals(Node.class.getName(), transformer.getSourceDataBinding()); - assertEquals(XMLStreamReader.class.getName(), transformer.getTargetDataBinding()); - assertEquals(50, transformer.getWeight()); - TransformerRegistry registry = EasyMock.createMock(TransformerRegistry.class); - registry.registerTransformer(EasyMock.isA(Transformer.class)); - EasyMock - .expect(registry.getTransformer(transformer.getSourceDataBinding(), transformer.getTargetDataBinding())) - .andReturn(transformer); - EasyMock.replay(registry); - transformer.setTransformerRegistry(registry); - transformer.init(); - assertSame(transformer, registry.getTransformer(transformer.getSourceDataBinding(), transformer - .getTargetDataBinding())); - } - - private static class MyTransformer extends TransformerExtension<Node, XMLStreamReader> { - - @Override - protected Class getSourceType() { - return Node.class; - } - - @Override - protected Class getTargetType() { - return XMLStreamReader.class; - } - - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverterTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverterTestCase.java deleted file mode 100644 index 4693025c11..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/extension/XSDDataTypeConverterTestCase.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.databinding.extension; - -import java.math.BigInteger; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import junit.framework.TestCase; - -/** - * - */ -public class XSDDataTypeConverterTestCase extends TestCase { - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - } - - public void testConvert() throws Exception { - XSDDataTypeConverter c = new XSDDataTypeConverter(); - assertEquals("123", c.parseAnySimpleType(c.printAnySimpleType("123"))); - assertEquals(true, c.parseBoolean(c.printBoolean(true))); - assertEquals(false, c.parseBoolean(c.printBoolean(false))); - assertEquals(123.0, c.parseDouble(c.printDouble(123.0))); - assertEquals(123.0f, c.parseFloat(c.printFloat(123.0f))); - assertEquals(64, c.parseByte(c.printByte((byte)64))); - assertEquals(123, c.parseInt(c.printInt(123))); - assertEquals(new BigInteger("123456"), c.parseInteger(c.printInteger(new BigInteger("123456")))); - assertEquals(123456L, c.parseLong(c.printLong(123456L))); - assertEquals((short)123, c.parseShort(c.printShort((short)123))); - - Calendar calendar = new GregorianCalendar(); - String s = c.printDate(calendar); - calendar = (GregorianCalendar)c.parseDate(s); - assertEquals(s, c.printDate(calendar)); - - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/event/AbstractEventPublisherTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/event/AbstractEventPublisherTestCase.java deleted file mode 100644 index 6efd61bea6..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/event/AbstractEventPublisherTestCase.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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.spi.event; - - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class AbstractEventPublisherTestCase extends TestCase { - EventPublisher publisher; - - public void testFireListener() { - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - listener.onEvent(EasyMock.same(event)); - EasyMock.expectLastCall(); - EasyMock.replay(listener); - publisher.addListener(listener); - publisher.publish(event); - EasyMock.verify(publisher); - } - - public void testRemoveListener() { - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - EasyMock.replay(listener); - publisher.addListener(listener); - publisher.removeListener(listener); - publisher.publish(event); - EasyMock.verify(publisher); - } - - public void testFalseFilterListener() { - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - EasyMock.replay(listener); - publisher.addListener(new FalseFilter(), listener); - publisher.publish(event); - EasyMock.verify(publisher); - } - - public void testTrueFilterListener() { - Event event = new TestEvent(); - RuntimeEventListener listener = EasyMock.createMock(RuntimeEventListener.class); - listener.onEvent(EasyMock.same(event)); - EasyMock.expectLastCall(); - EasyMock.replay(listener); - publisher.addListener(new TrueFilter(), listener); - publisher.publish(event); - EasyMock.verify(publisher); - } - - protected void setUp() throws Exception { - super.setUp(); - publisher = new AbstractEventPublisher() { - }; - } - - private class TestEvent implements Event { - public Object getSource() { - return null; - } - } - - private class FalseFilter implements EventFilter { - - public boolean match(Event event) { - return false; - } - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java deleted file mode 100644 index 1e81311765..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * 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.spi.extension; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; - -import org.apache.tuscany.spi.ObjectCreationException; -import org.apache.tuscany.spi.component.ScopeContainer; -import org.apache.tuscany.spi.component.TargetResolutionException; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.wire.InboundInvocationChain; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.InvocationRuntimeException; -import org.apache.tuscany.spi.wire.Message; -import org.apache.tuscany.spi.wire.TargetInvoker; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class AtomicComponentExtensionTestCase extends TestCase { - - public void testIsEagerInit() throws Exception { - TestExtension ext = new TestExtension(); - ext.isEagerInit(); - } - - public void testPrepare() throws Exception { - TestExtension ext = new TestExtension(); - Operation<Type> operation = new Operation<Type>("foo", null, null, null); - InboundInvocationChain chain = EasyMock.createMock(InboundInvocationChain.class); - EasyMock.expect(chain.getOperation()).andReturn(operation); - chain.prepare(); - chain.setTargetInvoker(EasyMock.isA(TargetInvoker.class)); - EasyMock.replay(chain); - - Map<Operation<?>, InboundInvocationChain> chains = new HashMap<Operation<?>, InboundInvocationChain>(); - chains.put(operation, chain); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getInvocationChains()).andReturn(chains); - EasyMock.expect(wire.getServiceName()).andReturn("Service").atLeastOnce(); - EasyMock.replay(wire); - - ext.addInboundWire(wire); - ext.prepare(); - - EasyMock.verify(chain); - EasyMock.verify(wire); - - } - - public void testInit() throws Exception { - TestExtension ext = new TestExtension(); - ext.init(null); - } - - public void testDestroy() throws Exception { - TestExtension ext = new TestExtension(); - ext.destroy(null); - } - - public void testInboundWire() throws Exception { - TestExtension ext = new TestExtension(); - ext.getInboundWire(null); - } - - public void testRemoveInstance() throws Exception { - ScopeContainer container = EasyMock.createMock(ScopeContainer.class); - EasyMock.expect(container.getScope()).andReturn(Scope.COMPOSITE); - container.remove(EasyMock.isA(AtomicComponentExtension.class)); - EasyMock.replay(container); - TestExtension ext = new TestExtension(container); - ext.removeInstance(); - EasyMock.verify(container); - } - - private class TestExtension extends AtomicComponentExtension { - public TestExtension() { - super(null, null, null, null, null, null, 0); - } - - public TestExtension(ScopeContainer scopeContainer) { - super(null, null, null, null, null, null, 0); - setScopeContainer(scopeContainer); - } - - public Object createInstance() throws ObjectCreationException { - return null; - } - - public Object getTargetInstance() throws TargetResolutionException { - return null; - } - - public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) { - return new TargetInvoker() { - - public Object invokeTarget(final Object payload, final short sequence) - throws InvocationTargetException { - return null; - } - - public Message invoke(Message msg) throws InvocationRuntimeException { - return null; - } - - public boolean isCacheable() { - return false; - } - - public void setCacheable(boolean cacheable) { - - } - - public boolean isOptimizable() { - return false; - } - - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - }; - } - - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtensionTestCase.java deleted file mode 100644 index 54229633eb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtensionTestCase.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.spi.extension; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.loader.LoaderException; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.apache.tuscany.spi.model.Implementation; - -import junit.framework.TestCase; -import org.easymock.EasyMock; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.eq; - -/** - * @version $Rev$ $Date$ - */ -public class ComponentTypeLoaderExtensionTestCase extends TestCase { - - public void testRegistrationDeregistration() throws Exception { - Extension loader = new Extension(); - LoaderRegistry registry = createMock(LoaderRegistry.class); - registry.registerLoader(eq(Implementation.class), eq(loader)); - registry.unregisterLoader(eq(Implementation.class)); - EasyMock.replay(registry); - loader.setLoaderRegistry(registry); - loader.start(); - loader.stop(); - } - - - private class Extension extends ComponentTypeLoaderExtension<Implementation> { - - protected Class<Implementation> getImplementationClass() { - return Implementation.class; - } - - public void load(CompositeComponent parent, Implementation implementation, - DeploymentContext deploymentContext) throws LoaderException { - - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java deleted file mode 100644 index 9d9df81104..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java +++ /dev/null @@ -1,302 +0,0 @@ -/* - * 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.spi.extension; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.tuscany.spi.component.AtomicComponent; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.ScopeContainer; -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.component.TargetInvokerCreationException; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; -import org.apache.tuscany.spi.wire.Wire; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class CompositeComponentExtensionAutowireTestCase extends TestCase { - private CompositeComponent composite; - private ServiceContract<?> contract; - private ServiceContract<?> contract2; - - public void testAutowireAtomicComponent() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - List<InboundWire> wires = new ArrayList<InboundWire>(); - wires.add(wire); - AtomicComponent component = EasyMock.createMock(AtomicComponent.class); - EasyMock.expect(component.getInboundWires()).andReturn(wires).atLeastOnce(); - EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce(); - EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce(); - EasyMock.replay(component); - composite.register(component); - assertEquals(wire, composite.resolveAutowire(Foo.class)); - } - - public void testAutowireSystemAtomicComponent() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - List<InboundWire> wires = new ArrayList<InboundWire>(); - wires.add(wire); - AtomicComponent component = EasyMock.createMock(AtomicComponent.class); - EasyMock.expect(component.getInboundWires()).andReturn(wires).atLeastOnce(); - EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce(); - EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce(); - EasyMock.replay(component); - composite.register(component); - assertEquals(wire, composite.resolveSystemAutowire(Foo.class)); - } - - public void testAutowireSystemCompositeComponent() throws Exception { - // configure service - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - - // configure system service - InboundWire systemWire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(systemWire.getServiceContract()).andReturn(contract2).atLeastOnce(); - EasyMock.expect(systemWire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(systemWire); - ServiceBinding systemBinding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(systemBinding.getInboundWire()).andReturn(systemWire).atLeastOnce(); - EasyMock.replay(systemBinding); - Service systemService = EasyMock.createMock(Service.class); - EasyMock.expect(systemService.getName()).andReturn("systemService").atLeastOnce(); - EasyMock.expect(systemService.isSystem()).andReturn(true).atLeastOnce(); - systemService.getServiceBindings(); - List<ServiceBinding> systemBindings = new ArrayList<ServiceBinding>(); - systemBindings.add(systemBinding); - EasyMock.expectLastCall().andReturn(systemBindings).atLeastOnce(); - EasyMock.replay(systemService); - - CompositeComponent child = new MockComposite(true); - child.register(service); - child.register(systemService); - composite.register(child); - // since the child is registered under the system hierarchy, its services should not be visible from the - // applicaiton hierarchy - assertNull(composite.resolveAutowire(Foo.class)); - assertEquals(systemWire, composite.resolveSystemAutowire(Bar.class)); - } - - public void testAutowireCompositeComponent() throws Exception { - // configure service - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - - // configure system service - InboundWire systemWire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(systemWire.getServiceContract()).andReturn(contract2).atLeastOnce(); - EasyMock.expect(systemWire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(systemWire); - ServiceBinding systemBinding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(systemBinding.getInboundWire()).andReturn(systemWire).atLeastOnce(); - EasyMock.replay(systemBinding); - Service systemService = EasyMock.createMock(Service.class); - EasyMock.expect(systemService.getName()).andReturn("systemService").atLeastOnce(); - EasyMock.expect(systemService.isSystem()).andReturn(true).atLeastOnce(); - systemService.getServiceBindings(); - List<ServiceBinding> systemBindings = new ArrayList<ServiceBinding>(); - systemBindings.add(systemBinding); - EasyMock.expectLastCall().andReturn(systemBindings).atLeastOnce(); - EasyMock.replay(systemService); - - CompositeComponent child = new MockComposite(); - child.register(service); - child.register(systemService); - composite.register(child); - // since the child is registered under the application hierarchy, its services should not be visible from the - // system hierarchy - assertEquals(wire, composite.resolveAutowire(Foo.class)); - assertNull(composite.resolveSystemAutowire(Bar.class)); - } - - public void testAutowireSystemService() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(wire, composite.resolveSystemExternalAutowire(Foo.class)); - } - - public void testAutowireService() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(wire, composite.resolveExternalAutowire(Foo.class)); - } - - public void testAutowireReference() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce(); - reference.getReferenceBindings(); - List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(reference); - composite.register(reference); - assertEquals(wire, composite.resolveAutowire(Foo.class)); - } - - public void testAutowireSystemReference() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(reference.isSystem()).andReturn(true).atLeastOnce(); - reference.getReferenceBindings(); - List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(reference); - composite.register(reference); - assertEquals(wire, composite.resolveSystemAutowire(Foo.class)); - } - - - protected void setUp() throws Exception { - super.setUp(); - contract = new ServiceContract<Object>(Foo.class) { - - }; - contract2 = new ServiceContract<Object>(Bar.class) { - - }; - composite = new MockComposite(); - } - - private interface Foo { - - } - - private interface Bar { - - } - - private static class MockComposite extends CompositeComponentExtension { - private boolean system; - - public MockComposite() { - super("foo", null, null, null); - } - - public MockComposite(boolean system) { - super("foo", null, null, null); - this.system = system; - } - - public boolean isSystem() { - return system; - } - - public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) - throws TargetInvokerCreationException { - throw new UnsupportedOperationException(); - } - - public void setScopeContainer(ScopeContainer scopeContainer) { - throw new UnsupportedOperationException(); - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java deleted file mode 100644 index 9eaedb04f4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - * 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.spi.extension; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.ReferenceBinding; -import org.apache.tuscany.spi.component.ScopeContainer; -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.component.ServiceBinding; -import org.apache.tuscany.spi.component.TargetInvokerCreationException; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; -import org.apache.tuscany.spi.wire.Wire; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class CompositeComponentExtensionTestCase extends TestCase { - private CompositeComponent composite; - private ServiceContract<?> contract; - - public void testDefaultInboundWire() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(wire, composite.getInboundWire(null)); - } - - public void testNoLocalBinding() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(new QName("foo", "foo")).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertNull(composite.getInboundWire("service")); - } - - public void testDefaultSystemInboundWire() throws Exception { - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce(); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce(); - service.getServiceBindings(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(wire, composite.getInboundSystemWire(null)); - } - - public void testMoreThanOneServiceGetDefault() throws Exception { - Service service1 = EasyMock.createMock(Service.class); - EasyMock.expect(service1.getName()).andReturn("service1").atLeastOnce(); - EasyMock.expect(service1.isSystem()).andReturn(false).atLeastOnce(); - service1.getServiceBindings(); - EasyMock.expectLastCall().andReturn(Collections.emptyList()).atLeastOnce(); - EasyMock.replay(service1); - - Service service2 = EasyMock.createMock(Service.class); - EasyMock.expect(service2.getName()).andReturn("service2").atLeastOnce(); - EasyMock.expect(service2.isSystem()).andReturn(false).atLeastOnce(); - service2.getServiceBindings(); - EasyMock.expectLastCall().andReturn(Collections.emptyList()).atLeastOnce(); - EasyMock.replay(service2); - - composite.register(service1); - composite.register(service2); - assertNull(composite.getInboundWire(null)); - assertNull(composite.getInboundSystemWire(null)); - } - - public void testInboundWire() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING); - wire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - service.getServiceBindings(); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertNotNull(composite.getInboundWire("service")); - } - - public void testInboundWires() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING); - wire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - service.getServiceBindings(); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(1, composite.getInboundWires().size()); - } - - public void testInboundWiresNonLocalBinding() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getBindingType()).andReturn(new QName("foo", "foo")); - wire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - service.getServiceBindings(); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(0, composite.getInboundWires().size()); - } - - - public void testGetOutboundWires() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire inboundWire = EasyMock.createMock(InboundWire.class); - inboundWire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(inboundWire); - - OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class); - outboundWire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.expect(outboundWire.getBindingType()).andReturn(Wire.LOCAL_BINDING); - EasyMock.replay(outboundWire); - - ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(inboundWire).atLeastOnce(); - EasyMock.expect(binding.getOutboundWire()).andReturn(outboundWire).atLeastOnce(); - EasyMock.replay(binding); - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.getName()).andReturn("reference").atLeastOnce(); - EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce(); - List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>(); - bindings.add(binding); - EasyMock.expect(reference.getReferenceBindings()).andReturn(bindings).atLeastOnce(); - EasyMock.replay(reference); - composite.register(reference); - Map<String, List<OutboundWire>> wires = composite.getOutboundWires(); - assertEquals(1, wires.get("reference").size()); - } - - public void testGetOutboundWiresWithNonLocalBinding() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - QName qName = new QName("foo", "foo"); - InboundWire inboundWire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(inboundWire.getBindingType()).andReturn(qName); - inboundWire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(inboundWire); - - OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class); - outboundWire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.expect(outboundWire.getBindingType()).andReturn(qName); - EasyMock.replay(outboundWire); - - ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(inboundWire).atLeastOnce(); - EasyMock.expect(binding.getOutboundWire()).andReturn(outboundWire).atLeastOnce(); - EasyMock.replay(binding); - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.getName()).andReturn("reference").atLeastOnce(); - EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce(); - List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>(); - bindings.add(binding); - EasyMock.expect(reference.getReferenceBindings()).andReturn(bindings).atLeastOnce(); - EasyMock.replay(reference); - composite.register(reference); - Map<String, List<OutboundWire>> wires = composite.getOutboundWires(); - assertEquals(0, wires.get("reference").size()); - } - - public void testInboundSystemWire() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING); - wire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - service.getServiceBindings(); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertNotNull(composite.getInboundSystemWire("service")); - } - - public void testInboundSystemWires() throws Exception { - ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) { - }; - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING); - wire.getServiceContract(); - EasyMock.expectLastCall().andReturn(contract).atLeastOnce(); - EasyMock.replay(wire); - ServiceBinding binding = EasyMock.createMock(ServiceBinding.class); - EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce(); - EasyMock.replay(binding); - - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.getName()).andReturn("service").atLeastOnce(); - EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce(); - List<ServiceBinding> bindings = new ArrayList<ServiceBinding>(); - bindings.add(binding); - service.getServiceBindings(); - EasyMock.expectLastCall().andReturn(bindings).atLeastOnce(); - EasyMock.replay(service); - composite.register(service); - assertEquals(wire, composite.getInboundSystemWires().iterator().next()); - } - - protected void setUp() throws Exception { - super.setUp(); - contract = new ServiceContract<Object>(Object.class) { - - }; - composite = new CompositeComponentExtension("foo", null, null, null) { - - public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) - throws TargetInvokerCreationException { - throw new UnsupportedOperationException(); - } - - public void setScopeContainer(ScopeContainer scopeContainer) { - throw new UnsupportedOperationException(); - } - }; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/LoaderExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/LoaderExtensionTestCase.java deleted file mode 100644 index 84175d8578..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/LoaderExtensionTestCase.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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.spi.extension; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; -import org.apache.tuscany.spi.loader.LoaderException; -import org.apache.tuscany.spi.loader.LoaderRegistry; -import org.apache.tuscany.spi.model.ModelObject; - -import junit.framework.TestCase; -import org.easymock.EasyMock; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.isA; - -/** - * @version $Rev$ $Date$ - */ -public class LoaderExtensionTestCase extends TestCase { - - @SuppressWarnings("unchecked") - public void testRegistrationDeregistration() throws Exception { - LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class); - registry.registerLoader(isA(QName.class), isA(Extension.class)); - expectLastCall(); - registry.unregisterLoader(isA(QName.class), isA(Extension.class)); - expectLastCall(); - EasyMock.replay(registry); - Extension loader = new Extension(registry); - loader.start(); - loader.stop(); - } - - - private static class Extension extends LoaderExtension { - - public Extension(LoaderRegistry registry) { - super(registry); - } - - public QName getXMLType() { - return new QName(""); - } - - public ModelObject load(CompositeComponent parent, - ModelObject object, XMLStreamReader reader, - DeploymentContext deploymentContext) throws XMLStreamException, LoaderException { - throw new AssertionError(); - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java deleted file mode 100644 index e48d72e7fb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.apache.tuscany.spi.extension; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.component.Reference; -import org.apache.tuscany.spi.component.TargetInvokerCreationException; -import org.apache.tuscany.spi.model.Operation; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.TargetInvoker; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class ReferenceBindingExtensionTestCase extends TestCase { - - public void testScope() throws Exception { - ReferenceBindingExtension binding = new MockBindingExtension(); - assertEquals(Scope.SYSTEM, binding.getScope()); - } - - public void testPrepare() throws Exception { - ReferenceBindingExtension binding = new MockBindingExtension(); - binding.prepare(); - } - - public void testIsSystemNoParent() throws Exception { - ReferenceBindingExtension binding = new MockBindingExtension(); - assertFalse(binding.isSystem()); - } - - public void testIsSystem() throws Exception { - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.isSystem()).andReturn(true); - EasyMock.replay(reference); - ReferenceBindingExtension binding = new MockBindingExtension(); - binding.setReference(reference); - assertTrue(binding.isSystem()); - } - - public void testIsNotSystem() throws Exception { - Reference reference = EasyMock.createMock(Reference.class); - EasyMock.expect(reference.isSystem()).andReturn(false); - EasyMock.replay(reference); - ReferenceBindingExtension binding = new MockBindingExtension(); - binding.setReference(reference); - assertFalse(binding.isSystem()); - } - - private static class MockBindingExtension extends ReferenceBindingExtension { - public MockBindingExtension() { - super(null, null); - } - - public QName getBindingType() { - return null; - } - - public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) - throws TargetInvokerCreationException { - return null; - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java deleted file mode 100644 index 60d7a4d908..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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.spi.extension; - -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.QualifiedName; -import org.apache.tuscany.spi.model.Operation; -import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION; -import org.apache.tuscany.spi.model.Scope; -import org.apache.tuscany.spi.model.ServiceContract; -import org.apache.tuscany.spi.wire.InboundInvocationChain; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.InvocationChain; -import org.apache.tuscany.spi.wire.OutboundWire; -import org.apache.tuscany.spi.wire.TargetInvoker; - -import junit.framework.TestCase; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.replay; - -/** - * @version $Rev$ $Date$ - */ -public class ReferenceTestCase extends TestCase { - - public void testScope() throws Exception { - TestReferenceBinding ref = new TestReferenceBinding(); - assertEquals(Scope.SYSTEM, ref.getScope()); - } - - public void testPrepare() throws Exception { - InboundInvocationChain chain = createMock(InboundInvocationChain.class); - Operation<Type> operation = new Operation<Type>("test", null, null, null, false, null, NO_CONVERSATION); - chain.setTargetInvoker(null); - expectLastCall(); - chain.getOperation(); - expectLastCall().andReturn(operation); - chain.prepare(); - expectLastCall(); - InboundWire wire = createMock(InboundWire.class); - wire.getInvocationChains(); - Map<Operation, InvocationChain> chains = new HashMap<Operation, InvocationChain>(); - chains.put(operation, chain); - expectLastCall().andReturn(chains); - OutboundWire outboundWire = createMock(OutboundWire.class); - outboundWire.getTargetName(); - expectLastCall().andReturn(new QualifiedName("foo/bar")); - replay(chain); - replay(wire); - replay(outboundWire); - TestReferenceBinding ref = new TestReferenceBinding(); - ref.setInboundWire(wire); - ref.setOutboundWire(outboundWire); - ref.prepare(); - } - - private class TestReferenceBinding extends ReferenceBindingExtension { - public TestReferenceBinding() { - super(null, null); - } - - public QName getBindingType() { - return null; - } - - public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation) { - return null; - } - - - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceBindingExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceBindingExtensionTestCase.java deleted file mode 100644 index 5570ee1fbb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceBindingExtensionTestCase.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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.spi.extension; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.spi.component.Service; -import org.apache.tuscany.spi.model.Scope; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class ServiceBindingExtensionTestCase extends TestCase { - - public void testScope() throws Exception { - ServiceBindingExtension binding = new ServiceBindingExtension(null, null) { - public QName getBindingType() { - return null; - } - }; - assertEquals(Scope.SYSTEM, binding.getScope()); - } - - public void testPrepare() throws Exception { - ServiceBindingExtension binding = new ServiceBindingExtension(null, null) { - public QName getBindingType() { - return null; - } - }; - binding.prepare(); - } - - public void testIsSystemNoParent() throws Exception { - ServiceBindingExtension binding = new ServiceBindingExtension(null, null) { - public QName getBindingType() { - return null; - } - }; - assertFalse(binding.isSystem()); - } - - public void testIsSystem() throws Exception { - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.isSystem()).andReturn(true); - EasyMock.replay(service); - ServiceBindingExtension binding = new ServiceBindingExtension(null, null) { - public QName getBindingType() { - return null; - } - }; - binding.setService(service); - assertTrue(binding.isSystem()); - } - - public void testIsNotSystem() throws Exception { - Service service = EasyMock.createMock(Service.class); - EasyMock.expect(service.isSystem()).andReturn(false); - EasyMock.replay(service); - ServiceBindingExtension binding = new ServiceBindingExtension(null, null) { - public QName getBindingType() { - return null; - } - }; - binding.setService(service); - assertFalse(binding.isSystem()); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java deleted file mode 100644 index 21d5ee763c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * 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.spi.extension; - -import java.lang.reflect.InvocationTargetException; -import java.util.LinkedList; - -import org.apache.tuscany.spi.component.WorkContext; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.Message; -import org.apache.tuscany.spi.wire.MessageImpl; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class TargetInvokerExtensionSequenceTestCase extends TestCase { - - @SuppressWarnings("unchecked") - public void testStart() { - Object from = new Object(); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.replay(wire); - WorkContext context; - context = EasyMock.createMock(WorkContext.class); - context.setCurrentCallbackRoutingChain(EasyMock.isA(LinkedList.class)); - EasyMock.replay(context); - ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class); - Target target = EasyMock.createMock(Target.class); - target.invokeStart("test"); - EasyMock.replay(target); - Invoker invoker = new Invoker(wire, context, monitor, target); - Message msg = new MessageImpl(); - msg.pushFromAddress(from); - msg.setBody("test"); - msg.setConversationSequence(Invoker.START); - invoker.invoke(msg); - EasyMock.verify(wire); - EasyMock.verify(context); - EasyMock.verify(target); - } - - @SuppressWarnings("unchecked") - public void testContinue() { - Object from = new Object(); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.replay(wire); - WorkContext context; - context = EasyMock.createMock(WorkContext.class); - context.setCurrentCallbackRoutingChain(EasyMock.isA(LinkedList.class)); - EasyMock.replay(context); - ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class); - Target target = EasyMock.createMock(Target.class); - target.invokeContinue("test"); - EasyMock.replay(target); - Invoker invoker = new Invoker(wire, context, monitor, target); - Message msg = new MessageImpl(); - msg.pushFromAddress(from); - msg.setBody("test"); - msg.setConversationSequence(Invoker.CONTINUE); - invoker.invoke(msg); - EasyMock.verify(wire); - EasyMock.verify(context); - EasyMock.verify(target); - } - - @SuppressWarnings("unchecked") - public void testEnd() { - Object from = new Object(); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.replay(wire); - WorkContext context; - context = EasyMock.createMock(WorkContext.class); - context.setCurrentCallbackRoutingChain(EasyMock.isA(LinkedList.class)); - EasyMock.replay(context); - ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class); - Target target = EasyMock.createMock(Target.class); - target.invokeEnd("test"); - EasyMock.replay(target); - Invoker invoker = new Invoker(wire, context, monitor, target); - Message msg = new MessageImpl(); - msg.pushFromAddress(from); - msg.setBody("test"); - msg.setConversationSequence(Invoker.END); - invoker.invoke(msg); - EasyMock.verify(wire); - EasyMock.verify(context); - EasyMock.verify(target); - } - - @SuppressWarnings("unchecked") - public void testNone() { - Object from = new Object(); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.replay(wire); - WorkContext context; - context = EasyMock.createMock(WorkContext.class); - context.setCurrentCallbackRoutingChain(EasyMock.isA(LinkedList.class)); - EasyMock.replay(context); - ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class); - Target target = EasyMock.createMock(Target.class); - target.invokeNone("test"); - EasyMock.replay(target); - Invoker invoker = new Invoker(wire, context, monitor, target); - Message msg = new MessageImpl(); - msg.pushFromAddress(from); - msg.setBody("test"); - invoker.invoke(msg); - EasyMock.verify(wire); - EasyMock.verify(context); - EasyMock.verify(target); - } - - protected void setUp() throws Exception { - super.setUp(); - - } - - private class Invoker extends TargetInvokerExtension { - private Target target; - - public Invoker(InboundWire wire, WorkContext workContext, ExecutionMonitor monitor, - TargetInvokerExtensionSequenceTestCase.Target target) { - super(wire, workContext, monitor); - this.target = target; - } - - public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException { - if (sequence == NONE) { - target.invokeNone((String) payload); - } else if (sequence == START) { - target.invokeStart((String) payload); - } else if (sequence == CONTINUE) { - target.invokeContinue((String) payload); - } else if (sequence == END) { - target.invokeEnd((String) payload); - } - return null; - } - } - - private interface Target { - void invokeStart(String msg); - - void invokeContinue(String msg); - - void invokeEnd(String msg); - - void invokeNone(String msg); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java deleted file mode 100644 index 56d069005d..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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.spi.extension; - -import java.lang.reflect.InvocationTargetException; -import java.util.LinkedList; - -import org.apache.tuscany.spi.component.WorkContext; -import org.apache.tuscany.spi.wire.InboundWire; -import org.apache.tuscany.spi.wire.Message; -import org.apache.tuscany.spi.wire.MessageImpl; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class TargetInvokerExtensionTestCase extends TestCase { - - @SuppressWarnings("unchecked") - public void testNonBlockingDispatch() { - Object from = new Object(); - InboundWire wire = EasyMock.createMock(InboundWire.class); - EasyMock.replay(wire); - WorkContext context; - context = EasyMock.createMock(WorkContext.class); - context.setCurrentCallbackRoutingChain(EasyMock.isA(LinkedList.class)); - EasyMock.replay(context); - ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class); - Target target = EasyMock.createMock(Target.class); - target.invoke("test"); - EasyMock.replay(target); - Invoker invoker = new Invoker(wire, context, monitor, target); - Message msg = new MessageImpl(); - msg.pushFromAddress(from); - msg.setBody("test"); - invoker.invoke(msg); - EasyMock.verify(wire); - EasyMock.verify(context); - EasyMock.verify(target); - } - - protected void setUp() throws Exception { - super.setUp(); - - } - - private class Invoker extends TargetInvokerExtension { - private Target target; - - public Invoker(InboundWire wire, WorkContext workContext, ExecutionMonitor monitor, Target target) { - super(wire, workContext, monitor); - this.target = target; - } - - public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException { - target.invoke((String) payload); - return null; - } - } - - private interface Target { - void invoke(String msg); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/idl/java/JavaIDLUtilsTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/idl/java/JavaIDLUtilsTestCase.java deleted file mode 100644 index e50c1e32a2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/idl/java/JavaIDLUtilsTestCase.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * 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.spi.idl.java; - -import java.lang.reflect.Method; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; - -import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod; -import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findOperation; -import org.apache.tuscany.spi.model.DataType; -import org.apache.tuscany.spi.model.Operation; -import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class JavaIDLUtilsTestCase extends TestCase { - private Method[] methods; - private List<Operation<?>> operations; - - public void testNoParamsFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertEquals("foo", method.getName()); - assertEquals(0, method.getParameterTypes().length); - } - - public void testNoParamsFindOperation() throws Exception { - Method method = Foo.class.getMethod("foo"); - Operation ret = findOperation(method, operations); - assertEquals("foo", ret.getName()); - assertEquals(0, method.getParameterTypes().length); - } - - public void testParamsFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<Type> type = new DataType<Type>(String.class, Object.class); - types.add(type); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertEquals("foo", method.getName()); - assertEquals(String.class, method.getParameterTypes()[0]); - } - - public void testParamsFindOperation() throws Exception { - Method method = Foo.class.getMethod("foo", String.class); - Operation ret = findOperation(method, operations); - assertEquals("foo", ret.getName()); - assertEquals(String.class, method.getParameterTypes()[0]); - } - - - public void testTooManyParamsFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<Type> type = new DataType<Type>(String.class, Object.class); - DataType<Type> type2 = new DataType<Type>(String.class, Object.class); - types.add(type); - types.add(type2); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertNull(method); - } - - public void testDifferentParamsFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<Type> type = new DataType<Type>(Integer.class, Object.class); - types.add(type); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertNull(method); - } - - public void testPrimitiveParamNoFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<Type> type = new DataType<Type>(Integer.class, Object.class); - types.add(type); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertNull(method); - } - - public void testPrimitiveParamFindMethod() { - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<Type> type = new DataType<Type>(Integer.TYPE, Object.class); - types.add(type); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - Operation<Type> operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - Method method = findMethod(operation, methods); - assertEquals("foo", method.getName()); - assertEquals(Integer.TYPE, method.getParameterTypes()[0]); - } - - public void testPrimitiveParamFindOperation() throws NoSuchMethodException { - Method method = Foo.class.getMethod("foo", Integer.TYPE); - Operation<?> operation = findOperation(method, operations); - assertEquals(Integer.TYPE, operation.getInputType().getLogical().get(0).getPhysical()); - } - - - public void testNotFoundMethod() { - Operation<Type> operation = new Operation<Type>("not there", null, null, null, false, null, NO_CONVERSATION); - assertNull(findMethod(operation, methods)); - } - - protected void setUp() throws Exception { - super.setUp(); - methods = Foo.class.getMethods(); - - Operation<Type> operation = new Operation<Type>("foo", null, null, null, false, null, NO_CONVERSATION); - operations = new ArrayList<Operation<?>>(); - operations.add(operation); - - List<DataType<Type>> types = new ArrayList<DataType<Type>>(); - DataType<List<DataType<Type>>> inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - DataType<Type> type = new DataType<Type>(String.class, Object.class); - types.add(type); - operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - operations.add(operation); - - types = new ArrayList<DataType<Type>>(); - type = new DataType<Type>(String.class, Object.class); - DataType<Type> type2 = new DataType<Type>(String.class, Object.class); - types.add(type); - types.add(type2); - inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - operations.add(operation); - - types = new ArrayList<DataType<Type>>(); - type = new DataType<Type>(Integer.class, Object.class); - types.add(type); - inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - operations.add(operation); - - types = new ArrayList<DataType<Type>>(); - type = new DataType<Type>(Integer.TYPE, Object.class); - types.add(type); - inputType = new DataType<List<DataType<Type>>>(Object[].class, types); - operation = new Operation<Type>("foo", inputType, null, null, false, null, NO_CONVERSATION); - operations.add(operation); - - } - - private interface Foo { - void foo(); - - void foo(String foo); - - void foo(int b); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java deleted file mode 100644 index 18887880fe..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * 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.spi.implementation.java; - -import java.lang.annotation.Retention; -import static java.lang.annotation.RetentionPolicy.RUNTIME; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.List; - -import org.apache.tuscany.spi.ObjectFactory; -import org.apache.tuscany.spi.component.CompositeComponent; -import org.apache.tuscany.spi.deployer.DeploymentContext; - -import junit.framework.TestCase; -import org.easymock.EasyMock; -import org.easymock.IAnswer; - -/** - * @version $Rev$ $Date$ - */ -public class AbstractPropertyProcessorTestCase extends TestCase { - - private ImplementationProcessor processor; - - - public void testVisitMethod() throws Exception { - Method method = Foo.class.getMethod("setBar", String.class); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - processor.visitMethod(null, method, type, null); - JavaMappedProperty<?> prop = type.getProperties().get("test"); - assertNotNull(prop.getDefaultValueFactory()); - } - - public void testVisitNoParamsMethod() throws Exception { - Method method = Foo.class.getMethod("setNoParamsBar"); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - try { - processor.visitMethod(null, method, type, null); - fail(); - } catch (IllegalPropertyException e) { - //expected - } - } - - public void testVisitNonVoidMethod() throws Exception { - Method method = Foo.class.getMethod("setBadBar", String.class); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - try { - processor.visitMethod(null, method, type, null); - fail(); - } catch (IllegalPropertyException e) { - //expected - } - } - - public void testDuplicateMethod() throws Exception { - Method method = Foo.class.getMethod("setBar", String.class); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - processor.visitMethod(null, method, type, null); - try { - processor.visitMethod(null, method, type, null); - fail(); - } catch (DuplicatePropertyException e) { - //expected - } - } - - public void testVisitField() throws Exception { - Field field = Foo.class.getDeclaredField("d"); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - processor.visitField(null, field, type, null); - JavaMappedProperty<?> prop = type.getProperties().get("test"); - assertNotNull(prop.getDefaultValueFactory()); - } - - public void testVisitConstructor() throws Exception { - Constructor<Foo> ctor = Foo.class.getConstructor(String.class); - PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type = - new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>(); - processor.visitConstructor(null, ctor, type, null); - ConstructorDefinition def = type.getConstructorDefinition(); - assertEquals("test", def.getInjectionNames().get(0)); - assertNotNull(type.getProperties().get("test")); - } - - @SuppressWarnings("unchecked") - protected void setUp() throws Exception { - super.setUp(); - ImplementationProcessorService service = EasyMock.createMock(ImplementationProcessorService.class); - service.addName(EasyMock.isA(List.class), EasyMock.eq(0), EasyMock.eq("test")); - EasyMock.expectLastCall().andStubAnswer(new IAnswer() { - public Object answer() throws Throwable { - ((List<Object>) EasyMock.getCurrentArguments()[0]).add("test"); - return null; - } - }); - EasyMock.replay(service); - processor = new TestProcessor(service); - } - - @Retention(RUNTIME) - private @interface Bar { - - } - - private class TestProcessor extends AbstractPropertyProcessor<Bar> { - - public TestProcessor(ImplementationProcessorService service) { - super(Bar.class, service); - } - - @SuppressWarnings("unchecked") - protected <T> void initProperty(JavaMappedProperty<T> property, - Bar annotation, - CompositeComponent parent, - DeploymentContext context) { - property.setDefaultValueFactory(EasyMock.createMock(ObjectFactory.class)); - property.setName("test"); - } - - protected String getName(Bar annotation) { - return "test"; - } - } - - - private static class Foo { - - @Bar - protected String d; - - public Foo(String a, @Bar String b) { - } - - public Foo(@Bar String d) { - this.d = d; - } - - @Bar - public void setBar(String d) { - this.d = d; - } - - @Bar - public void setNoParamsBar() { - } - - @Bar - public String setBadBar(String d) { - return null; - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/loader/LoaderExceptionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/loader/LoaderExceptionTestCase.java deleted file mode 100644 index f8c991f7d4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/loader/LoaderExceptionTestCase.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.spi.loader; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class LoaderExceptionTestCase extends TestCase { - - public void testResourceURI() throws Exception { - LoaderException e = new LoaderException(); - e.setResourceURI("test"); - assertEquals("test", e.getResourceURI()); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/CompositeComponentTypeTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/CompositeComponentTypeTestCase.java deleted file mode 100644 index d348d2b3c8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/CompositeComponentTypeTestCase.java +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.spi.model;
-
-import junit.framework.TestCase;
-
-public class CompositeComponentTypeTestCase extends TestCase {
-
- public void testWireCreationAndRetrieval() throws Exception {
- WireDefinition wire1 = new WireDefinition();
- WireDefinition wire2 = new WireDefinition();
-
- CompositeComponentType composite = new CompositeComponentType();
- CompositeComponentType includedComposite = new CompositeComponentType();
- includedComposite.add(wire1);
- Include compositeInclude = new Include();
- compositeInclude.setIncluded(includedComposite);
-
- composite.add(compositeInclude);
- composite.add(wire1);
-
- assertEquals(1, composite.getDeclaredWires().size());
- assertEquals(wire1, composite.getDeclaredWires().get(0));
- assertEquals(2, composite.getWires().size());
- }
-
-}
diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/IntentNameTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/IntentNameTestCase.java deleted file mode 100644 index 7bd2e61ba4..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/IntentNameTestCase.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.apache.tuscany.spi.model; - -import java.util.Arrays; - -import junit.framework.TestCase; - -public class IntentNameTestCase extends TestCase { - - public void testConstructor() throws Exception { - String case1 = "sec.confidentiality/message/body"; - IntentName intentName = new IntentName(case1); - assertEquals("sec", intentName.getDomain()); - assertEquals(case1, intentName.toString()); - assertTrue(Arrays.equals(new String[]{"confidentiality", "message", "body"}, intentName.getQualifiedNames())); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/OperationTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/OperationTestCase.java deleted file mode 100644 index de5f1719b0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/OperationTestCase.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.model; - -import java.util.ArrayList; -import java.util.List; - -import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class OperationTestCase extends TestCase { - - public void testClone() throws Exception { - DataType<Class> stringType = new DataType<Class>("xml:string", String.class, String.class); - List<DataType<Class>> inputTypes = new ArrayList<DataType<Class>>(); - inputTypes.add(stringType); - DataType<List<DataType<Class>>> inputType = - new DataType<List<DataType<Class>>>("xml:string", Object[].class, inputTypes); - - DataType<Class> faultType = new DataType<Class>("xml:foo", String.class, String.class); - List<DataType<Class>> faultTypes = new ArrayList<DataType<Class>>(); - faultTypes.add(faultType); - - Operation<Class> operation1 = - new Operation<Class>("call", inputType, stringType, faultTypes, true, "xml:string", NO_CONVERSATION); - Operation<Class> operation2 = operation1.clone(); - assertEquals(operation1, operation2); - assertEquals(NO_CONVERSATION, operation2.getConversationSequence()); - assertEquals("call", operation2.getName()); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ScopeTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ScopeTestCase.java deleted file mode 100644 index a8a88626ec..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ScopeTestCase.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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.spi.model; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class ScopeTestCase extends TestCase { - - public void testEquals() throws Exception { - Scope scope = new Scope("COMPOSITE"); - assertTrue(scope.equals(Scope.COMPOSITE)); - } - - public void testEqualsNew() throws Exception { - Scope foo = new Scope("foo"); - Scope foo2 = new Scope("FOO"); - assertTrue(foo.equals(foo2)); - } - - public void testNotEquals() throws Exception { - Scope foo = new Scope("BAR"); - Scope foo2 = new Scope("FOO"); - assertFalse(foo.equals(foo2)); - } - - public void testNotEqualsDifferent() throws Exception { - Scope foo = new Scope("FOO"); - assertFalse(foo.equals(new Bar("FOO"))); - } - - public class Bar { - private String scope; - - public Bar(String scope) { - this.scope = scope; - } - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ServiceContractTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ServiceContractTestCase.java deleted file mode 100644 index 72f1e954ac..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/model/ServiceContractTestCase.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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.spi.model; - -import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION; - -import java.util.Map; -import java.util.HashMap; -import java.lang.reflect.Type; - -import junit.framework.TestCase; - -/** - * @version $Rev$ $Date$ - */ -public class ServiceContractTestCase extends TestCase { - - @SuppressWarnings("unchecked") - public void testAddOperation() throws Exception { - ServiceContract<Type> contract = new TestContract(); - Operation<Type> operation = new Operation<Type>("foo", null, null, null, false, null, NO_CONVERSATION); - Map<String, Operation<Type>> ops = new HashMap<String, Operation<Type>>(); - ops.put("foo", operation); - contract.setOperations(ops); - assertEquals(contract, operation.getServiceContract()); - assertFalse(operation.isCallback()); - } - - public void testAddCallbackOperation() throws Exception { - ServiceContract<Type> contract = new TestContract(); - Operation<Type> operation = new Operation<Type>("foo", null, null, null, false, null, NO_CONVERSATION); - Map<String, Operation<Type>> ops = new HashMap<String, Operation<Type>>(); - ops.put("foo", operation); - contract.setCallbackOperations(ops); - assertEquals(contract, operation.getServiceContract()); - assertTrue(operation.isCallback()); - } - - @SuppressWarnings("unchecked") - public void testClone() throws Exception { - ServiceContract<Type> contract = new TestContract(); - Operation<Type> operation = new Operation<Type>("foo", null, null, null, false, null, NO_CONVERSATION); - Map<String, Operation<Type>> ops = new HashMap<String, Operation<Type>>(); - ops.put("foo", operation); - contract.setOperations(ops); - - operation = new Operation<Type>("bar", null, null, null, false, null, NO_CONVERSATION); - Map<String, Operation<Type>> callbackOps = new HashMap<String, Operation<Type>>(); - ops.put("bar", operation); - contract.setCallbackOperations(callbackOps); - - ServiceContract<Type> copy = (ServiceContract<Type>) contract.clone(); - assertEquals(contract, copy); - } - - public void testGetOperation() throws Exception { - ServiceContract<Type> contract = new TestContract(); - Operation<Type> operation = new Operation<Type>("foo", null, null, null, false, null, NO_CONVERSATION); - Map<String, Operation<Type>> ops = new HashMap<String, Operation<Type>>(); - ops.put("foo", operation); - contract.setOperations(ops); - assertEquals(operation, contract.getOperation("foo")); - assertNull(contract.getOperation("bla")); - } - - private class TestContract extends ServiceContract<Type> { - - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtensionTestCase.java deleted file mode 100644 index 9c814483bb..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/SourcePolicyBuilderExtensionTestCase.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.policy; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.model.AbstractReferenceDefinition; -import static org.apache.tuscany.spi.policy.PolicyBuilderRegistry.EXTENSION; -import org.apache.tuscany.spi.wire.OutboundWire; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class SourcePolicyBuilderExtensionTestCase extends TestCase { - - public void testRegister() throws Exception { - PolicyBuilderRegistry registry = EasyMock.createMock(PolicyBuilderRegistry.class); - registry.registerSourceBuilder(EasyMock.eq(EXTENSION), EasyMock.isA(MockPolicyBuilderExtension.class)); - EasyMock.replay(registry); - SourcePolicyBuilderExtension extension = new MockPolicyBuilderExtension(); - extension.setRegistry(registry); - extension.init(); - EasyMock.verify(registry); - } - - private static class MockPolicyBuilderExtension extends SourcePolicyBuilderExtension { - - public void build(AbstractReferenceDefinition definition, OutboundWire wire) throws BuilderException { - - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtensionTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtensionTestCase.java deleted file mode 100644 index 58488236e2..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/policy/TargetPolicyBuilderExtensionTestCase.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.spi.policy; - -import org.apache.tuscany.spi.builder.BuilderException; -import org.apache.tuscany.spi.model.ServiceDefinition; -import static org.apache.tuscany.spi.policy.PolicyBuilderRegistry.EXTENSION; -import org.apache.tuscany.spi.wire.InboundWire; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class TargetPolicyBuilderExtensionTestCase extends TestCase { - - public void testRegister() throws Exception { - PolicyBuilderRegistry registry = EasyMock.createMock(PolicyBuilderRegistry.class); - registry.registerTargetBuilder(EasyMock.eq(EXTENSION), EasyMock.isA(MockPolicyBuilderExtension.class)); - EasyMock.replay(registry); - TargetPolicyBuilderExtension extension = new MockPolicyBuilderExtension(); - extension.setRegistry(registry); - extension.init(); - EasyMock.verify(registry); - } - - private static class MockPolicyBuilderExtension extends TargetPolicyBuilderExtension { - - public void build(ServiceDefinition definition, InboundWire wire) throws BuilderException { - - } - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSCAExternalizable.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSCAExternalizable.java deleted file mode 100644 index 8c85d4eb95..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSCAExternalizable.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.spi.util; - -import java.io.Serializable; - -import org.apache.tuscany.spi.component.ReactivationException; -import org.apache.tuscany.spi.component.SCAExternalizable; -import org.apache.tuscany.spi.component.WorkContext; - -/** - * @version $Rev$ $Date$ - */ -@SuppressWarnings({"SerializableHasSerializationMethods"}) -public class MockSCAExternalizable implements Serializable, SCAExternalizable { - private static final long serialVersionUID = 5071815222959279772L; - - private WorkContext context; - private boolean activated; - - public void setWorkContext(WorkContext context) { - this.context = context; - } - - public WorkContext getContext() { - return context; - } - - public void reactivate() throws ReactivationException { - activated = true; - } - - public boolean isActivated() { - return activated; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSerializable.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSerializable.java deleted file mode 100644 index 3f34e1d0c7..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/MockSerializable.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.spi.util; - -import java.io.Serializable; - -/** - * @version $Rev$ $Date$ - */ -@SuppressWarnings({"SerializableHasSerializationMethods"}) -public class MockSerializable implements Serializable { - private static final long serialVersionUID = 4013396228070042469L; - - private MockSCAExternalizable externalizable; - - public MockSerializable() { - } - - public MockSCAExternalizable getExternalizable() { - return externalizable; - } - - public void setExternalizable(MockSCAExternalizable externalizable) { - this.externalizable = externalizable; - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/SCAObjectInputStreamTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/SCAObjectInputStreamTestCase.java deleted file mode 100644 index 0a34210b6c..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/SCAObjectInputStreamTestCase.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.spi.util; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.ObjectOutputStream; - -import org.apache.tuscany.spi.component.WorkContext; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class SCAObjectInputStreamTestCase extends TestCase { - - public void testSCAExternalizable() throws Exception { - WorkContext context = EasyMock.createMock(WorkContext.class); - MockSCAExternalizable ext = new MockSCAExternalizable(); - MockSerializable serializable = new MockSerializable(); - serializable.setExternalizable(ext); - ByteArrayOutputStream bas = new ByteArrayOutputStream(); - ObjectOutputStream o = new ObjectOutputStream(bas); - o.writeObject(serializable); - o.close(); - ByteArrayInputStream bytes = new ByteArrayInputStream(bas.toByteArray()); - SCAObjectInputStream stream = new SCAObjectInputStream(bytes, context); - MockSerializable deserialized = (MockSerializable) stream.readObject(); - MockSCAExternalizable deserializedExt = deserialized.getExternalizable(); - assertTrue(deserializedExt.isActivated()); - assertEquals(context, deserializedExt.getContext()); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/stax/StaxUtilTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/stax/StaxUtilTestCase.java deleted file mode 100644 index 87be31b23b..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/util/stax/StaxUtilTestCase.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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.spi.util.stax; - -import java.io.InputStream; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.TestCase; - -/** - * Test case for StaxHelper - * - * @version $Revision$ $Date$ - * - */ -public class StaxUtilTestCase extends TestCase { - - public StaxUtilTestCase(String name) { - super(name); - } - - public void testSerialize() throws XMLStreamException { - - InputStream in = getClass().getClassLoader().getResourceAsStream("test.scdl"); - XMLStreamReader reader = StaxUtil.createReader(in); - StaxUtil.serialize(reader); - // TODO Do assertions - } - - public void testGetDocumentElementQName() throws XMLStreamException { - InputStream in = getClass().getClassLoader().getResourceAsStream("test.scdl"); - XMLStreamReader reader = StaxUtil.createReader(in); - String xml = StaxUtil.serialize(reader); - QName qname = StaxUtil.getDocumentElementQName(xml); - assertEquals("http://www.osoa.org/xmlns/sca/1.0", qname.getNamespaceURI()); - assertEquals("composite", qname.getLocalPart()); - } - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java deleted file mode 100644 index 39611054e8..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.apache.tuscany.spi.wire; - -import java.lang.reflect.Array; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class AbstractInboundInvocationHandlerTestCase extends TestCase { - - public void testInvocation() throws Throwable { - InvocationHandler handler = new InvocationHandler(); - Interceptor interceptor = new MockInterceptor(); - TargetInvoker invoker = EasyMock.createMock(TargetInvoker.class); - EasyMock.replay(invoker); - InboundInvocationChain chain = EasyMock.createMock(InboundInvocationChain.class); - EasyMock.expect(chain.getHeadInterceptor()).andReturn(interceptor); - EasyMock.replay(chain); - Object resp = handler.invoke(chain, invoker, new String[]{"foo"}); - assertEquals("response", resp); - } - - - private class InvocationHandler extends AbstractInboundInvocationHandler { - - } - - private class MockInterceptor implements Interceptor { - - public Message invoke(Message msg) { - assertNotNull(msg.getCorrelationId()); - assertNotNull(msg.getTargetInvoker()); - assertNotNull(msg.getMessageId()); - assertEquals("foo", Array.get(msg.getBody(), 0)); - msg.setBody("response"); - return msg; - } - - public void setNext(Interceptor next) { - - } - - public Interceptor getNext() { - return null; - } - - public boolean isOptimizable() { - return false; - } - } - - -}
\ No newline at end of file diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java deleted file mode 100644 index 617a055e78..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.apache.tuscany.spi.wire; - -import java.lang.reflect.Array; -import java.lang.reflect.InvocationTargetException; -import java.util.LinkedList; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class AbstractOutboundInvocationHandlerTestCase extends TestCase { - - public void testInvocation() throws Throwable { - InvocationHandler handler = new InvocationHandler(); - Interceptor interceptor = new MockInterceptor(); - TargetInvoker invoker = EasyMock.createMock(TargetInvoker.class); - EasyMock.replay(invoker); - OutboundInvocationChain chain = EasyMock.createMock(OutboundInvocationChain.class); - EasyMock.expect(chain.getHeadInterceptor()).andReturn(interceptor); - EasyMock.replay(chain); - Object resp = handler.invoke(chain, invoker, new String[]{"foo"}, null, new LinkedList<Object>()); - assertEquals("response", resp); - } - - public void testShortCircuitInvocation() throws Throwable { - InvocationHandler handler = new InvocationHandler(); - TargetInvoker invoker = new MockInvoker(); - OutboundInvocationChain chain = EasyMock.createMock(OutboundInvocationChain.class); - EasyMock.expect(chain.getHeadInterceptor()).andReturn(null); - EasyMock.expect(chain.getTargetInvoker()).andReturn(invoker); - EasyMock.replay(chain); - Object resp = handler.invoke(chain, invoker, new String[]{"foo"}, null, new LinkedList<Object>()); - assertEquals("response", resp); - } - - - private class MockInvoker implements TargetInvoker { - - public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException { - assertEquals("foo", Array.get(payload, 0)); - return "response"; - } - - public Message invoke(Message msg) throws InvocationRuntimeException { - fail(); - return null; - } - - public boolean isCacheable() { - return false; - } - - public void setCacheable(boolean cacheable) { - - } - - public boolean isOptimizable() { - return false; - } - - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - } - - private class InvocationHandler extends AbstractOutboundInvocationHandler { - - protected Object getFromAddress() { - return new Object(); - } - - } - - private class MockInterceptor implements Interceptor { - - public Message invoke(Message msg) { - assertNotNull(msg.getCorrelationId()); - assertNotNull(msg.getTargetInvoker()); - assertNotNull(msg.getMessageId()); - assertNotNull(msg.getCallbackRoutingChain()); - assertEquals("foo", Array.get(msg.getBody(), 0)); - msg.setBody("response"); - return msg; - } - - public void setNext(Interceptor next) { - - } - - public Interceptor getNext() { - return null; - } - - public boolean isOptimizable() { - return false; - } - } - - -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/OutboundChainHolderTestCase.java b/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/OutboundChainHolderTestCase.java deleted file mode 100644 index cbce805151..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/OutboundChainHolderTestCase.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.spi.wire; - -import junit.framework.TestCase; -import org.easymock.EasyMock; - -/** - * @version $Rev$ $Date$ - */ -public class OutboundChainHolderTestCase extends TestCase { - - public void testClone() { - OutboundInvocationChain chain = EasyMock.createMock(OutboundInvocationChain.class); - EasyMock.replay(chain); - OutboundChainHolder holder = new OutboundChainHolder(chain); - assertNotNull(holder.clone()); - } -} diff --git a/branches/sca-java-integration/sca/kernel/spi/src/test/resources/test.scdl b/branches/sca-java-integration/sca/kernel/spi/src/test/resources/test.scdl deleted file mode 100644 index a9ee04b7b0..0000000000 --- a/branches/sca-java-integration/sca/kernel/spi/src/test/resources/test.scdl +++ /dev/null @@ -1,34 +0,0 @@ -<?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. ---> -<!-- - Test for stax. - - $Rev$ $Date$ ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT" - name="test.scdl"> - - <component name="test.component"> - <system:implementation.system class="test.class"/> - <property name="testProperty">123</property> - </component> - -</composite> |