From 36436b71b9977d6b5940cb6285d5335708ef9bfa Mon Sep 17 00:00:00 2001
From: lresende
Date: Sat, 21 Nov 2009 07:55:20 +0000
Subject: Moving 1.x tags
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@882851 13f79535-47bb-0310-9956-ffa450edef68
---
.../tags/java-stable-20060304/BUILDING.txt | 41 +
sca-java-1.x/tags/java-stable-20060304/LICENSE.txt | 202 +
sca-java-1.x/tags/java-stable-20060304/das/pom.xml | 34 +
.../tags/java-stable-20060304/das/rdb/LICENSE.txt | 202 +
.../tags/java-stable-20060304/das/rdb/pom.xml | 80 +
.../tuscany/das/rdb/ApplyChangesCommand.java | 186 +
.../java/org/apache/tuscany/das/rdb/Command.java | 283 +
.../org/apache/tuscany/das/rdb/CommandFactory.java | 67 +
.../org/apache/tuscany/das/rdb/CommandGroup.java | 56 +
.../tuscany/das/rdb/CommandGroupFactory.java | 37 +
.../java/org/apache/tuscany/das/rdb/Converter.java | 52 +
.../main/java/org/apache/tuscany/das/rdb/Key.java | 58 +
.../java/org/apache/tuscany/das/rdb/Pager.java | 62 +
.../java/org/apache/tuscany/das/rdb/Parameter.java | 128 +
.../org/apache/tuscany/das/rdb/ResultSetShape.java | 122 +
.../org/apache/tuscany/das/rdb/SDODataTypes.java | 68 +
.../org/apache/tuscany/das/rdb/config/Column.java | 306 +
.../org/apache/tuscany/das/rdb/config/Command.java | 156 +
.../org/apache/tuscany/das/rdb/config/Config.java | 121 +
.../tuscany/das/rdb/config/ConfigFactory.java | 108 +
.../das/rdb/config/ConnectionProperties.java | 175 +
.../org/apache/tuscany/das/rdb/config/KeyPair.java | 100 +
.../apache/tuscany/das/rdb/config/Parameter.java | 100 +
.../tuscany/das/rdb/config/Relationship.java | 193 +
.../tuscany/das/rdb/config/ResultDescriptor.java | 150 +
.../org/apache/tuscany/das/rdb/config/Table.java | 191 +
.../tuscany/das/rdb/config/impl/ColumnImpl.java | 675 ++
.../tuscany/das/rdb/config/impl/CommandImpl.java | 444 ++
.../das/rdb/config/impl/ConfigFactoryImpl.java | 212 +
.../tuscany/das/rdb/config/impl/ConfigImpl.java | 387 +
.../das/rdb/config/impl/ConfigPackageImpl.java | 2808 +++++++
.../rdb/config/impl/ConnectionPropertiesImpl.java | 455 ++
.../tuscany/das/rdb/config/impl/KeyPairImpl.java | 287 +
.../tuscany/das/rdb/config/impl/ParameterImpl.java | 287 +
.../das/rdb/config/impl/RelationshipImpl.java | 497 ++
.../das/rdb/config/impl/ResultDescriptorImpl.java | 399 +
.../tuscany/das/rdb/config/impl/TableImpl.java | 517 ++
.../das/rdb/config/wrapper/MappingWrapper.java | 381 +
.../das/rdb/config/wrapper/QualifiedColumn.java | 41 +
.../rdb/config/wrapper/RelationshipWrapper.java | 44 +
.../das/rdb/config/wrapper/TableWrapper.java | 124 +
.../das/rdb/generator/impl/CudGenerator.java | 64 +
.../das/rdb/generator/impl/DeleteGenerator.java | 98 +
.../das/rdb/generator/impl/InsertGenerator.java | 164 +
.../das/rdb/generator/impl/UpdateGenerator.java | 206 +
.../das/rdb/graphbuilder/impl/DataObjectMaker.java | 120 +
.../rdb/graphbuilder/impl/DefaultConverter.java | 91 +
.../graphbuilder/impl/GraphBuilderMetadata.java | 98 +
.../rdb/graphbuilder/impl/MultiTableRegistry.java | 105 +
.../das/rdb/graphbuilder/impl/ResultMetadata.java | 277 +
.../rdb/graphbuilder/impl/ResultSetProcessor.java | 137 +
.../das/rdb/graphbuilder/impl/ResultSetRow.java | 169 +
.../das/rdb/graphbuilder/impl/RowObjects.java | 140 +
.../rdb/graphbuilder/impl/SingleTableRegistry.java | 52 +
.../das/rdb/graphbuilder/impl/TableData.java | 75 +
.../das/rdb/graphbuilder/impl/TableRegistry.java | 43 +
.../rdb/graphbuilder/schema/EAttributeMaker.java | 67 +
.../rdb/graphbuilder/schema/EReferenceMaker.java | 131 +
.../das/rdb/graphbuilder/schema/ESchemaMaker.java | 261 +
.../rdb/graphbuilder/schema/ResultSetTypeMap.java | 133 +
.../das/rdb/impl/ApplyChangesCommandImpl.java | 176 +
.../apache/tuscany/das/rdb/impl/ChangeFactory.java | 172 +
.../tuscany/das/rdb/impl/ChangeOperation.java | 71 +
.../tuscany/das/rdb/impl/ChangeSummarizer.java | 225 +
.../org/apache/tuscany/das/rdb/impl/Changes.java | 81 +
.../tuscany/das/rdb/impl/CommandFactoryImpl.java | 80 +
.../das/rdb/impl/CommandGroupFactoryImpl.java | 15 +
.../tuscany/das/rdb/impl/CommandGroupImpl.java | 195 +
.../apache/tuscany/das/rdb/impl/CommandImpl.java | 177 +
.../tuscany/das/rdb/impl/ConnectionImpl.java | 95 +
.../tuscany/das/rdb/impl/CreateOperation.java | 29 +
.../tuscany/das/rdb/impl/DatabaseObject.java | 130 +
.../tuscany/das/rdb/impl/DeleteCommandImpl.java | 25 +
.../apache/tuscany/das/rdb/impl/DeleteList.java | 72 +
.../tuscany/das/rdb/impl/DeleteOperation.java | 38 +
.../tuscany/das/rdb/impl/FactoryRegistry.java | 49 +
.../tuscany/das/rdb/impl/InsertCommandImpl.java | 79 +
.../apache/tuscany/das/rdb/impl/InsertList.java | 80 +
.../das/rdb/impl/OptimisticWriteCommandImpl.java | 45 +
.../org/apache/tuscany/das/rdb/impl/PagerImpl.java | 64 +
.../apache/tuscany/das/rdb/impl/ParameterImpl.java | 107 +
.../apache/tuscany/das/rdb/impl/Parameters.java | 150 +
.../apache/tuscany/das/rdb/impl/QueryString.java | 87 +
.../tuscany/das/rdb/impl/ReadCommandImpl.java | 204 +
.../tuscany/das/rdb/impl/SDODataTypeHelper.java | 100 +
.../apache/tuscany/das/rdb/impl/SPCommandImpl.java | 73 +
.../org/apache/tuscany/das/rdb/impl/Statement.java | 206 +
.../tuscany/das/rdb/impl/UpdateCommandImpl.java | 25 +
.../apache/tuscany/das/rdb/impl/UpdateList.java | 42 +
.../tuscany/das/rdb/impl/UpdateOperation.java | 30 +
.../tuscany/das/rdb/impl/WriteCommandImpl.java | 97 +
.../tuscany/das/rdb/merge/impl/GraphMerger.java | 166 +
.../tuscany/das/rdb/util/DataObjectUtil.java | 73 +
.../tuscany/das/rdb/util/DebugFormatter.java | 34 +
.../org/apache/tuscany/das/rdb/util/DebugUtil.java | 66 +
.../rdb/src/main/resources/META-INF/MANIFEST.MF | 8 +
.../das/rdb/src/main/resources/config.xsd | 88 +
.../das/rdb/src/main/resources/dasmodel4.mdl | 4645 ++++++++++++
.../tuscany/das/rdb/test/BestPracticeTests.java | 89 +
.../apache/tuscany/das/rdb/test/CUDGeneration.java | 165 +
.../tuscany/das/rdb/test/CommandGroupTests.java | 165 +
.../apache/tuscany/das/rdb/test/CompanyTests.java | 107 +
.../tuscany/das/rdb/test/CompoundKeyTests.java | 113 +
.../tuscany/das/rdb/test/ConverterTests.java | 118 +
.../tuscany/das/rdb/test/CorrectedDefectTests.java | 258 +
.../das/rdb/test/CrudWithChangeHistory.java | 254 +
.../apache/tuscany/das/rdb/test/DefectTests.java | 353 +
.../tuscany/das/rdb/test/ExceptionTests.java | 75 +
.../das/rdb/test/GeneratedCommandTests.java | 93 +
.../apache/tuscany/das/rdb/test/GeneratedId.java | 305 +
.../tuscany/das/rdb/test/GraphMergeTests.java | 163 +
.../tuscany/das/rdb/test/NameMappingTests.java | 64 +
.../org/apache/tuscany/das/rdb/test/OCCTests.java | 68 +
.../das/rdb/test/OperationOrderingTests.java | 85 +
.../org/apache/tuscany/das/rdb/test/Paging.java | 108 +
.../tuscany/das/rdb/test/PartialUpdateTests.java | 108 +
.../das/rdb/test/PassiveConnectionTests.java | 88 +
.../tuscany/das/rdb/test/ReadDBSchemaTests.java | 62 +
.../tuscany/das/rdb/test/RecursiveTests.java | 84 +
.../tuscany/das/rdb/test/RelationshipTests.java | 195 +
.../tuscany/das/rdb/test/ResultSetShapeTests.java | 108 +
.../tuscany/das/rdb/test/SerializationTests.java | 90 +
.../apache/tuscany/das/rdb/test/SimplestCrud.java | 256 +
.../apache/tuscany/das/rdb/test/StoredProcs.java | 203 +
.../org/apache/tuscany/das/rdb/test/TopDown.java | 139 +
.../org/apache/tuscany/das/rdb/test/TypeTests.java | 65 +
.../commands/ReadCustomersByLastnameCommand.java | 54 +
.../rdb/test/commands/ReadCustomersCommand.java | 55 +
.../commands/ReadCustomersStaticTypesCommand.java | 62 +
.../commands/ReadCustomersWithShapeCommand.java | 40 +
.../SimpleReadCustomersWithShapeCommand.java | 66 +
.../das/rdb/test/company/CompanyFactory.java | 63 +
.../tuscany/das/rdb/test/company/CompanyType.java | 91 +
.../das/rdb/test/company/DatagraphRoot.java | 71 +
.../das/rdb/test/company/DepartmentType.java | 143 +
.../tuscany/das/rdb/test/company/EmployeeType.java | 127 +
.../rdb/test/company/impl/CompanyFactoryImpl.java | 164 +
.../rdb/test/company/impl/CompanyPackageImpl.java | 1248 ++++
.../das/rdb/test/company/impl/CompanyTypeImpl.java | 293 +
.../rdb/test/company/impl/DatagraphRootImpl.java | 242 +
.../rdb/test/company/impl/DepartmentTypeImpl.java | 385 +
.../rdb/test/company/impl/EmployeeTypeImpl.java | 323 +
.../tuscany/das/rdb/test/customer/AnOrder.java | 206 +
.../tuscany/das/rdb/test/customer/Customer.java | 143 +
.../das/rdb/test/customer/CustomerFactory.java | 54 +
.../das/rdb/test/customer/DataGraphRoot.java | 56 +
.../das/rdb/test/customer/impl/AnOrderImpl.java | 451 ++
.../test/customer/impl/CustomerFactoryImpl.java | 140 +
.../das/rdb/test/customer/impl/CustomerImpl.java | 385 +
.../test/customer/impl/CustomerPackageImpl.java | 837 +++
.../rdb/test/customer/impl/DataGraphRootImpl.java | 203 +
.../apache/tuscany/das/rdb/test/data/BookData.java | 45 +
.../apache/tuscany/das/rdb/test/data/CityData.java | 54 +
.../tuscany/das/rdb/test/data/CompanyData.java | 45 +
.../tuscany/das/rdb/test/data/CompanyDeptData.java | 42 +
.../tuscany/das/rdb/test/data/CustomerData.java | 45 +
.../tuscany/das/rdb/test/data/DepEmpData.java | 45 +
.../tuscany/das/rdb/test/data/DepartmentData.java | 41 +
.../tuscany/das/rdb/test/data/EmployeeData.java | 44 +
.../tuscany/das/rdb/test/data/OrderData.java | 42 +
.../das/rdb/test/data/OrderDetailsData.java | 43 +
.../apache/tuscany/das/rdb/test/data/PartData.java | 52 +
.../tuscany/das/rdb/test/data/StateData.java | 51 +
.../tuscany/das/rdb/test/data/TypesData.java | 64 +
.../tuscany/das/rdb/test/framework/DB2Setup.java | 35 +
.../tuscany/das/rdb/test/framework/DasTest.java | 155 +
.../das/rdb/test/framework/DatabaseSetup.java | 245 +
.../tuscany/das/rdb/test/framework/DerbySetup.java | 42 +
.../das/rdb/test/framework/JavaStoredProcs.java | 85 +
.../tuscany/das/rdb/test/framework/MySQLSetup.java | 96 +
.../das/rdb/test/framework/RelationshipData.java | 81 +
.../tuscany/das/rdb/test/framework/TestData.java | 87 +
.../framework/TestDataWithExplicitColumns.java | 82 +
.../test/mappings/IntegerToBooleanConverter.java | 40 +
.../test/mappings/SillyDateStringConverter.java | 73 +
.../test/mappings/StringToIntegerConverter.java | 37 +
.../rdb/test/mappings/StringToLongConverter.java | 35 +
.../das/rdb/test/suites/AllCommonTests.java | 93 +
.../tuscany/das/rdb/test/suites/AllTestsDB2.java | 39 +
.../tuscany/das/rdb/test/suites/AllTestsDerby.java | 34 +
.../tuscany/das/rdb/test/suites/AllTestsMySQL.java | 34 +
.../das/rdb/test/typed/SimplestStaticCrud.java | 58 +
.../rdb/src/test/resources/1xM_mapping_no_cud.xml | 18 +
.../das/rdb/src/test/resources/CompanyConfig.xml | 33 +
.../test/resources/CustOrdersConnectionProps.xml | 46 +
.../src/test/resources/CustomersOrdersConfig.xml | 30 +
.../resources/basicCompanyDepartmentMapping.xml | 21 +
.../rdb/src/test/resources/basicCompanyMapping.xml | 7 +
.../src/test/resources/basicCustomerMapping.xml | 10 +
.../test/resources/basicCustomerMappingWithCUD.xml | 13 +
.../basicCustomerMappingWithInvalidCUD.xml | 13 +
.../test/resources/basicCustomerOrderMapping.xml | 17 +
.../rdb/src/test/resources/basicStaticCustomer.xml | 10 +
.../das/rdb/src/test/resources/cityStates.xml | 22 +
.../das/rdb/src/test/resources/company.ecore | 130 +
.../das/rdb/src/test/resources/company.genmodel | 38 +
.../das/rdb/src/test/resources/company.xsd | 38 +
.../das/rdb/src/test/resources/companyMapping.xml | 23 +
.../das/rdb/src/test/resources/customer.ecore | 96 +
.../das/rdb/src/test/resources/customer.genmodel | 32 +
.../das/rdb/src/test/resources/customer.xsd | 32 +
.../das/rdb/src/test/resources/customerMapping.xml | 10 +
.../resources/customerOrderRelationshipMapping.xml | 16 +
sca-java-1.x/tags/java-stable-20060304/pom.xml | 119 +
.../samples/bigbank/account/pom.xml | 77 +
.../services/account/AccountServiceImpl.java | 91 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 51 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 27 +
.../services/stockquote/StockQuoteServiceImpl.java | 28 +
.../bigbank/account/src/main/resources/sca.module | 61 +
.../account/src/main/resources/sca.subsystem | 24 +
.../src/main/resources/wsdl/AccountService.wsdl | 90 +
.../main/resources/wsdl/StockQuoteWebService.wsdl | 98 +
.../account/src/main/webapp/WEB-INF/axis2.xml | 167 +
.../account/src/main/webapp/WEB-INF/web.xml | 21 +
.../bigbank/account/client/AccountClient.java | 56 +
.../samples/bigbank/customers/META-INF/MANIFEST.MF | 7 +
.../samples/bigbank/customers/pom.xml | 44 +
.../samples/bigbank/customers/readme.htm | 190 +
.../tuscany/samples/customers/CustomerClient.java | 41 +
.../customers/CustomerServiceComponent.java | 29 +
.../CustomerServiceComponentImpl.componentType | 21 +
.../customers/CustomerServiceComponentImpl.java | 76 +
.../bigbank/customers/src/main/java/sca.module | 23 +
.../bigbank/customers/src/main/webapp/Customer.jsp | 94 +
.../customers/src/main/webapp/WEB-INF/web.xml | 38 +
.../src/main/webapp/customerdb/log/log.ctrl | Bin 0 -> 48 bytes
.../src/main/webapp/customerdb/log/log1.dat | Bin 0 -> 1048576 bytes
.../src/main/webapp/customerdb/log/logmirror.ctrl | Bin 0 -> 48 bytes
.../src/main/webapp/customerdb/seg0/c10.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c101.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c111.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c121.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c130.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c141.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c150.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c161.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c171.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c180.dat | Bin 0 -> 24576 bytes
.../src/main/webapp/customerdb/seg0/c191.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1a1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1b1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1c0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1d1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1e0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c1f1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c20.dat | Bin 0 -> 20480 bytes
.../src/main/webapp/customerdb/seg0/c200.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c211.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c221.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c230.dat | Bin 0 -> 86016 bytes
.../src/main/webapp/customerdb/seg0/c241.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c251.dat | Bin 0 -> 12288 bytes
.../src/main/webapp/customerdb/seg0/c260.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c271.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c281.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c290.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2a1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2b1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2c1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2d0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2e1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c2f0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c300.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c31.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c311.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c41.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c51.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c60.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c71.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c81.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/c90.dat | Bin 0 -> 16384 bytes
.../src/main/webapp/customerdb/seg0/ca1.dat | Bin 0 -> 16384 bytes
.../src/main/webapp/customerdb/seg0/cb1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/cc0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/cd1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/ce1.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/seg0/cf0.dat | Bin 0 -> 8192 bytes
.../src/main/webapp/customerdb/service.properties | 22 +
.../java-stable-20060304/samples/bigbank/pom.xml | 35 +
.../samples/bigbank/webclient/pom.xml | 89 +
.../account/AccountServiceComponentImpl.java | 57 +
.../webclient/services/profile/LoginService.java | 27 +
.../webclient/services/profile/ProfileService.java | 36 +
.../services/profile/ProfileServiceImpl.java | 68 +
.../services/profile/SimpleLoginServiceImpl.java | 45 +
.../webclient/tags/account/AccountStatusTag.java | 125 +
.../webclient/tags/sca/LoginBarrierTag.java | 87 +
.../bigbank/webclient/tags/sca/ServiceTag.java | 100 +
.../samples/bigbank/webclient/ui/LoginServlet.java | 67 +
.../webclient/src/main/resources/sca.module | 55 +
.../webclient/src/main/resources/sca.subsystem | 28 +
.../src/main/resources/wsdl/AccountService.wsdl | 90 +
.../webclient/src/main/webapp/WEB-INF/axis2.xml | 167 +
.../src/main/webapp/WEB-INF/bigbank-tags.tld | 79 +
.../webclient/src/main/webapp/WEB-INF/web.xml | 35 +
.../bigbank/webclient/src/main/webapp/login.html | 24 +
.../bigbank/webclient/src/main/webapp/summary.jsp | 48 +
.../webclient/client/TestAccountService.java | 51 +
.../bigbank/webclient/client/TestLoginService.java | 49 +
.../samples/das/companyweb/CompanyAppGbl.xml | 11 +
.../samples/das/companyweb/dastest/db.lck | Bin 0 -> 38 bytes
.../samples/das/companyweb/dastest/log/log.ctrl | Bin 0 -> 48 bytes
.../samples/das/companyweb/dastest/log/log1.dat | Bin 0 -> 1048576 bytes
.../das/companyweb/dastest/log/logmirror.ctrl | Bin 0 -> 48 bytes
.../samples/das/companyweb/dastest/seg0/c10.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c101.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c111.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c121.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c130.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c141.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c150.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c161.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c171.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c180.dat | Bin 0 -> 24576 bytes
.../samples/das/companyweb/dastest/seg0/c191.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1a1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1b1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1c0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1d1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1e0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c1f1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c20.dat | Bin 0 -> 24576 bytes
.../samples/das/companyweb/dastest/seg0/c200.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c211.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c221.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c230.dat | Bin 0 -> 86016 bytes
.../samples/das/companyweb/dastest/seg0/c241.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c251.dat | Bin 0 -> 12288 bytes
.../samples/das/companyweb/dastest/seg0/c260.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c271.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c281.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c290.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2a1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2b1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2c1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2d0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2e1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c2f0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c300.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c31.dat | Bin 0 -> 16384 bytes
.../samples/das/companyweb/dastest/seg0/c311.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c320.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c331.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c340.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c351.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c360.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c371.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c380.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c391.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c3a0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c3b1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c3c0.dat | Bin 0 -> 24576 bytes
.../samples/das/companyweb/dastest/seg0/c3d1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c3e0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c3f1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c400.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c41.dat | Bin 0 -> 16384 bytes
.../samples/das/companyweb/dastest/seg0/c411.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c420.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c431.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c440.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c451.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c460.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c471.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c481.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c490.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c4a1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c51.dat | Bin 0 -> 16384 bytes
.../samples/das/companyweb/dastest/seg0/c60.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c71.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c81.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/c90.dat | Bin 0 -> 20480 bytes
.../samples/das/companyweb/dastest/seg0/ca1.dat | Bin 0 -> 24576 bytes
.../samples/das/companyweb/dastest/seg0/cb1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/cc0.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/cd1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/ce1.dat | Bin 0 -> 8192 bytes
.../samples/das/companyweb/dastest/seg0/cf0.dat | Bin 0 -> 8192 bytes
.../das/companyweb/dastest/service.properties | 22 +
.../samples/das/companyweb/pom.xml | 42 +
.../samples/das/companyweb/readme.htm | 567 ++
.../tuscany/samples/companyweb/CompanyClient.java | 133 +
.../src/main/resources/CompanyConfig.xml | 33 +
.../das/companyweb/src/main/webapp/Company.jsp | 151 +
.../das/companyweb/src/main/webapp/WEB-INF/web.xml | 27 +
.../tags/java-stable-20060304/samples/das/pom.xml | 33 +
.../samples/helloworld/helloworld/pom.xml | 57 +
.../samples/helloworld/helloworld/readme.htm | 112 +
.../samples/helloworld/HelloWorldClient.java | 51 +
.../samples/helloworld/HelloWorldService.java | 26 +
.../helloworld/HelloWorldServiceComponentImpl.java | 34 +
.../helloworld/src/main/resources/sca.module | 25 +
.../HelloWorldServiceComponentTestCase.java | 79 +
.../samples/helloworld/helloworldaxis/axiscmds.bat | 2 +
.../helloworld/helloworldaxis/helloworld.wsdl | 97 +
.../samples/helloworldaxis/HelloWorldService.java | 27 +
.../helloworldaxis/HelloWorldServiceImpl.java | 35 +
.../samples/helloworld/helloworldaxis/pom.xml | 50 +
.../samples/helloworld/helloworldaxis/readme.htm | 118 +
.../helloworldaxis/HelloWorldAxisClient.java | 53 +
.../helloworldaxis/HelloWorldServiceImpl.java | 21 +
.../HelloWorldServiceImplService.java | 25 +
.../HelloWorldServiceImplServiceLocator.java | 148 +
.../helloworldaxis/HelloworldSoapBindingImpl.java | 24 +
.../HelloworldSoapBindingSkeleton.java | 69 +
.../helloworldaxis/HelloworldSoapBindingStub.java | 133 +
.../tuscany/samples/helloworldaxis/deploy.wsdd | 41 +
.../tuscany/samples/helloworldaxis/undeploy.wsdd | 30 +
.../samples/helloworld/helloworldaxis2/build.xml | 127 +
.../samples/helloworld/helloworldaxis2/pom.xml | 205 +
.../samples/helloworldaxis/GetGreetings.java | 94 +
.../helloworldaxis/GetGreetingsResponse.java | 96 +
.../HelloWorldServiceImplCallbackHandler.java | 39 +
.../HelloWorldServiceImplMessageReceiver.java | 146 +
.../HelloWorldServiceImplSkeleton.java | 24 +
.../helloworldaxis/HelloWorldServiceImplStub.java | 269 +
.../src/main/resources/helloworld.wsdl | 97 +
.../src/main/resources/services.xml | 7 +
.../src/test/java/META-INF/MANIFEST.MF | 3 +
.../helloworldaxis/HelloWorldServiceImplTest.java | 63 +
.../samples/helloworld/helloworldaxissvc/pom.xml | 38 +
.../helloworld/helloworldaxissvc/readme.htm | 53 +
.../src/main/webapp/WEB-INF/server-config.wsdd | 48 +
.../src/main/webapp/WEB-INF/web.xml | 101 +
.../src/webapp/WEB-INF/server-config.wsdd | 48 +
.../helloworldaxissvc/src/webapp/WEB-INF/web.xml | 101 +
.../samples/helloworld/helloworldjs/pom.xml | 58 +
.../samples/helloworld/helloworldjs/readme.htm | 117 +
.../samples/helloworldjs/HelloWorldClient.java | 51 +
.../helloworldjs/HelloWorldServiceComponent.java | 26 +
.../HelloWorldServiceComponentImpl.componentType | 9 +
.../helloworldjs/HelloWorldServiceComponentImpl.js | 20 +
.../helloworldjs/src/main/resources/sca.module | 26 +
.../HelloWorldServiceComponentTestCase.java | 80 +
.../samples/helloworld/helloworldmc/pom.xml | 57 +
.../samples/helloworld/helloworldmc/readme.htm | 151 +
.../helloworldmc/GreetingPortionProvider.java | 22 +
.../helloworldmc/GreetingPortionProviderImpl.java | 32 +
.../samples/helloworldmc/HelloWorldClient.java | 51 +
.../samples/helloworldmc/HelloWorldService.java | 26 +
.../HelloWorldServiceComponentImpl.java | 51 +
.../helloworldmc/src/main/resources/sca.module | 45 +
.../HelloWorldServiceComponentTestCase.java | 74 +
.../samples/helloworld/helloworldweb/pom.xml | 51 +
.../samples/helloworld/helloworldweb/readme.htm | 130 +
.../helloworldweb/HelloWorldServiceComponent.java | 26 +
.../HelloWorldServiceComponentImpl.java | 34 +
.../helloworldweb/src/main/resources/sca.module | 25 +
.../src/main/webapp/HelloWorldWeb.jsp | 79 +
.../helloworldweb/src/main/webapp/WEB-INF/web.xml | 27 +
.../HelloWorldServiceComponentTestCase.java | 84 +
.../samples/helloworld/helloworldws/pom.xml | 87 +
.../samples/helloworld/helloworldws/readme.htm | 186 +
.../samples/helloworldws/HelloWorldService.java | 26 +
.../HelloWorldServiceComponentImpl.java | 34 +
.../helloworldws/src/main/resources/sca.module | 35 +
.../src/main/resources/wsdl/helloworld.wsdl | 97 +
.../helloworldws/src/main/webapp/WEB-INF/axis2.xml | 167 +
.../helloworldws/src/main/webapp/WEB-INF/web.xml | 23 +
.../samples/helloworld/helloworldwsclient/pom.xml | 50 +
.../helloworld/helloworldwsclient/readme.htm | 189 +
.../helloworldwsclient/HelloWorldClient.java | 51 +
.../helloworldwsclient/HelloWorldService.java | 26 +
.../HelloWorldServiceComponentImpl.java | 43 +
.../src/main/resources/axis2.xml | 167 +
.../src/main/resources/sca.module | 40 +
.../src/main/resources/wsdl/helloworld.wsdl | 103 +
.../samples/helloworld/pom.xml | 42 +
.../tags/java-stable-20060304/samples/pom.xml | 35 +
.../sca/binding.axis/LICENSE.txt | 202 +
.../java-stable-20060304/sca/binding.axis/pom.xml | 70 +
.../axis/assembly/WebServiceAssemblyFactory.java | 31 +
.../binding/axis/assembly/WebServiceBinding.java | 51 +
.../impl/WebServiceAssemblyFactoryImpl.java | 42 +
.../axis/assembly/impl/WebServiceBindingImpl.java | 116 +
.../ExternalWebServiceConfigurationBuilder.java | 150 +
.../builder/ExternalWebServiceWireBuilder.java | 61 +
.../WebServiceEntryPointConfigurationBuilder.java | 170 +
.../ExternalWebServiceRuntimeConfiguration.java | 32 +
.../WebServiceEntryPointRuntimeConfiguration.java | 32 +
.../config/AxisEngineConfigurationFactory.java | 265 +
.../axis/handler/ExternalWebServiceClient.java | 119 +
.../handler/ExternalWebServiceTargetInvoker.java | 109 +
.../axis/handler/WebServiceEntryPointServlet.java | 82 +
.../axis/handler/WebServiceOperationMetaData.java | 484 ++
.../axis/handler/WebServicePortMetaData.java | 362 +
.../axis/loader/WebServiceSCDLModelLoader.java | 74 +
.../tuscany/binding/axis/Messages.properties | 28 +
.../binding/axis/engine/config/server-config.wsdd | 60 +
.../src/main/resources/system.fragment | 37 +
.../tests/WebServiceAssemblyLoaderTestCase.java | 87 +
.../account/services/account/AccountReport.java | 32 +
.../account/services/account/AccountService.java | 25 +
.../services/account/AccountServiceImpl.java | 42 +
.../account/services/account/AccountSummary.java | 46 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 48 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 24 +
.../account/services/account/AccountService.wsdl | 78 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../tuscany/binding/axis/assembly/tests/sca.module | 66 +
.../binding/axis/mediator/tests/DocLit.wsdl | 76 +
.../binding/axis/mediator/tests/DocLitWrapped.wsdl | 83 +
.../binding/axis/mediator/tests/RpcLit.wsdl | 75 +
.../tuscany/binding/axis/mediator/tests/sca.module | 20 +
.../sca/binding.axis2/LICENSE.txt | 202 +
.../java-stable-20060304/sca/binding.axis2/pom.xml | 130 +
.../axis2/assembly/WebServiceAssemblyFactory.java | 31 +
.../binding/axis2/assembly/WebServiceBinding.java | 51 +
.../impl/WebServiceAssemblyFactoryImpl.java | 42 +
.../axis2/assembly/impl/WebServiceBindingImpl.java | 116 +
.../ExternalWebServiceConfigurationBuilder.java | 153 +
.../builder/ExternalWebServiceWireBuilder.java | 61 +
.../WebServiceEntryPointConfigurationBuilder.java | 170 +
.../ExternalWebServiceRuntimeConfiguration.java | 32 +
.../WebServiceEntryPointRuntimeConfiguration.java | 32 +
.../axis2/handler/ExternalWebServiceClient.java | 143 +
.../handler/ExternalWebServiceTargetInvoker.java | 110 +
...bServiceEntryPointInOutSyncMessageReceiver.java | 177 +
.../axis2/handler/WebServiceEntryPointServlet.java | 480 ++
.../axis2/handler/WebServiceOperationMetaData.java | 484 ++
.../axis2/handler/WebServicePortMetaData.java | 362 +
.../axis2/loader/WebServiceSCDLModelLoader.java | 74 +
.../tuscany/binding/axis2/util/AxiomHelper.java | 185 +
.../tuscany/binding/axis2/engine/config/axis2.xml | 167 +
.../src/main/resources/system.fragment | 37 +
.../tests/WebServiceAssemblyLoaderTestCase.java | 87 +
.../account/services/account/AccountReport.java | 32 +
.../account/services/account/AccountService.java | 25 +
.../services/account/AccountServiceImpl.java | 42 +
.../account/services/account/AccountSummary.java | 46 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 48 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 24 +
.../binding/axis2/util/AxiomHelperTestCase.java | 88 +
.../account/services/account/AccountService.wsdl | 78 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../binding/axis2/assembly/tests/sca.module | 66 +
.../binding/axis2/mediator/tests/DocLit.wsdl | 76 +
.../axis2/mediator/tests/DocLitWrapped.wsdl | 83 +
.../binding/axis2/mediator/tests/RpcLit.wsdl | 75 +
.../binding/axis2/mediator/tests/sca.module | 20 +
.../tuscany/binding/axis2/util/helloworld.wsdl | 106 +
.../java-stable-20060304/sca/common/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/common/pom.xml | 37 +
.../apache/tuscany/common/TuscanyException.java | 85 +
.../tuscany/common/TuscanyRuntimeException.java | 91 +
.../discovery/util/ServiceProviderRegistry.java | 177 +
.../io/util/ClassLoaderObjectInputStream.java | 73 +
.../common/io/util/FixedURLClassLoader.java | 310 +
.../common/io/util/FixedURLInputStream.java | 119 +
.../apache/tuscany/common/io/util/IOHelper.java | 128 +
.../apache/tuscany/common/io/util/UTF8String.java | 107 +
.../apache/tuscany/common/monitor/LogLevel.java | 37 +
.../tuscany/common/monitor/MonitorFactory.java | 35 +
.../common/monitor/impl/InvalidLevelException.java | 43 +
.../monitor/impl/JavaLoggingMonitorFactory.java | 139 +
.../common/monitor/impl/NullMonitorFactory.java | 48 +
.../tuscany/common/resource/ResourceLoader.java | 94 +
.../common/resource/impl/ResourceLoaderImpl.java | 175 +
.../org.apache.tuscany.common.logging.LogProvider | 1 +
...y.common.resource.loader.ResourceLoaderProvider | 1 +
.../org/apache/tuscany/common/Messages.properties | 25 +
.../common/monitor/impl/JavaLoggingTestCase.java | 145 +
.../impl/JavaLoggingTestCase$Monitor.properties | 1 +
.../sca/container.java/LICENSE.txt | 202 +
.../sca/container.java/pom.xml | 44 +
.../java/assembly/JavaAssemblyFactory.java | 32 +
.../java/assembly/JavaImplementation.java | 37 +
.../assembly/impl/JavaAssemblyFactoryImpl.java | 42 +
.../java/assembly/impl/JavaImplementationImpl.java | 97 +
.../java/builder/JavaComponentContextBuilder.java | 348 +
.../java/builder/JavaTargetWireBuilder.java | 85 +
.../config/JavaComponentRuntimeConfiguration.java | 151 +
.../java/context/JavaComponentContext.java | 206 +
.../invocation/AbstractJavaComponentInvoker.java | 92 +
.../invocation/ScopedJavaComponentInvoker.java | 86 +
.../StaticJavaComponentTargetInvoker.java | 50 +
.../container/java/loader/JavaSCDLModelLoader.java | 81 +
.../tuscany/container/java/Messages.properties | 25 +
.../src/main/resources/system.fragment | 38 +
.../sca/container.java/src/main/test/sca.module | 75 +
.../assembly/impl/JavaImplementationTestCase.java | 137 +
.../assembly/mock/HelloWorldImpl.componentType | 23 +
.../java/assembly/mock/HelloWorldImpl.java | 36 +
.../java/assembly/mock/HelloWorldService.java | 27 +
.../mock/HelloWorldWithFieldProperties.java | 40 +
.../java/assembly/mock/NakedHelloWorld.java | 26 +
.../mock/NakedHelloWorldWithInterface.java | 28 +
.../assembly/tests/JavaAssemblyLoaderTestCase.java | 88 +
.../account/services/account/AccountReport.java | 32 +
.../account/services/account/AccountService.java | 25 +
.../account/services/account/AccountService.wsdl | 78 +
.../services/account/AccountServiceImpl.java | 42 +
.../account/services/account/AccountSummary.java | 46 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 48 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 24 +
.../services/stockquote/StockQuoteServiceImpl.java | 28 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../JavaComponentContextBuilderTestCase.java | 111 +
.../builder/JavaTargetWireBuilderTestCase.java | 115 +
.../container/java/builder/MockHandlerBuilder.java | 86 +
.../java/builder/MockInterceptorBuilder.java | 74 +
...ModuleComponentConfigurationLoaderTestCase.java | 80 +
.../container/java/context/BadPojoTestCase.java | 70 +
.../java/context/PojoLifecycleTestCase.java | 71 +
.../container/java/context/PojoTestCase.java | 94 +
.../JavaBuilderContextIntegrationTestCase.java | 240 +
.../java/integration/JavaIntegrationTestCase.java | 64 +
.../integration/JavaRuntimeBootstrapTestCase.java | 54 +
.../binding/EntryPointToJavaTestCase.java | 248 +
.../binding/JavaToExternalServiceTestCase.java | 61 +
.../context/ScopeReferenceTestCase.java | 709 ++
.../java/invocation/MediationTestCase.java | 53 +
.../java/invocation/ScopedPojoInvokerTestCase.java | 54 +
.../java/invocation/StaticPojoInvokerTestCase.java | 155 +
.../java/invocation/mock/MockHandler.java | 25 +
.../java/invocation/mock/MockSyncInterceptor.java | 45 +
.../java/invocation/mock/SimpleSource.java | 25 +
.../java/invocation/mock/SimpleSourceImpl.java | 36 +
.../java/invocation/mock/SimpleTarget.java | 28 +
.../java/invocation/mock/SimpleTargetImpl.java | 39 +
.../container/java/mock/MockConfigContext.java | 56 +
.../tuscany/container/java/mock/MockFactory.java | 548 ++
.../container/java/mock/MockScopeContext.java | 137 +
.../java/mock/binding/foo/FooBinding.java | 59 +
.../java/mock/binding/foo/FooBindingBuilder.java | 192 +
.../mock/binding/foo/FooBindingWireBuilder.java | 56 +
.../container/java/mock/binding/foo/FooClient.java | 37 +
.../java/mock/binding/foo/FooESTargetInvoker.java | 97 +
.../foo/FooEntryPointRuntimeConfiguration.java | 31 +
.../FooExternalServiceRuntimeConfiguration.java | 32 +
.../mock/components/AbstractGenericComponent.java | 296 +
.../java/mock/components/BadContextPojo.java | 26 +
.../java/mock/components/BadNamePojo.java | 24 +
.../container/java/mock/components/DataObject.java | 38 +
.../java/mock/components/GenericComponent.java | 142 +
.../java/mock/components/HelloWorldClient.java | 46 +
.../java/mock/components/LocalComponentImpl.java | 97 +
.../java/mock/components/ModuleScopeComponent.java | 29 +
.../ModuleScopeComponentImpl.componentType | 32 +
.../mock/components/ModuleScopeComponentImpl.java | 47 +
.../ModuleScopeDestroyOnlyComponent.java | 34 +
.../components/ModuleScopeEagerInitComponent.java | 39 +
.../ModuleScopeEagerInitDestroyComponent.java | 33 +
.../ModuleScopeInitDestroyComponent.java | 34 +
.../components/ModuleScopeInitOnlyComponent.java | 38 +
.../java/mock/components/RemotableService.java | 40 +
.../java/mock/components/RemotableServiceImpl.java | 61 +
.../mock/components/RequestScopeComponent.java | 28 +
.../mock/components/RequestScopeComponentImpl.java | 25 +
.../mock/components/SessionScopeComponent.java | 28 +
.../mock/components/SessionScopeComponentImpl.java | 25 +
.../SessionScopeDestroyOnlyComponent.java | 34 +
.../SessionScopeInitDestroyComponent.java | 34 +
.../components/SessionScopeInitOnlyComponent.java | 35 +
.../java/mock/components/StatelessComponent.java | 28 +
.../mock/components/StatelessComponentImpl.java | 25 +
.../java/scopes/AggregateScopeTestCase.java | 178 +
.../java/scopes/BasicHttpSessionScopeTestCase.java | 223 +
.../java/scopes/BasicModuleScopeTestCase.java | 126 +
.../java/scopes/BasicRequestScopeTestCase.java | 148 +
.../java/scopes/BasicStatelessScopeTestCase.java | 125 +
.../scopes/HttpSessionScopeLifecycleTestCase.java | 157 +
.../java/scopes/ModuleScopeLifecycleTestCase.java | 224 +
.../container/java/scopes/OrderException.java | 38 +
.../java/scopes/OrderedEagerInitPojo.java | 54 +
.../container/java/scopes/OrderedInitPojo.java | 54 +
.../java/scopes/RequestScopeLifecycleTestCase.java | 146 +
.../container/java/assembly/tests/sca.module | 54 +
.../java/config/ModuleComponentLoaderTest1.module | 24 +
.../sca/container.js/LICENSE.txt | 202 +
.../java-stable-20060304/sca/container.js/pom.xml | 75 +
.../js/assembly/JavaScriptAssemblyFactory.java | 28 +
.../js/assembly/JavaScriptImplementation.java | 34 +
.../impl/JavaScriptAssemblyFactoryImpl.java | 33 +
.../impl/JavaScriptImplementationImpl.java | 116 +
.../builder/JavaScriptComponentContextBuilder.java | 217 +
.../js/builder/JavaScriptTargetWireBuilder.java | 75 +
.../JavaScriptComponentRuntimeConfiguration.java | 101 +
.../js/context/JavaScriptComponentContext.java | 161 +
.../js/loader/JavaScriptSCDLModelLoader.java | 77 +
.../tuscany/container/js/rhino/RhinoScript.java | 298 +
.../container/js/rhino/RhinoTargetInvoker.java | 81 +
.../main/resources/model/sca-implementation-js.xsd | 41 +
...riptComponentConfigurationHandler.componentType | 23 +
.../src/main/resources/system.fragment | 33 +
.../container/js/sample/helloworld/HelloWorld.java | 7 +
.../sample/helloworld/HelloWorldImpl.componentType | 9 +
.../js/sample/helloworld/HelloWorldImpl.js | 4 +
.../container/js/sample/helloworld/Main.java | 25 +
.../sca/container.js/src/samples/java/sca.module | 25 +
.../impl/JavaScriptImplementationTestCase.java | 75 +
.../js/assembly/mock/HelloWorldService.java | 24 +
.../tests/JavaScriptAssemblyLoaderTestCase.java | 76 +
.../account/services/account/AccountReport.java | 32 +
.../account/services/account/AccountService.java | 25 +
.../account/services/account/AccountSummary.java | 46 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 48 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 24 +
.../services/stockquote/StockQuoteServiceImpl.java | 28 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../builder/JSComponentContextBuilderTestCase.java | 51 +
.../container/js/builder/MockHandlerBuilder.java | 86 +
.../js/builder/MockInterceptorBuilder.java | 74 +
...ModuleComponentConfigurationLoaderTestCase.java | 78 +
.../js/integration/JSComponentContextTestCase.java | 91 +
.../container/js/invocation/mock/MockHandler.java | 27 +
.../js/invocation/mock/MockSyncInterceptor.java | 50 +
.../container/js/mock/MockAssemblyFactory.java | 156 +
.../container/js/mock/MockModuleFactory.java | 115 +
.../container/js/rhino/RhinoInvokerTestCase.java | 184 +
.../js/assembly/mock/HelloWorldImpl.componentType | 23 +
.../container/js/assembly/mock/HelloWorldImpl.js | 4 +
.../bigbank/account/services/AccountService.wsdl | 78 +
.../services/AccountServiceImpl.componentType | 19 +
.../account/services/account/AccountService.wsdl | 78 +
.../account/AccountServiceImpl.componentType | 19 +
.../AccountDataServiceImpl.componentType | 9 +
.../stockquote/StockQuoteServiceImpl.componentType | 9 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../tuscany/container/js/assembly/tests/sca.module | 54 +
.../js/config/ModuleComponentLoaderTest1.module | 25 +
.../container/js/rhino/RhinoInvokerTestCase.js | 22 +
.../tags/java-stable-20060304/sca/core/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/core/pom.xml | 75 +
.../core/addressing/AddressingConstants.java | 33 +
.../tuscany/core/addressing/AddressingFactory.java | 37 +
.../tuscany/core/addressing/EndpointReference.java | 120 +
.../addressing/impl/AddressingFactoryImpl.java | 50 +
.../addressing/impl/EndpointReferenceImpl.java | 182 +
.../core/builder/BuilderConfigException.java | 26 +
.../tuscany/core/builder/BuilderException.java | 41 +
.../tuscany/core/builder/BuilderInitException.java | 39 +
.../core/builder/ConfigurationException.java | 26 +
.../core/builder/ContextCreationException.java | 41 +
.../core/builder/HierarchicalWireBuilder.java | 29 +
.../tuscany/core/builder/NoAccessorException.java | 39 +
.../apache/tuscany/core/builder/ObjectFactory.java | 19 +
.../tuscany/core/builder/RuntimeConfiguration.java | 69 +
.../core/builder/RuntimeConfigurationBuilder.java | 24 +
.../tuscany/core/builder/UnknownTypeException.java | 26 +
.../apache/tuscany/core/builder/WireBuilder.java | 60 +
.../tuscany/core/builder/impl/AssemblyVisitor.java | 62 +
.../BaseExternalServiceRuntimeConfiguration.java | 106 +
.../core/builder/impl/DefaultWireBuilder.java | 110 +
.../impl/EntryPointRuntimeConfiguration.java | 104 +
.../core/builder/impl/HierarchicalBuilder.java | 58 +
.../core/builder/impl/ProxyObjectFactory.java | 42 +
.../apache/tuscany/core/client/TuscanyRuntime.java | 204 +
.../core/config/ComponentTypeIntrospector.java | 37 +
.../core/config/ConfigurationException.java | 42 +
.../core/config/ConfigurationLoadException.java | 47 +
.../tuscany/core/config/ImplementationCache.java | 46 +
.../core/config/InvalidRootElementException.java | 51 +
.../core/config/JavaIntrospectionHelper.java | 349 +
.../core/config/MissingResourceException.java | 43 +
.../config/ModuleComponentConfigurationLoader.java | 74 +
.../impl/Java5ComponentTypeIntrospector.java | 423 ++
.../ModuleComponentConfigurationLoaderImpl.java | 142 +
.../tuscany/core/context/AbstractContext.java | 89 +
.../tuscany/core/context/AggregateContext.java | 85 +
.../tuscany/core/context/AutowireContext.java | 35 +
.../core/context/AutowireResolutionException.java | 40 +
.../tuscany/core/context/ConfigurationContext.java | 66 +
.../org/apache/tuscany/core/context/Context.java | 106 +
.../tuscany/core/context/ContextInitException.java | 43 +
.../core/context/ContextRuntimeException.java | 39 +
.../tuscany/core/context/CoreRuntimeException.java | 27 +
.../core/context/DuplicateNameException.java | 39 +
.../tuscany/core/context/EntryPointContext.java | 57 +
.../apache/tuscany/core/context/EventContext.java | 66 +
.../tuscany/core/context/EventException.java | 43 +
.../core/context/ExternalServiceContext.java | 24 +
.../tuscany/core/context/InstanceContext.java | 75 +
.../tuscany/core/context/InvalidNameException.java | 43 +
.../core/context/LifecycleEventListener.java | 32 +
.../apache/tuscany/core/context/QualifiedName.java | 83 +
.../tuscany/core/context/RuntimeEventListener.java | 36 +
.../tuscany/core/context/ScopeAwareContext.java | 31 +
.../apache/tuscany/core/context/ScopeContext.java | 72 +
.../tuscany/core/context/ScopeIdentifier.java | 33 +
.../core/context/ScopeInitializationException.java | 42 +
.../core/context/ScopeRuntimeException.java | 43 +
.../apache/tuscany/core/context/ScopeStrategy.java | 43 +
.../core/context/ServiceNotFoundException.java | 42 +
.../core/context/SimpleComponentContext.java | 36 +
.../core/context/SystemAggregateContext.java | 36 +
.../tuscany/core/context/TargetException.java | 42 +
.../context/impl/AbstractAggregateContext.java | 652 ++
.../core/context/impl/AggregateContextImpl.java | 222 +
.../core/context/impl/EntryPointContextImpl.java | 112 +
.../core/context/impl/EventContextImpl.java | 77 +
.../context/impl/ExternalServiceContextImpl.java | 92 +
.../core/context/scope/AbstractScopeContext.java | 158 +
.../core/context/scope/AbstractScopeStrategy.java | 67 +
.../core/context/scope/AggregateScopeContext.java | 184 +
.../core/context/scope/DefaultScopeStrategy.java | 52 +
.../context/scope/HttpSessionScopeContext.java | 254 +
.../core/context/scope/ModuleScopeContext.java | 182 +
.../core/context/scope/RequestScopeContext.java | 224 +
.../core/context/scope/StatelessScopeContext.java | 145 +
.../webapp/HTTPSessionExpirationListener.java | 62 +
.../core/context/webapp/LazyHTTPSessionId.java | 56 +
.../core/context/webapp/TuscanyRequestFilter.java | 107 +
.../core/context/webapp/TuscanyWebAppRuntime.java | 59 +
.../tuscany/core/injection/EventInvoker.java | 17 +
.../core/injection/FactoryInitException.java | 27 +
.../tuscany/core/injection/FieldInjector.java | 45 +
.../core/injection/InjectionRuntimeException.java | 29 +
.../apache/tuscany/core/injection/Injector.java | 17 +
.../tuscany/core/injection/MethodEventInvoker.java | 39 +
.../tuscany/core/injection/MethodInjector.java | 30 +
.../tuscany/core/injection/NullEventInvoker.java | 14 +
.../core/injection/ObjectCallbackException.java | 26 +
.../core/injection/ObjectCreationException.java | 27 +
.../tuscany/core/injection/PojoObjectFactory.java | 75 +
.../core/injection/ReferenceTargetFactory.java | 133 +
.../tuscany/core/injection/SDOObjectFactory.java | 37 +
.../core/injection/SingletonObjectFactory.java | 29 +
.../tuscany/core/invocation/Interceptor.java | 42 +
.../core/invocation/InvocationConfiguration.java | 279 +
.../core/invocation/InvocationException.java | 29 +
.../invocation/InvocationRuntimeException.java | 44 +
.../tuscany/core/invocation/MessageChannel.java | 33 +
.../tuscany/core/invocation/MessageHandler.java | 34 +
.../tuscany/core/invocation/MethodHashMap.java | 53 +
.../core/invocation/ProxyConfiguration.java | 101 +
.../tuscany/core/invocation/TargetInvoker.java | 44 +
.../core/invocation/impl/InvokerInterceptor.java | 46 +
.../core/invocation/impl/MessageChannelImpl.java | 68 +
.../core/invocation/impl/MessageDispatcher.java | 46 +
.../core/invocation/impl/NullProxyFactory.java | 57 +
.../core/invocation/impl/OneWayInterceptor.java | 48 +
.../impl/RequestResponseInterceptor.java | 73 +
.../core/invocation/jdk/JDKInvocationHandler.java | 143 +
.../core/invocation/jdk/JDKProxyFactory.java | 96 +
.../invocation/jdk/JDKProxyFactoryFactory.java | 52 +
.../invocation/spi/ProxyCreationException.java | 43 +
.../core/invocation/spi/ProxyException.java | 40 +
.../tuscany/core/invocation/spi/ProxyFactory.java | 79 +
.../core/invocation/spi/ProxyFactoryFactory.java | 42 +
.../spi/ProxyInitializationException.java | 43 +
.../core/loader/SCDLModelLoaderRegistry.java | 51 +
.../loader/impl/SCDLModelLoaderRegistryImpl.java | 49 +
.../org/apache/tuscany/core/message/Message.java | 182 +
.../tuscany/core/message/MessageFactory.java | 31 +
.../core/message/impl/MessageFactoryImpl.java | 40 +
.../tuscany/core/message/impl/MessageImpl.java | 249 +
.../tuscany/core/runtime/RuntimeContext.java | 83 +
.../tuscany/core/runtime/RuntimeContextImpl.java | 286 +
.../tuscany/core/runtime/RuntimeMonitor.java | 32 +
.../tuscany/core/runtime/RuntimeScopeStrategy.java | 46 +
.../tuscany/core/system/annotation/Autowire.java | 21 +
.../core/system/annotation/ParentContext.java | 33 +
.../system/assembly/SystemAssemblyFactory.java | 38 +
.../core/system/assembly/SystemBinding.java | 37 +
.../core/system/assembly/SystemImplementation.java | 38 +
.../assembly/impl/SystemAssemblyFactoryImpl.java | 41 +
.../system/assembly/impl/SystemBindingImpl.java | 41 +
.../assembly/impl/SystemImplementationImpl.java | 94 +
.../builder/SystemComponentContextBuilder.java | 383 +
.../system/builder/SystemEntryPointBuilder.java | 63 +
.../builder/SystemExternalServiceBuilder.java | 77 +
.../SystemComponentRuntimeConfiguration.java | 140 +
.../SystemEntryPointRuntimeConfiguration.java | 92 +
.../SystemExternalServiceRuntimeConfiguration.java | 97 +
.../config/SystemObjectRuntimeConfiguration.java | 92 +
.../system/context/SystemAggregateContextImpl.java | 666 ++
.../system/context/SystemComponentContext.java | 198 +
.../system/context/SystemEntryPointContext.java | 82 +
.../context/SystemExternalServiceContext.java | 82 +
.../core/system/context/SystemScopeStrategy.java | 56 +
.../core/system/injection/AutowireFactory.java | 50 +
.../core/system/loader/SystemSCDLModelLoader.java | 49 +
.../apache/tuscany/core/webapp/ContextBinder.java | 39 +
.../tuscany/core/webapp/TuscanyRequestFilter.java | 97 +
.../core/webapp/TuscanyServletListener.java | 168 +
....tuscany.core.runtime.proxy.ServiceProxyFactory | 1 +
.../core/src/main/resources/model/anyobject.xsd | 35 +
.../src/main/resources/model/tuscany-system.xsd | 52 +
.../org/apache/tuscany/core/Messages.properties | 25 +
.../sca/core/src/main/resources/system.module | 26 +
.../builder/impl/DefaultWireBuilderTestCase.java | 447 ++
.../impl/NegativeDefaultWireBuilderTestCase.java | 71 +
.../config/JavaIntrospectionHelperTestCase.java | 37 +
...ModuleComponentConfigurationLoaderTestCase.java | 68 +
.../context/AbstractAggregateHierarchyTests.java | 107 +
.../AggregateComponentContextRegisterTestCase.java | 130 +
.../core/context/AggregateHierarchyTestCase.java | 96 +
.../core/context/QualifiedNameTestCase.java | 52 +
.../scope/DefaultScopeStrategyTestCase.java | 52 +
.../org/apache/tuscany/core/injection/Bean1.java | 26 +
.../core/injection/ReflectionHelperTestCase.java | 74 +
.../apache/tuscany/core/injection/SuperBean.java | 27 +
.../InvocationConfigurationErrorTestCase.java | 158 +
.../InvocationConfigurationTestCase.java | 156 +
.../core/invocation/InvocationErrorTestCase.java | 124 +
.../jdk/JDKInvocationHandlerTestCase.java | 112 +
.../invocation/jdk/JDKProxyFactoryTestCase.java | 66 +
.../tuscany/core/invocation/mock/MockHandler.java | 25 +
.../core/invocation/mock/MockScopeContext.java | 136 +
.../core/invocation/mock/MockStaticInvoker.java | 70 +
.../core/invocation/mock/MockSyncInterceptor.java | 45 +
.../tuscany/core/invocation/mock/SimpleSource.java | 25 +
.../core/invocation/mock/SimpleSourceImpl.java | 36 +
.../tuscany/core/invocation/mock/SimpleTarget.java | 28 +
.../core/invocation/mock/SimpleTargetImpl.java | 39 +
.../tuscany/core/mock/MockConfigContext.java | 56 +
.../org/apache/tuscany/core/mock/MockFactory.java | 329 +
.../mock/component/GenericSystemComponent.java | 6 +
.../mock/component/ModuleScopeSystemComponent.java | 28 +
.../component/ModuleScopeSystemComponentImpl.java | 25 +
.../tuscany/core/runtime/RuntimeBootTestCase.java | 96 +
.../core/runtime/RuntimeContextImplTestCase.java | 305 +
.../SystemComponentContextBuilderTestCase.java | 137 +
.../core/system/builder/SystemComponentImpl.java | 165 +
.../builder/impl/AssemblyVisitorTestCase.java | 123 +
...mAggregateComponentContextRegisterTestCase.java | 40 +
.../SystemAggregateComponentContextTestCase.java | 127 +
.../context/SystemAggregateHierarchyTestCase.java | 49 +
.../system/context/SystemBootstrapTestCase.java | 130 +
.../context/SystemObjectRegistrationTestCase.java | 59 +
.../tuscany/core/system/context/TestBuilder.java | 36 +
.../core/config/ModuleComponentLoaderTest1.module | 24 +
.../sca/core/src/test/resources/system.fragment | 21 +
.../java-stable-20060304/sca/model/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/model/pom.xml | 101 +
.../tuscany/model/ModelRuntimeException.java | 41 +
.../apache/tuscany/model/assembly/Aggregate.java | 117 +
.../tuscany/model/assembly/AggregatePart.java | 40 +
.../tuscany/model/assembly/AssemblyFactory.java | 162 +
.../model/assembly/AssemblyModelContext.java | 64 +
.../model/assembly/AssemblyModelObject.java | 45 +
.../model/assembly/AssemblyModelVisitor.java | 32 +
.../org/apache/tuscany/model/assembly/Binding.java | 40 +
.../apache/tuscany/model/assembly/Component.java | 80 +
.../model/assembly/ComponentImplementation.java | 40 +
.../tuscany/model/assembly/ComponentType.java | 66 +
.../tuscany/model/assembly/ConfiguredPort.java | 57 +
.../tuscany/model/assembly/ConfiguredProperty.java | 62 +
.../model/assembly/ConfiguredReference.java | 44 +
.../tuscany/model/assembly/ConfiguredService.java | 36 +
.../apache/tuscany/model/assembly/EntryPoint.java | 64 +
.../apache/tuscany/model/assembly/Extensible.java | 38 +
.../tuscany/model/assembly/ExternalService.java | 59 +
.../tuscany/model/assembly/ModelInitException.java | 43 +
.../org/apache/tuscany/model/assembly/Module.java | 39 +
.../tuscany/model/assembly/ModuleComponent.java | 47 +
.../tuscany/model/assembly/ModuleFragment.java | 25 +
.../tuscany/model/assembly/Multiplicity.java | 47 +
.../tuscany/model/assembly/OverrideOption.java | 40 +
.../org/apache/tuscany/model/assembly/Port.java | 47 +
.../apache/tuscany/model/assembly/Property.java | 91 +
.../apache/tuscany/model/assembly/Reference.java | 36 +
.../model/assembly/RuntimeConfigurationHolder.java | 36 +
.../org/apache/tuscany/model/assembly/Scope.java | 32 +
.../org/apache/tuscany/model/assembly/Service.java | 24 +
.../tuscany/model/assembly/ServiceContract.java | 62 +
.../apache/tuscany/model/assembly/ServiceURI.java | 53 +
.../tuscany/model/assembly/SimpleComponent.java | 25 +
.../apache/tuscany/model/assembly/Subsystem.java | 38 +
.../org/apache/tuscany/model/assembly/Wire.java | 48 +
.../tuscany/model/assembly/impl/AggregateImpl.java | 305 +
.../model/assembly/impl/AggregatePartImpl.java | 67 +
.../model/assembly/impl/AssemblyFactoryImpl.java | 204 +
.../assembly/impl/AssemblyModelContextImpl.java | 92 +
.../assembly/impl/AssemblyModelObjectImpl.java | 132 +
.../tuscany/model/assembly/impl/BindingImpl.java | 96 +
.../tuscany/model/assembly/impl/ComponentImpl.java | 222 +
.../assembly/impl/ComponentImplementationImpl.java | 108 +
.../model/assembly/impl/ComponentTypeImpl.java | 152 +
.../model/assembly/impl/ConfiguredPortImpl.java | 142 +
.../assembly/impl/ConfiguredPropertyImpl.java | 123 +
.../assembly/impl/ConfiguredReferenceImpl.java | 72 +
.../model/assembly/impl/ConfiguredServiceImpl.java | 48 +
.../model/assembly/impl/EntryPointImpl.java | 145 +
.../model/assembly/impl/ExtensibleImpl.java | 92 +
.../model/assembly/impl/ExternalServiceImpl.java | 135 +
.../model/assembly/impl/ModuleComponentImpl.java | 65 +
.../model/assembly/impl/ModuleFragmentImpl.java | 32 +
.../tuscany/model/assembly/impl/ModuleImpl.java | 243 +
.../tuscany/model/assembly/impl/PortImpl.java | 106 +
.../tuscany/model/assembly/impl/PropertyImpl.java | 178 +
.../tuscany/model/assembly/impl/ReferenceImpl.java | 50 +
.../model/assembly/impl/ServiceContractImpl.java | 81 +
.../tuscany/model/assembly/impl/ServiceImpl.java | 32 +
.../model/assembly/impl/ServiceURIImpl.java | 198 +
.../model/assembly/impl/SimpleComponentImpl.java | 32 +
.../tuscany/model/assembly/impl/SubsystemImpl.java | 49 +
.../tuscany/model/assembly/impl/WireImpl.java | 66 +
.../model/assembly/loader/AssemblyModelLoader.java | 81 +
.../tuscany/model/scdl/loader/SCDLModelLoader.java | 36 +
.../loader/impl/AssemblyModelLoadException.java | 41 +
.../loader/impl/SCDLAssemblyModelLoaderImpl.java | 198 +
.../loader/impl/SCDLModelContentHandlerImpl.java | 708 ++
.../model/scdl/loader/impl/SCDLXMLReader.java | 109 +
.../model/types/java/JavaServiceContract.java | 27 +
.../types/java/impl/JavaServiceContractImpl.java | 81 +
.../model/types/wsdl/WSDLServiceContract.java | 52 +
.../types/wsdl/impl/WSDLServiceContractImpl.java | 212 +
.../tuscany/model/util/ModelContentHandler.java | 71 +
.../tuscany/model/util/ModelTransformer.java | 51 +
.../tuscany/model/util/ModelTransformerImpl.java | 125 +
.../org/apache/tuscany/model/util/XMLNameUtil.java | 227 +
.../model/src/main/resources/model/assembly.mdl | 6092 ++++++++++++++++
.../model/src/main/resources/model/assembly.ppt | Bin 0 -> 60416 bytes
.../src/main/resources/model/sca-binding-sca.xsd | 21 +
.../resources/model/sca-binding-webservice.xsd | 22 +
.../model/src/main/resources/model/sca-core.xsd | 225 +
.../resources/model/sca-implementation-java.xsd | 22 +
.../main/resources/model/sca-interface-java.xsd | 23 +
.../main/resources/model/sca-interface-wsdl.xsd | 39 +
.../sca/model/src/main/resources/model/sca.xsd | 19 +
.../org/apache/tuscany/model/Messages.properties | 25 +
.../assembly/tests/SCDLAssemblyLoaderTestCase.java | 69 +
.../assembly/tests/SCDLXMLReaderTestCase.java | 67 +
.../account/services/account/AccountReport.java | 32 +
.../account/services/account/AccountService.java | 25 +
.../account/services/account/AccountService.wsdl | 78 +
.../services/account/AccountServiceImpl.java | 42 +
.../account/services/account/AccountSummary.java | 46 +
.../services/accountdata/AccountDataService.java | 26 +
.../accountdata/AccountDataServiceImpl.java | 48 +
.../services/accountdata/CheckingAccount.java | 39 +
.../services/accountdata/SavingsAccount.java | 39 +
.../account/services/accountdata/StockAccount.java | 48 +
.../services/stockquote/StockQuoteService.java | 24 +
.../services/stockquote/StockQuoteServiceImpl.java | 28 +
.../services/stockquote/StockQuoteWebService.wsdl | 98 +
.../apache/tuscany/model/assembly/tests/sca.module | 58 +
.../tuscany/model/assembly/tests/sca.subsystem | 24 +
.../java-stable-20060304/sca/plugin/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/plugin/pom.xml | 42 +
.../wsdl2java/plugin/WSDL2JavaGeneratorMojo.java | 101 +
sca-java-1.x/tags/java-stable-20060304/sca/pom.xml | 69 +
.../java-stable-20060304/sca/tomcat/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/tomcat/pom.xml | 106 +
.../org/apache/tuscany/tomcat/ContainerLoader.java | 100 +
.../tuscany/tomcat/TuscanyContextListener.java | 144 +
.../org/apache/tuscany/tomcat/TuscanyHost.java | 162 +
.../org/apache/tuscany/tomcat/TuscanyValve.java | 118 +
.../listener/BootstrapConfigurationException.java | 41 +
.../lifecycle/listener/RuntimeBootstrap.java | 113 +
.../listener/TomcatServerLifecycleListener.java | 40 +
.../listener/TomcatWebAppLifecycleListener.java | 249 +
.../listener/WebAppLifecycleListener.java | 152 +
.../apache/tuscany/tomcat/LocalStrings.properties | 20 +
.../org/apache/tuscany/tomcat/Messages.properties | 39 +
.../tomcat/integration/AbstractTomcatTest.java | 250 +
.../tuscany/tomcat/integration/TestServlet.java | 50 +
.../integration/TomcatIntegrationTestCase.java | 109 +
.../integration/TomcatStandaloneTestCase.java | 63 +
.../src/test/resources/app1/WEB-INF/axis2.xml | 167 +
.../test/resources/app1/WEB-INF/classes/sca.module | 21 +
.../tomcat/src/test/resources/app1/WEB-INF/web.xml | 6 +
.../sca/tomcat/src/test/resources/app1/index.html | 3 +
.../test/resources/app2/WEB-INF/classes/sca.module | 21 +
.../tomcat/src/test/resources/app2/WEB-INF/web.xml | 29 +
.../sca/tomcat/src/test/resources/app2/index.html | 3 +
.../java-stable-20060304/sca/tools/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sca/tools/pom.xml | 110 +
.../wsdl2java/generate/JavaInterfaceGenerator.java | 142 +
.../generate/SDODataBindingCodegenExtension.java | 48 +
.../wsdl2java/generate/WSDL2JavaGenerator.java | 319 +
.../tags/java-stable-20060304/sdo/impl/LICENSE.txt | 202 +
.../java-stable-20060304/sdo/impl/model/SDO.ecore | 962 +++
.../sdo/impl/model/SDO.genmodel | 564 ++
.../java-stable-20060304/sdo/impl/model/SDO.mdl | 7670 ++++++++++++++++++++
.../tags/java-stable-20060304/sdo/impl/pom.xml | 92 +
.../org/apache/tuscany/sdo/AnyTypeDataObject.java | 34 +
.../java/org/apache/tuscany/sdo/SDOFactory.java | 173 +
.../java/org/apache/tuscany/sdo/SDOPackage.java | 1599 ++++
.../org/apache/tuscany/sdo/SDOTypeVisitor.java | 46 +
.../tuscany/sdo/SimpleAnyTypeDataObject.java | 32 +
.../sdo/codegen/BytecodeInterfaceGenerator.java | 93 +
.../tuscany/sdo/codegen/GenerationException.java | 39 +
.../sdo/codegen/JavaInterfaceGenerator.java | 104 +
.../sdo/codegen/NoJavaImplementationException.java | 58 +
.../apache/tuscany/sdo/helper/CopyHelperImpl.java | 51 +
.../apache/tuscany/sdo/helper/DataFactoryImpl.java | 58 +
.../apache/tuscany/sdo/helper/DataHelperImpl.java | 303 +
.../tuscany/sdo/helper/EqualityHelperImpl.java | 67 +
.../tuscany/sdo/helper/HelperProviderImpl.java | 110 +
.../apache/tuscany/sdo/helper/TypeHelperImpl.java | 94 +
.../apache/tuscany/sdo/helper/XMLDocumentImpl.java | 349 +
.../apache/tuscany/sdo/helper/XMLHelperImpl.java | 116 +
.../apache/tuscany/sdo/helper/XSDHelperImpl.java | 273 +
.../tuscany/sdo/impl/AnyTypeDataObjectImpl.java | 296 +
.../org/apache/tuscany/sdo/impl/AttributeImpl.java | 163 +
.../apache/tuscany/sdo/impl/ChangeSummaryImpl.java | 692 ++
.../tuscany/sdo/impl/ChangeSummarySettingImpl.java | 110 +
.../org/apache/tuscany/sdo/impl/ClassImpl.java | 192 +
.../org/apache/tuscany/sdo/impl/DataGraphImpl.java | 816 +++
.../apache/tuscany/sdo/impl/DataObjectImpl.java | 1705 +++++
.../org/apache/tuscany/sdo/impl/DataTypeImpl.java | 177 +
.../tuscany/sdo/impl/DynamicDataObjectImpl.java | 196 +
.../sdo/impl/DynamicStoreDataObjectImpl.java | 88 +
.../java/org/apache/tuscany/sdo/impl/EnumImpl.java | 169 +
.../org/apache/tuscany/sdo/impl/ReferenceImpl.java | 129 +
.../apache/tuscany/sdo/impl/SDOFactoryImpl.java | 325 +
.../apache/tuscany/sdo/impl/SDOPackageImpl.java | 2133 ++++++
.../sdo/impl/SimpleAnyTypeDataObjectImpl.java | 330 +
.../tuscany/sdo/impl/StoreDataObjectImpl.java | 311 +
.../org/apache/tuscany/sdo/util/BasicSequence.java | 134 +
.../sdo/util/DataGraphResourceFactoryImpl.java | 644 ++
.../apache/tuscany/sdo/util/DataObjectUtil.java | 1727 +++++
.../java/org/apache/tuscany/sdo/util/SDOUtil.java | 221 +
.../impl/src/main/resources/META-INF/MANIFEST.MF | 19 +
.../services/commonj.sdo.impl.HelperProvider | 1 +
.../java/org/apache/tuscany/sdo/codegen/Bar1.java | 23 +
.../java/org/apache/tuscany/sdo/codegen/Bar2.java | 23 +
.../BytecodeInterfaceGeneratorTestCase.java | 164 +
.../java/org/apache/tuscany/sdo/codegen/Foo.java | 23 +
.../codegen/JavaInterfaceGeneratorTestCase.java | 126 +
.../apache/tuscany/sdo/codegen/MockProperty.java | 75 +
.../org/apache/tuscany/sdo/codegen/MockType.java | 93 +
.../tuscany/sdo/test/ChangeSummaryTestCase.java | 90 +
.../tuscany/sdo/test/DataTypeBaseTypeTestCase.java | 65 +
.../apache/tuscany/sdo/test/MixedTypeTestCase.java | 86 +
.../apache/tuscany/sdo/test/OpenTypeTestCase.java | 82 +
.../tuscany/sdo/test/SimpleCopyTestCase.java | 68 +
.../tuscany/sdo/test/SimpleDynamicTestCase.java | 81 +
.../tuscany/sdo/test/SimpleEqualityTestCase.java | 60 +
.../java/org/apache/tuscany/sdo/test/TestUtil.java | 168 +
.../apache/tuscany/sdo/test/XSDHelperTestCase.java | 57 +
.../sdo/impl/src/test/resources/datatype.xsd | 16 +
.../sdo/impl/src/test/resources/mixed.xml | 9 +
.../sdo/impl/src/test/resources/mixed.xsd | 23 +
.../sdo/impl/src/test/resources/open.xml | 8 +
.../sdo/impl/src/test/resources/open.xsd | 26 +
.../sdo/impl/src/test/resources/quote.xml | 14 +
.../sdo/impl/src/test/resources/shallowquote.xml | 11 +
.../sdo/impl/src/test/resources/simple.xsd | 23 +
.../src/test/resources/simplechangesummary.xml | 35 +
.../tags/java-stable-20060304/sdo/plugin/pom.xml | 42 +
.../apache/tuscany/sdo/plugin/GeneratorMojo.java | 162 +
sca-java-1.x/tags/java-stable-20060304/sdo/pom.xml | 48 +
.../.settings/org.eclipse.core.resources.prefs | 4 +
.../java-stable-20060304/sdo/tools/LICENSE.txt | 202 +
.../tags/java-stable-20060304/sdo/tools/pom.xml | 68 +
.../apache/tuscany/sdo/generate/JavaGenerator.java | 535 ++
.../tools/src/main/resources/META-INF/MANIFEST.MF | 13 +
.../src/test/java/com/example/simple/Quote.java | 307 +
.../java/com/example/simple/SimpleFactory.java | 46 +
.../java/com/example/simple/impl/QuoteImpl.java | 712 ++
.../com/example/simple/impl/SimpleFactoryImpl.java | 138 +
.../com/example/simple/impl/SimplePackageImpl.java | 908 +++
.../apache/tuscany/sdo/test/SimpleStaticTest.java | 64 +
.../sdo/tools/src/test/resources/enum.xsd | 32 +
.../sdo/tools/src/test/resources/simple.xsd | 23 +
.../tags/java-stable-20060304/spec/pom.xml | 92 +
.../tags/java-stable-20060304/spec/sca/LICENSE.txt | 202 +
.../tags/java-stable-20060304/spec/sca/pom.xml | 43 +
.../java/org/osoa/sca/CurrentModuleContext.java | 42 +
.../src/main/java/org/osoa/sca/ModuleContext.java | 85 +
.../osoa/sca/NoRegisteredCallbackException.java | 39 +
.../src/main/java/org/osoa/sca/RequestContext.java | 47 +
.../spec/sca/src/main/java/org/osoa/sca/SCA.java | 49 +
.../main/java/org/osoa/sca/ServiceReference.java | 67 +
.../java/org/osoa/sca/ServiceRuntimeException.java | 40 +
.../org/osoa/sca/ServiceUnavailableException.java | 64 +
.../java/org/osoa/sca/SessionEndedException.java | 39 +
.../sca/src/main/java/org/osoa/sca/Version.java | 43 +
.../sca/annotations/AllowsPassByReference.java | 32 +
.../java/org/osoa/sca/annotations/Callback.java | 31 +
.../osoa/sca/annotations/ComponentMetaData.java | 33 +
.../org/osoa/sca/annotations/ComponentName.java | 33 +
.../java/org/osoa/sca/annotations/Context.java | 34 +
.../java/org/osoa/sca/annotations/Destroy.java | 33 +
.../main/java/org/osoa/sca/annotations/Init.java | 39 +
.../java/org/osoa/sca/annotations/Property.java | 43 +
.../java/org/osoa/sca/annotations/Reference.java | 43 +
.../java/org/osoa/sca/annotations/Remotable.java | 34 +
.../main/java/org/osoa/sca/annotations/Scope.java | 42 +
.../java/org/osoa/sca/annotations/Service.java | 41 +
.../java/org/osoa/sca/annotations/Session.java | 49 +
.../java/org/osoa/sca/annotations/SessionID.java | 33 +
.../sca/src/main/resources/META-INF/MANIFEST.MF | 8 +
.../src/main/resources/schemas/sca-binding-sca.xsd | 21 +
.../resources/schemas/sca-binding-webservice.xsd | 22 +
.../sca/src/main/resources/schemas/sca-core.xsd | 216 +
.../resources/schemas/sca-implementation-java.xsd | 22 +
.../main/resources/schemas/sca-interface-java.xsd | 23 +
.../main/resources/schemas/sca-interface-wsdl.xsd | 23 +
.../spec/sca/src/main/resources/schemas/sca.xsd | 17 +
.../org/osoa/sca/annotations/CallbackTestCase.java | 57 +
.../osoa/sca/annotations/usage/CallbackType.java | 32 +
.../tags/java-stable-20060304/spec/sdo/LICENSE.txt | 202 +
.../tags/java-stable-20060304/spec/sdo/pom.xml | 37 +
.../src/main/java/commonj/sdo/ChangeSummary.java | 204 +
.../sdo/src/main/java/commonj/sdo/DataGraph.java | 73 +
.../sdo/src/main/java/commonj/sdo/DataObject.java | 1105 +++
.../sdo/src/main/java/commonj/sdo/Property.java | 79 +
.../sdo/src/main/java/commonj/sdo/Sequence.java | 131 +
.../spec/sdo/src/main/java/commonj/sdo/Type.java | 143 +
.../main/java/commonj/sdo/helper/CopyHelper.java | 82 +
.../main/java/commonj/sdo/helper/DataFactory.java | 61 +
.../main/java/commonj/sdo/helper/DataHelper.java | 184 +
.../java/commonj/sdo/helper/EqualityHelper.java | 89 +
.../main/java/commonj/sdo/helper/TypeHelper.java | 70 +
.../main/java/commonj/sdo/helper/XMLDocument.java | 152 +
.../main/java/commonj/sdo/helper/XMLHelper.java | 167 +
.../main/java/commonj/sdo/helper/XSDHelper.java | 193 +
.../commonj/sdo/impl/ExternalizableDelegator.java | 74 +
.../main/java/commonj/sdo/impl/HelperProvider.java | 365 +
.../sdo/impl/NoHelperProviderException.java | 54 +
.../sdo/src/main/resources/META-INF/MANIFEST.MF | 10 +
.../spec/sdo/src/main/resources/xml/datagraph.xsd | 77 +
.../spec/sdo/src/main/resources/xml/sdoJava.xml | 45 +
.../spec/sdo/src/main/resources/xml/sdoJava.xsd | 82 +
.../spec/sdo/src/main/resources/xml/sdoModel.xml | 87 +
.../spec/sdo/src/main/resources/xml/sdoModel.xsd | 217 +
.../spec/sdo/src/main/resources/xml/sdoXML.xml | 32 +
.../spec/sdo/src/main/resources/xml/sdoXML.xsd | 49 +
.../commonj/sdo/impl/HelperProviderTestCase.java | 91 +
.../src/test/java/test/DefaultHelperProvider.java | 58 +
.../src/test/java/test/TCCL1HelperProvider.java | 58 +
.../services/commonj.sdo.impl.HelperProvider | 3 +
.../services/commonj.sdo.impl.HelperProvider | 1 +
.../java-stable-20060304/testing/tomcat/axis2.xml | 167 +
.../testing/tomcat/bigbank/.classpath | 30 +
.../testing/tomcat/bigbank/.project | 17 +
.../samples/bigbank/TestBigBankTestCase.java | 110 +
.../java-stable-20060304/testing/tomcat/build.xml | 348 +
.../testing/tomcat/context.xsl | 48 +
.../testing/tomcat/helloworldaxis/.classpath | 13 +
.../testing/tomcat/helloworldaxis/.project | 17 +
.../helloworldaxis/TestHelloWorldAxisTestCase.java | 59 +
.../testing/tomcat/helloworldweb/.classpath | 16 +
.../testing/tomcat/helloworldweb/.project | 17 +
.../testing/tomcat/helloworldweb/pom.xml | 77 +
.../helloworldweb/TestHelloWorldWebTestCase.java | 100 +
.../TestHelloWorldWebDasTestCase.java | 67 +
.../testing/tomcat/helloworldws/pom.xml | 83 +
.../helloworldws/TestHelloWorldWSTestCase.java | 64 +
.../java-stable-20060304/testing/tomcat/pom.xml | 113 +
.../java-stable-20060304/testing/tomcat/server.xml | 369 +
.../java-stable-20060304/testing/tomcat/server.xsl | 48 +
1258 files changed, 138053 insertions(+)
create mode 100644 sca-java-1.x/tags/java-stable-20060304/BUILDING.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Command.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroup.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroupFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Key.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Pager.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Parameter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Column.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Command.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Config.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConfigFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConnectionProperties.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/KeyPair.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Parameter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Relationship.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ResultDescriptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Table.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ColumnImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/CommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConfigFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConfigImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConfigPackageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConnectionPropertiesImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/KeyPairImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ParameterImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/RelationshipImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ResultDescriptorImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/TableImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/QualifiedColumn.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/RelationshipWrapper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/TableWrapper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/DeleteGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DefaultConverter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/GraphBuilderMetadata.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/MultiTableRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultMetadata.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultSetProcessor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultSetRow.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/RowObjects.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/SingleTableRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/TableData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/TableRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/EAttributeMaker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/EReferenceMaker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ResultSetTypeMap.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeOperation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeSummarizer.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Changes.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandGroupImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ConnectionImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/CreateOperation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DatabaseObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteOperation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertList.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/OptimisticWriteCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/PagerImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Parameters.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/QueryString.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/SDODataTypeHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/SPCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/Statement.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateList.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/UpdateOperation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DebugFormatter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DebugUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/resources/config.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/resources/dasmodel4.mdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/BestPracticeTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CommandGroupTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedCommandTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/NameMappingTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/Paging.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/PartialUpdateTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/PassiveConnectionTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ReadDBSchemaTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SerializationTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TopDown.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TypeTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersByLastnameCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersStaticTypesCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/ReadCustomersWithShapeCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/commands/SimpleReadCustomersWithShapeCommand.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/CompanyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/CompanyType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DatagraphRoot.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DepartmentType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/EmployeeType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyPackageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyTypeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/DatagraphRootImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/DepartmentTypeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/EmployeeTypeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/AnOrder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/Customer.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/CustomerFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/DataGraphRoot.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/AnOrderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/CustomerFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/CustomerImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/CustomerPackageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/DataGraphRootImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CityData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyDeptData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CustomerData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepEmpData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderDetailsData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/PartData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/StateData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/TypesData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DB2Setup.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DasTest.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DerbySetup.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/JavaStoredProcs.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/MySQLSetup.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/RelationshipData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestDataWithExplicitColumns.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/IntegerToBooleanConverter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/SillyDateStringConverter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToIntegerConverter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToLongConverter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDB2.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDerby.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsMySQL.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/typed/SimplestStaticCrud.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/1xM_mapping_no_cud.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CompanyConfig.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustOrdersConnectionProps.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustomersOrdersConfig.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyDepartmentMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMappingWithCUD.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMappingWithInvalidCUD.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerOrderMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicStaticCustomer.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/cityStates.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/company.ecore
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/company.genmodel
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/company.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/companyMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customer.ecore
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customer.genmodel
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customer.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customerMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customerOrderRelationshipMapping.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.subsystem
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/test/java/org/apache/tuscany/samples/bigbank/account/client/AccountClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/Customer.jsp
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log.ctrl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/logmirror.ctrl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c10.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c101.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c111.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c121.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c130.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c141.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c150.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c161.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c171.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c180.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c191.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1a1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1b1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1c0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1d1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1e0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1f1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c20.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c200.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c211.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c221.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c230.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c241.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c251.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c260.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c271.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c281.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c290.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2a1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2b1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2c1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2d0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2e1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2f0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c300.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c31.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c311.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c41.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c51.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c60.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c71.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c81.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c90.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ca1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cb1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cc0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cd1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ce1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cf0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/service.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/account/AccountServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/LoginService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/SimpleLoginServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/account/AccountStatusTag.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/LoginBarrierTag.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/ServiceTag.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/ui/LoginServlet.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.subsystem
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/wsdl/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/bigbank-tags.tld
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/login.html
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/summary.jsp
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestAccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestLoginService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/CompanyAppGbl.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/db.lck
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log.ctrl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/logmirror.ctrl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c10.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c101.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c111.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c121.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c130.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c141.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c150.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c161.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c171.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c180.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c191.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1a1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1b1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1c0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1d1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1e0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1f1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c20.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c200.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c211.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c221.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c230.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c241.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c251.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c260.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c271.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c281.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c290.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2a1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2b1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2c1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2d0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2e1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2f0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c300.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c31.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c311.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c320.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c331.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c340.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c351.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c360.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c371.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c380.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c391.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3a0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3b1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3c0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3d1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3e0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3f1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c400.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c41.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c411.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c420.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c431.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c440.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c451.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c460.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c471.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c481.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c490.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c4a1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c51.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c60.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c71.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c81.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c90.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ca1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cb1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cc0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cd1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ce1.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cf0.dat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/service.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/java/org/apache/tuscany/samples/companyweb/CompanyClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/resources/CompanyConfig.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/webapp/Company.jsp
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/das/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/test/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/axiscmds.bat
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/helloworld.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldAxisClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplServiceLocator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingSkeleton.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingStub.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/deploy.wsdd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/undeploy.wsdd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/build.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetings.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetingsResponse.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplCallbackHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplMessageReceiver.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplSkeleton.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplStub.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/helloworld.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/services.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplTest.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/src/main/webapp/WEB-INF/server-config.wsdd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/src/webapp/WEB-INF/server-config.wsdd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/src/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/wsdl/helloworld.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/readme.htm
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldServiceComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/wsdl/helloworld.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/helloworld/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/samples/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/engine/config/server-config.wsdd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/system.fragment
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/WebServiceAssemblyLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountReport.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLit.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLitWrapped.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/RpcLit.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceBinding.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceAssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceBindingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceConfigurationBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/WebServiceEntryPointConfigurationBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/ExternalWebServiceRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WebServiceEntryPointRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceTargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceOperationMetaData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/loader/WebServiceSCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/org/apache/tuscany/binding/axis2/engine/config/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/system.fragment
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/WebServiceAssemblyLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountReport.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLit.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLitWrapped.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/RpcLit.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/helloworld.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/discovery/util/ServiceProviderRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/ClassLoaderObjectInputStream.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLClassLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLInputStream.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/IOHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/UTF8String.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/LogLevel.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/MonitorFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/InvalidLevelException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/JavaLoggingMonitorFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/NullMonitorFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/resource/ResourceLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/resource/impl/ResourceLoaderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/resources/META-INF/services/org.apache.tuscany.common.logging.LogProvider
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/resources/META-INF/services/org.apache.tuscany.common.resource.loader.ResourceLoaderProvider
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/resources/org/apache/tuscany/common/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/test/java/org/apache/tuscany/common/monitor/impl/JavaLoggingTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/common/src/test/resources/org/apache/tuscany/common/monitor/impl/JavaLoggingTestCase$Monitor.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/assembly/JavaAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/assembly/JavaImplementation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/assembly/impl/JavaAssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/config/JavaComponentRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaComponentContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/invocation/AbstractJavaComponentInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/invocation/StaticJavaComponentTargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/resources/org/apache/tuscany/container/java/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/resources/system.fragment
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/main/test/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/HelloWorldImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/HelloWorldImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/HelloWorldWithFieldProperties.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/NakedHelloWorld.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/mock/NakedHelloWorldWithInterface.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/account/AccountReport.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/account/AccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/account/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/account/AccountSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockHandlerBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/MockInterceptorBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/config/ModuleComponentConfigurationLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/BadPojoTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoLifecycleTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/context/PojoTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaIntegrationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaRuntimeBootstrapTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/MediationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/StaticPojoInvokerTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/MockHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/MockSyncInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/SimpleSource.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/SimpleSourceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/SimpleTarget.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/invocation/mock/SimpleTargetImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockConfigContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooESTargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEntryPointRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/AbstractGenericComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/BadContextPojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/BadNamePojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/DataObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/GenericComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/LocalComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeComponentImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeDestroyOnlyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeEagerInitComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeEagerInitDestroyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeInitDestroyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/ModuleScopeInitOnlyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/RemotableService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/RemotableServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/RequestScopeComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/RequestScopeComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SessionScopeComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SessionScopeComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SessionScopeDestroyOnlyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SessionScopeInitDestroyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/SessionScopeInitOnlyComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/StatelessComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/StatelessComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/AggregateScopeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicHttpSessionScopeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicModuleScopeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicRequestScopeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/BasicStatelessScopeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/HttpSessionScopeLifecycleTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/ModuleScopeLifecycleTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedEagerInitPojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/OrderedInitPojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/java/org/apache/tuscany/container/java/scopes/RequestScopeLifecycleTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/resources/org/apache/tuscany/container/java/assembly/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.java/src/test/resources/org/apache/tuscany/container/java/config/ModuleComponentLoaderTest1.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptAssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptTargetWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/config/JavaScriptComponentRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/rhino/RhinoScript.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/java/org/apache/tuscany/container/js/rhino/RhinoTargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/resources/model/sca-implementation-js.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/resources/org/apache/tuscany/container/js/handler/JavaScriptComponentConfigurationHandler.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/main/resources/system.fragment
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/samples/java/org/apache/tuscany/container/js/sample/helloworld/HelloWorld.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/samples/java/org/apache/tuscany/container/js/sample/helloworld/HelloWorldImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/samples/java/org/apache/tuscany/container/js/sample/helloworld/HelloWorldImpl.js
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/samples/java/org/apache/tuscany/container/js/sample/helloworld/Main.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/samples/java/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/mock/HelloWorldService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/JavaScriptAssemblyLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/account/AccountReport.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/account/AccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/account/AccountSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/builder/JSComponentContextBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/builder/MockHandlerBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/builder/MockInterceptorBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/config/ModuleComponentConfigurationLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/integration/JSComponentContextTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/invocation/mock/MockHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/invocation/mock/MockSyncInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/mock/MockAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/mock/MockModuleFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/java/org/apache/tuscany/container/js/rhino/RhinoInvokerTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/mock/HelloWorldImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/mock/HelloWorldImpl.js
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/AccountServiceImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/account/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/account/AccountServiceImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/stockquote/StockQuoteServiceImpl.componentType
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/assembly/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/config/ModuleComponentLoaderTest1.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/container.js/src/test/resources/org/apache/tuscany/container/js/rhino/RhinoInvokerTestCase.js
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/addressing/AddressingConstants.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/addressing/AddressingFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/addressing/EndpointReference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/addressing/impl/AddressingFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/addressing/impl/EndpointReferenceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderConfigException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderInitException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/ConfigurationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/ContextCreationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/HierarchicalWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/NoAccessorException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/ObjectFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/RuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/RuntimeConfigurationBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/UnknownTypeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/WireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/AssemblyVisitor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/BaseExternalServiceRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/HierarchicalBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/ProxyObjectFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/client/TuscanyRuntime.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/ComponentTypeIntrospector.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/ConfigurationLoadException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/ImplementationCache.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/InvalidRootElementException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/JavaIntrospectionHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/MissingResourceException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/ModuleComponentConfigurationLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/impl/Java5ComponentTypeIntrospector.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/config/impl/ModuleComponentConfigurationLoaderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/AbstractContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/AggregateContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/AutowireContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/AutowireResolutionException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ConfigurationContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/Context.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ContextInitException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ContextRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/CoreRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/DuplicateNameException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/EntryPointContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/EventContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/EventException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ExternalServiceContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/InstanceContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/InvalidNameException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/LifecycleEventListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/QualifiedName.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/RuntimeEventListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeAwareContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeIdentifier.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeInitializationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ScopeStrategy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/ServiceNotFoundException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/SimpleComponentContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/SystemAggregateContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/TargetException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AbstractAggregateContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/impl/AggregateContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/impl/EntryPointContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/impl/EventContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeStrategy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/AggregateScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/DefaultScopeStrategy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/webapp/HTTPSessionExpirationListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/webapp/LazyHTTPSessionId.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/webapp/TuscanyRequestFilter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/context/webapp/TuscanyWebAppRuntime.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/EventInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/FactoryInitException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/FieldInjector.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/InjectionRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/Injector.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/MethodEventInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/MethodInjector.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/NullEventInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/ObjectCallbackException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/ObjectCreationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/ReferenceTargetFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/SDOObjectFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/injection/SingletonObjectFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/Interceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/InvocationRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/MessageChannel.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/MessageHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/MethodHashMap.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/ProxyConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/TargetInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/InvokerInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/MessageChannelImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/MessageDispatcher.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/NullProxyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/OneWayInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/impl/RequestResponseInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/jdk/JDKInvocationHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/jdk/JDKProxyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/jdk/JDKProxyFactoryFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/spi/ProxyCreationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/spi/ProxyException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/spi/ProxyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/spi/ProxyFactoryFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/invocation/spi/ProxyInitializationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/loader/SCDLModelLoaderRegistry.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/loader/impl/SCDLModelLoaderRegistryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/message/Message.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/message/MessageFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/message/impl/MessageFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/message/impl/MessageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeMonitor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeScopeStrategy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/annotation/Autowire.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/annotation/ParentContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemAssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemBinding.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/SystemImplementation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemAssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemBindingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/assembly/impl/SystemImplementationImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemEntryPointBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemComponentRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemEntryPointRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemExternalServiceRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/config/SystemObjectRuntimeConfiguration.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemAggregateContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemComponentContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemEntryPointContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemExternalServiceContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/context/SystemScopeStrategy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/system/loader/SystemSCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/webapp/ContextBinder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyRequestFilter.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/java/org/apache/tuscany/core/webapp/TuscanyServletListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/resources/META-INF/services/org.apache.tuscany.core.runtime.proxy.ServiceProxyFactory
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/resources/model/anyobject.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/resources/model/tuscany-system.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/resources/org/apache/tuscany/core/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/main/resources/system.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/builder/impl/NegativeDefaultWireBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/config/JavaIntrospectionHelperTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/config/ModuleComponentConfigurationLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/context/AbstractAggregateHierarchyTests.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/context/AggregateComponentContextRegisterTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/context/AggregateHierarchyTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/context/QualifiedNameTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/context/scope/DefaultScopeStrategyTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/injection/Bean1.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/injection/ReflectionHelperTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/injection/SuperBean.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/InvocationConfigurationErrorTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/InvocationConfigurationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/InvocationErrorTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/jdk/JDKInvocationHandlerTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/jdk/JDKProxyFactoryTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/MockHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/MockScopeContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/MockStaticInvoker.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/MockSyncInterceptor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/SimpleSource.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/SimpleSourceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/SimpleTarget.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/invocation/mock/SimpleTargetImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/mock/MockConfigContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/mock/MockFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/mock/component/GenericSystemComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/mock/component/ModuleScopeSystemComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/mock/component/ModuleScopeSystemComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeBootTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/runtime/RuntimeContextImplTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentContextBuilderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/builder/SystemComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/builder/impl/AssemblyVisitorTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemAggregateComponentContextRegisterTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemAggregateComponentContextTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemAggregateHierarchyTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemBootstrapTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/SystemObjectRegistrationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/java/org/apache/tuscany/core/system/context/TestBuilder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/resources/org/apache/tuscany/core/config/ModuleComponentLoaderTest1.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/core/src/test/resources/system.fragment
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/ModelRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Aggregate.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/AggregatePart.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyModelContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyModelObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/AssemblyModelVisitor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Binding.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Component.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ComponentImplementation.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ComponentType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredPort.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredProperty.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredReference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ConfiguredService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/EntryPoint.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Extensible.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ExternalService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModelInitException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Module.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ModuleFragment.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Multiplicity.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/OverrideOption.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Port.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Property.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Reference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/RuntimeConfigurationHolder.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Scope.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Service.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceContract.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/SimpleComponent.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Subsystem.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/Wire.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregateImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AggregatePartImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyModelContextImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/AssemblyModelObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/BindingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ComponentImplementationImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ComponentTypeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPortImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredPropertyImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredReferenceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ConfiguredServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/EntryPointImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ExtensibleImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ExternalServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/WireImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/assembly/loader/AssemblyModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/SCDLModelLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/AssemblyModelLoadException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLAssemblyModelLoaderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLXMLReader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/types/java/JavaServiceContract.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/impl/WSDLServiceContractImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/util/ModelContentHandler.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/util/ModelTransformer.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/util/ModelTransformerImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/assembly.mdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/assembly.ppt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-binding-sca.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-binding-webservice.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-core.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-implementation-java.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-interface-java.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca-interface-wsdl.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/model/sca.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/main/resources/org/apache/tuscany/model/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLAssemblyLoaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/SCDLXMLReaderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/account/AccountReport.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/account/AccountService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/account/AccountService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/account/AccountSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/java/org/apache/tuscany/model/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/resources/org/apache/tuscany/model/assembly/tests/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/model/src/test/resources/org/apache/tuscany/model/assembly/tests/sca.subsystem
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/plugin/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/plugin/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/ContainerLoader.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyHost.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyValve.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/BootstrapConfigurationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/RuntimeBootstrap.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/TomcatServerLifecycleListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/TomcatWebAppLifecycleListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/lifecycle/listener/WebAppLifecycleListener.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/resources/org/apache/tuscany/tomcat/LocalStrings.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/main/resources/org/apache/tuscany/tomcat/Messages.properties
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TestServlet.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatStandaloneTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app1/WEB-INF/classes/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app1/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app1/index.html
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app2/WEB-INF/classes/sca.module
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app2/WEB-INF/web.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tomcat/src/test/resources/app2/index.html
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tools/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tools/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/model/SDO.ecore
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/model/SDO.genmodel
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/model/SDO.mdl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/main/resources/META-INF/services/commonj.sdo.impl.HelperProvider
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar1.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar2.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGeneratorTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Foo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGeneratorTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockProperty.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ChangeSummaryTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DataTypeBaseTypeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MixedTypeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/OpenTypeTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleCopyTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleDynamicTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleEqualityTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XSDHelperTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/datatype.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/mixed.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/mixed.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/open.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/open.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/quote.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/shallowquote.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/simple.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/impl/src/test/resources/simplechangesummary.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/plugin/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/.settings/org.eclipse.core.resources.prefs
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/com/example/simple/Quote.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/com/example/simple/SimpleFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/com/example/simple/impl/QuoteImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/com/example/simple/impl/SimpleFactoryImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/com/example/simple/impl/SimplePackageImpl.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/SimpleStaticTest.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/resources/enum.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/sdo/tools/src/test/resources/simple.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/CurrentModuleContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/ModuleContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/NoRegisteredCallbackException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/RequestContext.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/SCA.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/ServiceReference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/ServiceRuntimeException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/ServiceUnavailableException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/SessionEndedException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/Version.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/AllowsPassByReference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Callback.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/ComponentMetaData.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/ComponentName.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Context.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Destroy.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Init.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Property.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Reference.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Remotable.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Scope.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Service.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/Session.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/java/org/osoa/sca/annotations/SessionID.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-binding-sca.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-binding-webservice.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-core.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-implementation-java.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-interface-java.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca-interface-wsdl.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/main/resources/schemas/sca.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/test/java/org/osoa/sca/annotations/CallbackTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sca/src/test/java/org/osoa/sca/annotations/usage/CallbackType.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/LICENSE.txt
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/ChangeSummary.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/DataGraph.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/DataObject.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/Property.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/Sequence.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/Type.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/CopyHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/DataFactory.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/DataHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/EqualityHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/TypeHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/XMLDocument.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/XMLHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/helper/XSDHelper.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/impl/ExternalizableDelegator.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/impl/HelperProvider.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/java/commonj/sdo/impl/NoHelperProviderException.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/datagraph.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoJava.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoJava.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoModel.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoModel.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoXML.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/main/resources/xml/sdoXML.xsd
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/test/java/commonj/sdo/impl/HelperProviderTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/test/java/test/DefaultHelperProvider.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/test/java/test/TCCL1HelperProvider.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/test/resources/default/META-INF/services/commonj.sdo.impl.HelperProvider
create mode 100644 sca-java-1.x/tags/java-stable-20060304/spec/sdo/src/test/resources/tccl1/META-INF/services/commonj.sdo.impl.HelperProvider
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/axis2.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/bigbank/.classpath
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/bigbank/.project
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/bigbank/src/test/java/org/apache/tuscany/samples/bigbank/TestBigBankTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/build.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/context.xsl
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldaxis/.classpath
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldaxis/.project
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldaxis/src/test/java/org/apache/tuscany/samples/helloworldaxis/TestHelloWorldAxisTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldweb/.classpath
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldweb/.project
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldweb/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/TestHelloWorldWebTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldwebdas/src/test/java/org/apache/tuscany/samples/helloworldwebdas/TestHelloWorldWebDasTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldws/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/helloworldws/src/test/java/org/apache/tuscany/samples/helloworldws/TestHelloWorldWSTestCase.java
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/pom.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/server.xml
create mode 100644 sca-java-1.x/tags/java-stable-20060304/testing/tomcat/server.xsl
(limited to 'sca-java-1.x/tags')
diff --git a/sca-java-1.x/tags/java-stable-20060304/BUILDING.txt b/sca-java-1.x/tags/java-stable-20060304/BUILDING.txt
new file mode 100644
index 0000000000..ef2368d05d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/BUILDING.txt
@@ -0,0 +1,41 @@
+Building tuscany/java
+=====================
+
+Initial setup
+-------------
+
+0) Install J2SE 5.0 SDK (1.5.2_02 works)
+
+1) Install Maven:
+
+Download maven 2.0.2 (download from http://maven.apache.org/download.html).
+Set the env variable MAVEN_HOME to point at your maven installation.
+Add $MAVEN_HOME/bin to your path.
+
+2) Install required Sun jars that can't be re-hosted by maven repos:
+
+You need to download the following from Sun directly:
+
+ jaf-1_0_2-upd2.zip
+ url: http://java.sun.com/products/javabeans/glasgow/jaf.html
+ jar: activation.jar
+
+ javamail-1_3_3_01.zip (actual requirement is for 1.3.2, but 1.3.3 works)
+ url: http://java.sun.com/products/javamail/downloads/index.html
+ jar: mail.jar
+
+Use the following mvn command-lines to install these into your repo:
+
+mvn install:install-file -Dfile=activation.jar -DgroupId=javax.activation
+-DartifactId=activation -Dversion=1.0.2 -Dpackaging=jar
+mvn install:install-file -Dfile=mail.jar -DgroupId=javax.mail
+-DartifactId=mail -Dversion=1.3.2 -Dpackaging=jar
+
+The -Dfile property wants the full path to each jar.
+
+
+Building
+--------
+
+1) cd tuscany/java
+2) mvn
diff --git a/sca-java-1.x/tags/java-stable-20060304/LICENSE.txt b/sca-java-1.x/tags/java-stable-20060304/LICENSE.txt
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/pom.xml b/sca-java-1.x/tags/java-stable-20060304/das/pom.xml
new file mode 100644
index 0000000000..c7bacfe142
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/pom.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ org.apache.tuscany
+ tuscany-project
+ SNAPSHOT
+
+ 4.0.0
+ org.apache.tuscany.das
+ tuscany-das
+ pom
+ Tuscany DAS
+ SNAPSHOT
+
+
+ rdb
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/LICENSE.txt b/sca-java-1.x/tags/java-stable-20060304/das/rdb/LICENSE.txt
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/pom.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/pom.xml
new file mode 100644
index 0000000000..6cbd9b1163
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/pom.xml
@@ -0,0 +1,80 @@
+
+
+
+
+ org.apache.tuscany.das
+ tuscany-das
+ SNAPSHOT
+
+ 4.0.0
+ tuscany-das-rdb
+ Tuscany DAS for Relational Databases
+ SNAPSHOT
+
+
+
+ commonj
+ sdo-api
+ SNAPSHOT
+ compile
+
+
+
+ org.apache.tuscany
+ tuscany-sdo-impl
+ SNAPSHOT
+ compile
+
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+ org.apache.derby
+ derby
+ 10.1.2.1
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ src/main/resources/META-INF/MANIFEST.MF
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*AllTestsDerby.java
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
new file mode 100644
index 0000000000..0c53492d15
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ApplyChangesCommand.java
@@ -0,0 +1,186 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.sql.Connection;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+
+/**
+ * An ApplyChangesCommand is used to flush the changes associated with a
+ * modified graph of DataObjects to a database.
+ *
+ *
+ */
+public interface ApplyChangesCommand {
+
+ /**
+ * Adds a user-provided update command. In the absence of a user-provided
+ * command, the DAS will generate one. However this alternative may make
+ * sense if the user requires a SQL statement different from what the DAS
+ * generates.
+ *
+ * @param type
+ * The DataObject type this command applys to
+ * @param cmd
+ * The Command used to UPDATE data objects of the specified type
+ */
+ public void addUpdateCommand(Type type, Command cmd);
+
+ /**
+ * Adds a user-provided create command. In the absence of a user-provided
+ * command, the DAS will generate one. However this alternative may make
+ * sense if the user requires a SQL statement different from what the DAS
+ * generates.
+ *
+ * @param type
+ * The DataObject type this command applys to
+ * @param cmd
+ * The Command used to INSERT data objects of the specified type
+ */
+ public void addCreateCommand(Type type, Command cmd);
+
+ /**
+ * Adds a user-provided delete command. In the absence of a user-provided
+ * command, the DAS will generate one. However this alternative may make
+ * sense if the user requires a SQL statement different from what the DAS
+ * generates.
+ *
+ * @param type
+ * The DataObject type this command applys to
+ * @param cmd
+ * The Command used to DELETE data objects of the specified type
+ */
+ public void addDeleteCommand(Type type, Command cmd);
+
+ /**
+ * The change history is scanned and modifications to the graph of data
+ * objects are flushed to the database.
+ *
+ * @param root
+ * the topmost containing data object
+ */
+ public void execute(DataObject root);
+
+ /**
+ * TODO - Need to remove this. COnfig now set via factory method
+ */
+ public void setMapping(InputStream mappingModel) throws IOException;
+
+ /**
+ * Provides the java.sql.Connection to be used for this executing this
+ * command.
+ *
+ * @param connection
+ * the java.sql.Connection
+ */
+ public void setConnection(Connection connection);
+
+ /**
+ * Provides the java.sql.Connection to be used for this executing this
+ * command.
+ *
+ * @param connection
+ * the java.sql.Connection
+ * @param manageTransactions
+ * true if the DAS should perform tx
+ * commit/rollback
+ */
+ public void setConnection(Connection connection, boolean manageTransactions);
+
+ /**
+ * Add relationship metadata necessary for processing query results. This is
+ * an alternative to providing the same information in a config file.
+ *
+ * @param parent
+ * a name identifying the relationship parent key (example:
+ * "CUSTOMER.ID")
+ * @param child
+ * a name identifying the relationship child key
+ * ("ORDER.CUSTOMER_ID")
+ */
+ public void addRelationship(String parent, String child);
+
+ /**
+ * Add relationship metadata necessary for processing query results. This is
+ * an alternative to providing the same information in a config file.
+ *
+ * @param parentKey
+ * the parent key for the relationship
+ * @param childKey
+ * the child key in the relationship
+ * @see Key
+ */
+ public void addRelationship(Key parentKey, Key childKey);
+
+ /**
+ * Add primary key metadata. This is an alternative to providing the same
+ * information in a config file.
+ *
+ * @param pk
+ * the string identifying a prmary key. (Example: "CUSTOMER.ID")
+ */
+ public void addPrimaryKey(String columnName);
+
+ /**
+ * Add primary key metadata. This is an alternative to providing the same
+ * information in a config file.
+ *
+ * @param key
+ * the primary key
+ * @see Key
+ */
+ public void addPrimaryKey(Key key);
+
+ /**
+ * Adds a column to be used in a optimistic concurrency control (OCC)
+ * strategy. The generated UPDATE statement will include a overqualified
+ * where clause using this column
+ *
+ * @param columnName
+ * the name of the column to be used for OCC
+ */
+ public void addCollisionColumn(String columnName);
+
+ /**
+ * Add metadata that indicate a column is a generated primary key.
+ *
+ * @param string
+ * the name of the generated primary key column. Example
+ * ("COMPANY.ID")
+ */
+ public void addGeneratedPrimaryKey(String columnName);
+
+ /**
+ * Associate a {@link Converter} with a column to be used by this command.
+ * This is an alternative to providing the same information in a config
+ * file.
+ *
+ * @param name
+ * the name of the column being assigned a converter (example:
+ * "CUSTOMER.LASTNAME")
+ * @param converterName
+ * the name of the converter instance being assigned (example:
+ * org.company.project.StringConverter)
+ * @see Converter
+ **/
+ public void addConverter(String name, String converterName);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Command.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Command.java
new file mode 100644
index 0000000000..0f5534f705
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Command.java
@@ -0,0 +1,283 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.impl.CommandFactoryImpl;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+
+/**
+ * A Command is used to execute a read or write to a database
+ *
+ *
+ */
+public interface Command {
+
+ public static CommandFactory FACTORY = new CommandFactoryImpl();
+
+ /**
+ * Performs the function defined by the command
+ */
+ public void execute();
+
+ /**
+ * Performs the function defined by the command and return the results in
+ * the root DataObject
+ *
+ * @return the root DataObject
+ */
+ public DataObject executeQuery();
+
+ /**
+ * Returns the parameter associated with "name"
+ *
+ * @param name
+ * the name of the parameter
+ * @return the associated parameter
+ */
+ public Parameter getParameter(String name);
+
+ /**
+ * Returns the Parameter at index
+ *
+ * @param index
+ * the index of the Parameter
+ * @return the associated Parameter
+ */
+ public Parameter getParameter(int index);
+
+ /**
+ * Sets the value of the named Parameter
+ *
+ * @param name
+ * the name of this Parameter
+ * @param value
+ * the value for the Parameter
+ */
+ public void setParameterValue(String name, Object value);
+
+ /**
+ * Sets the value of the associated Parameter
+ *
+ * @param index
+ * the index of the Parameter
+ * @param value
+ * the value for the Parameter
+ */
+ public void setParameterValue(int index, Object value);
+
+ /**
+ * Sets the "type" of the associated Parameter
+ *
+ * @param name
+ * the name of this Parameter
+ * @param type
+ * the SDODataTypes-defined "type" for the Parameter.
+ */
+ public void setParameterType(String string, Type dataType);
+
+ /**
+ * Sets the "type" of the associated Parameter
+ *
+ * @param index
+ * the index of the Parameter
+ * @param type
+ * the SDODataTypes-defined "type" for the Parameter.
+ */
+ public void setParameterType(int index, Type dataType);
+
+ /**
+ * Returns the value of the associated Parameter
+ *
+ * @param name
+ * the name of the Parameter
+ * @return the value of the Parameter
+ */
+ public Object getParameterValue(String name);
+
+ /**
+ * Returns the value of the associated Parameter
+ *
+ * @param index
+ * the index of the Parameter
+ * @return the value of the Parameter
+ */
+ public Object getParameterValue(int index);
+
+ /**
+ * Adds a Parameter to the command
+ *
+ * @param index
+ * the index of the parameter
+ * @param sdoType
+ * the commonj.sdo.Type of the Parameter
+ */
+ public void addParameter(int index, Type sdoType);
+
+ /**
+ * Adds a Parameter to the command
+ *
+ * @param name
+ * the index of the parameter
+ * @param sdoType
+ * the commonj.sdo.Type of the Parameter
+ */
+ public void addParameter(String name, Type sdoType);
+
+ /**
+ * Adds a Parameter to the command
+ *
+ * @param index
+ * the index of the parameter
+ * @param direction
+ * the direction of the Parameter. Either Parameter.IN,
+ * Parameter.OUT or Parameter.INOUT
+ * @param sdoType
+ * specifies the type as a commonj.sdo.Type from
+ * {@link SDODataTypes}
+ */
+ public void addParameter(int index, int direction, Type sdoType);
+
+ /**
+ * Adds a Parameter to the command
+ *
+ * @param name
+ * the name associated with the Parameter
+ * @param direction
+ * the direction of the Parameter. Either Parameter.IN,
+ * Parameter.OUT or Parameter.INOUT
+ * @param sdoType
+ * specifies the type as a commonj.sdo.Type from
+ * {@link SDODataTypes}
+ */
+ public void addParameter(String name, int direction, Type sdoType);
+
+ /**
+ * Specifies an object model for a graph of DataObjects returned by
+ * #executeQuery()
+ *
+ * @param schema
+ * the model as a commonj.sdo.Type
+ */
+ public void setDataObjectModel(Type schema);
+
+ /**
+ * Defines the structure of the ResultSet returned by the JDBC Driver when
+ * this command is executed. If the shape is not specified then the shape is
+ * taken from the ResultSetMetatadta instance provided by the JDBC Driver.
+ *
+ * This method is prvided primarily to support platforms (such as Oracle)
+ * that do not provide complete support for ResultSetMetadata
+ *
+ * @param shape
+ * the specified result set shape
+ * @see ResultSetShape
+ */
+ public void setResultSetShape(ResultSetShape shape);
+
+ /**
+ * Provides the java.sql.Connection to be used for this executing this
+ * command.
+ *
+ * @param connection
+ * the java.sql.Connection
+ */
+ public void setConnection(Connection connection);
+
+ /**
+ * Provides the java.sql.Connection to be used for this executing this
+ * command.
+ *
+ * @param connection
+ * the java.sql.Connection
+ * @param manageTransactions
+ * true if the DAS should perform tx
+ * commit/rollback
+ */
+ public void setConnection(Connection connection, boolean manageTransactions);
+
+ /**
+ * Add relationship metadata necessary for processing query results. This is
+ * an alternative to providing the same information in a config file.
+ *
+ * @param parent
+ * a name identifying the relationship parent key (example:
+ * "CUSTOMER.ID")
+ * @param child
+ * a name identifying the relationship child key
+ * ("ORDER.CUSTOMER_ID")
+ */
+ public void addRelationship(String parent, String child);
+
+ /**
+ * Add relationship metadata necessary for processing query results. This is
+ * an alternative to providing the same information in a config file.
+ *
+ * @param parentKey
+ * the parent key for the relationship
+ * @param childKey
+ * the child key in the relationship
+ * @see Key
+ */
+ public void addRelationship(Key parentKey, Key childKey);
+
+ /**
+ * Add primary key metadata. This is an alternative to providing the same
+ * information in a config file.
+ *
+ * @param pk
+ * the string identifying a prmary key. (Example: "CUSTOMER.ID")
+ */
+ public void addPrimaryKey(String pk);
+
+ /**
+ * Add primary key metadata. This is an alternative to providing the same
+ * information in a config file.
+ *
+ * @param key
+ * the primary key
+ * @see Key
+ */
+ public void addPrimaryKey(Key key);
+
+ /**
+ * Associate a {@link Converter} with a column to be used by this command.
+ * This is an alternative to providing the same information in a config
+ * file.
+ *
+ * @param name
+ * the name of the column being assigned a converter (example:
+ * "CUSTOMER.LASTNAME")
+ * @param converterName
+ * the name of the converter instance being assigned (example:
+ * org.company.project.StringConverter)
+ * @see Converter
+ */
+ public void addConverter(String name, String converterName);
+
+ /**
+ * Cleans up and realeases all resources associated with this command. This
+ * should be called when the application is done with this command.
+ */
+ public void close();
+
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
new file mode 100644
index 0000000000..c68855ec2a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandFactory.java
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * A CommandFactory produces {@link Command} and {@link ApplyChangesCommand}
+ * instances.
+ *
+ *
+ */
+public interface CommandFactory {
+
+ /**
+ * Creates a Command based on the provided SQL statement
+ *
+ * @param sql
+ * The SQL statement
+ * @return returns a Command instance
+ */
+ public Command createCommand(String sql);
+
+ /**
+ * Creates a Command based on the provided SQL statement and configuration
+ *
+ * @param sql
+ * The SQL statement
+ * @param mappingModel
+ * The congiguration as XML file stream
+ * @return returns a COmmand instance
+ */
+ public Command createCommand(String sql, InputStream mappingModel);
+
+ /**
+ * Creates an {@linkApplyChangesCommand} instance
+ * @return Returns the ApplyChangesCommand instance
+ */
+ public ApplyChangesCommand createApplyChangesCommand();
+
+ /**
+ * Creates an {@linkApplyChangesCommand} instance with the provided configuration
+ * @param mappingModel The provided configuration as a stream over an xml file
+ * @return Returns an ApplyChangesCOmmand in stance
+ * @throws IOException
+ * TODO - Either remove this throws clause or add it to createCommand
+ */
+ public ApplyChangesCommand createApplyChangesCommand(
+ InputStream mappingModel) throws IOException;
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroup.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroup.java
new file mode 100644
index 0000000000..5a39e0d390
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroup.java
@@ -0,0 +1,56 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.impl.CommandGroupFactoryImpl;
+
+/**
+ * A CommandGroup represents a set of {@link Command} and single
+ * {@link ApplyChangesCommand} that are created from a common config file.
+ *
+ *
+ */
+public interface CommandGroup {
+
+ public static CommandGroupFactory FACTORY = new CommandGroupFactoryImpl();
+
+ /**
+ * Return the ApplyChangesCommnad for this configured factory
+ *
+ * @return Returns an instance of ApplyChangesCommand
+ */
+ public ApplyChangesCommand getApplyChangesCommand();
+
+ /**
+ * Gets the named command from this factory's inventory
+ *
+ * @param name
+ * The identifying name of the requested command
+ * @return Returns the identified command
+ */
+ public Command getCommand(String name);
+
+ /**
+ * Set the default connection for all command in the group
+ *
+ * @param connection
+ */
+ public void setConnection(Connection connection);
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroupFactory.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroupFactory.java
new file mode 100644
index 0000000000..dfcdd81823
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/CommandGroupFactory.java
@@ -0,0 +1,37 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.io.InputStream;
+
+/**
+ * A CommandGroupFactory produces {@link CommandGroup} instances.
+ *
+ *
+ */
+public interface CommandGroupFactory {
+
+ /**
+ * Creates a CommandGroup based on the provided config file stream
+ *
+ * @param configStream
+ * A stream over a DAS config file
+ * @return returns a CommandGroup instance
+ */
+ public CommandGroup createCommandGroup(InputStream configStream);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
new file mode 100644
index 0000000000..8110d2c5a5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Converter.java
@@ -0,0 +1,52 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+/**
+ * A lightweight Tabele-column <--> DataObject-property converter framework.
+ * Converters allow a user to insert a transformation between a column value and
+ * is destination DataObject property value. For example, by default, a VARCHAR
+ * column will be represented as a String in its corresponding DataObject
+ * property. A user could insert a converter that transforms the the VARCHAR
+ * value to an Integer. If this is done then although the column returns
+ * character data, the DataObject property will be an Integer
+ *
+ *
+ */
+public interface Converter {
+
+ /**
+ * Transform the columnData object to a new value and possibly new type.
+ * This should be the invers operation of #getColumnValue
+ *
+ * @param columnData
+ * The column value to transorm
+ * @return Returns the transformed value
+ */
+ public Object getPropertyValue(Object columnData);
+
+ /**
+ * Transform the columnData object to a new value and possibly new type.
+ * This should be the invers operation of #getPropertyValue
+ *
+ * @param propertyData
+ * The property value to transform
+ * @return Returns the transformed value
+ */
+ public Object getColumnValue(Object propertyData);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Key.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Key.java
new file mode 100644
index 0000000000..4622b2a8fb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/Key.java
@@ -0,0 +1,58 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A key instance is used to describe a Table key definition. This is used
+ * primarily for compound keys since simple keys are described with a name.
+ *
+ *
+ */public class Key {
+
+ private List columnNames = new ArrayList();
+
+ /**
+ * Contructor for a single column key
+ * @param columnName The single column fo rthe key
+ */
+ public Key(String columnName) {
+ super();
+ this.columnNames.add(columnName);
+ }
+
+ /**
+ * Constructor for a compound key
+ * @param columns The array of column names that compose the key
+ */
+ public Key(String[] columns) {
+ for (int i=0;i
+ * Explicit definition of type is required only for OUT parameters of stored
+ * procedures commands
+ *
+ * @param type
+ */
+ public void setType(Type type);
+
+ /**
+ * Set the index of the parameter. For example, if a SQL statement requires
+ * two parameters, the first one has an index of one.
+ *
+ * @param index
+ * The index of the parameter
+ */
+ public void setIndex(int index);
+
+ /**
+ * Sets the name of the parameter
+ *
+ * @param name
+ * the parameter name
+ */
+ public void setName(String name);
+
+ /**
+ * Sets the value of the parameter. All IN and IN_OUT parameters must be set
+ * beore a command can be executed.
+ *
+ * @param value
+ * The value for the parameter
+ */
+ public void setValue(Object value);
+
+ /**
+ * Parameters are typically IN and this is the default. A parameter's
+ * direction must be set when the parameter is OUT or IN_OUT.
+ *
+ * @param direction
+ * the parameters direction
+ */
+ public void setDirection(int direction);
+
+ /**
+ * TODO Not sure this method is needed.
+ * @param converter
+ */
+ public void setConverter(Converter converter);
+
+ /**
+ * @return the type of the paramater in terms of {@link SDODataTypes}
+ */
+ public Type getType();
+
+ /**
+ * TODO Not sure this is is needed.
+ * @return
+ */
+ public Converter getConverter();
+
+ /**
+ * @return the index of the parameter
+ */
+ public int getIndex();
+
+ /**
+ * @return the name of the parameter
+ */
+ public String getName();
+
+ /**
+ * @return the value of the parameter
+ */
+ public Object getValue();
+
+ /**
+ * @return the direction of the parameter
+ */
+ public int getDirection();
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
new file mode 100644
index 0000000000..52d4487963
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ResultSetShape.java
@@ -0,0 +1,122 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+
+import org.apache.tuscany.das.rdb.graphbuilder.impl.DefaultConverter;
+import org.apache.tuscany.das.rdb.graphbuilder.schema.ResultSetTypeMap;
+
+import commonj.sdo.Type;
+
+/**
+ * Describes the structure of the result set returned from execution
+ * of a SELECT statement. This description is typcially not required since the
+ * shape can be retreived from the JDBC ResultSetMetadata. However, some platforms
+ * such as Oracle do not support fully suport ResultSetMedata.
+ *
+ * There may also be a performance boost when using this interface.
+ *
+ * TODO - This is very preliminary. We need to go over this again and consider making is as close as possible to
+ * to the infromation returned from ResultSetMetadata. For example, we may want to use JDBC types
+ * here rather than SDODataTypes. Also, ResultSetMetadata doe not provide converters, so, maybe this
+ * interface should also not.
+ *
+ *
+ */
+public class ResultSetShape {
+
+ private final String[] columns;
+ private final String[] tables;
+ private final Type[] types;
+ //TODO - Are converters really needed here?
+ private Converter[] converters;
+
+ public ResultSetShape(String[] t, String[] c, Type[] dataTypes) {
+ this.columns = c;
+ this.tables = t;
+ this.types = dataTypes;
+ this.converters = new DefaultConverter[c.length];
+ }
+
+ public ResultSetShape(ResultSetMetaData metadata) throws SQLException {
+ columns = new String[metadata.getColumnCount()];
+ tables = new String[metadata.getColumnCount()];
+ types = new Type[metadata.getColumnCount()];
+ converters = new DefaultConverter[metadata.getColumnCount()];
+
+ ResultSetTypeMap typeMap = ResultSetTypeMap.instance;
+ for (int i = 1; i <= metadata.getColumnCount(); i++) {
+ tables[i-1] = metadata.getTableName(i);
+ columns[i-1] = metadata.getColumnName(i);
+ types[i-1] = typeMap.getType(metadata.getColumnType(i), true);
+ }
+ }
+
+ public int getColumnCount() {
+ return columns.length;
+ }
+
+ public String getTableName(int i) {
+ return tables[i-1];
+ }
+
+ public String getColumnName(int i) {
+ return columns[i-1];
+ }
+
+ public Type getColumnType(int i) {
+ return types[i-1];
+ }
+
+ public void setConverter(int i, Converter converter) {
+ this.converters[i] = converter;
+ }
+
+ public Converter getConverter(int i) {
+ return this.converters[i-1];
+ }
+
+ public void setConverterFactory(Converter converter) {
+ for ( int i=0; i < getColumnCount(); i++ ) {
+ this.converters[i] = converter;
+ }
+
+ }
+
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ result.append(" column/table/type: ");
+ for (int i=0; i < columns.length; i++) {
+ result.append(columns[i]);
+ result.append('\t');
+ result.append(tables[i]);
+ result.append('\t');
+ if ( types[i] == null )
+ result.append("null");
+ else
+ result.append(types[i].getName());
+ result.append('\t');
+ result.append(converters[i]);
+ result.append('\n');
+ }
+
+ return result.toString();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
new file mode 100644
index 0000000000..65184c88cb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/SDODataTypes.java
@@ -0,0 +1,68 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb;
+
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * Defines SDO data types. This is used primalirly to type stored procedure OUT parameters.
+ *
+ * TODO - This maybe be obviated by the move to SDO2. We also need to settle the question
+ * of whether config information is in terms of database or data object types
+ *
+ *
+ */public class SDODataTypes {
+
+ static TypeHelper helper = TypeHelper.INSTANCE;
+
+ final public static Type BOOLEAN = helper.getType("commonj.sdo", "Boolean");
+ final public static Type BYTE = helper.getType("commonj.sdo", "Byte");
+ final public static Type BYTES = helper.getType("commonj.sdo", "ByteArray");
+ final public static Type CHARACTER = helper.getType("commonj.sdo", "Char");
+ final public static Type DATE = helper.getType("commonj.sdo", "Date");
+ final public static Type DATETIME = helper.getType("commonj.sdo", "Date");
+ final public static Type DAY = helper.getType("commonj.sdo", "Date");
+ final public static Type DECIMAL = helper.getType("commonj.sdo", "Float");
+ final public static Type DOUBLE =helper.getType("commonj.sdo", "Double");
+ final public static Type DURATION = helper.getType("commonj.sdo", "Date");
+ final public static Type FLOAT = helper.getType("commonj.sdo", "Float");
+ final public static Type INT = helper.getType("commonj.sdo", "Int");
+ final public static Type INTEGER = helper.getType("commonj.sdo", "Integer");
+ final public static Type LONG = helper.getType("commonj.sdo", "Long");
+ final public static Type MONTH = helper.getType("commonj.sdo", "Date");
+ final public static Type MONTHDAY = helper.getType("commonj.sdo", "Date");
+ final public static Type OBJECT = helper.getType("commonj.sdo", "Object");
+ final public static Type SHORT = helper.getType("commonj.sdo", "Short");
+ final public static Type STRING = helper.getType("commonj.sdo", "String");
+ final public static Type STRINGS = helper.getType("commonj.sdo", "String");
+ final public static Type TIME = helper.getType("commonj.sdo", "Date");
+ final public static Type URI = helper.getType("commonj.sdo", "String");
+ final public static Type YEAR = helper.getType("commonj.sdo", "Date");
+ final public static Type YEARMONTH = helper.getType("commonj.sdo", "Date");
+ final public static Type YEARMONTHDAY = helper.getType("commonj.sdo", "Date");
+ final public static Type BOOLEANOBJECT = helper.getType("commonj.sdo", "BooleanObject");
+ final public static Type BYTEOBJECT = helper.getType("commonj.sdo", "ByteObject");
+ final public static Type CHARACTEROBJECT = helper.getType("commonj.sdo", "CharacterObject");
+ final public static Type DOUBLEOBJECT = helper.getType("commonj.sdo", "DoubleObject");
+ final public static Type FLOATOBJECT = helper.getType("commonj.sdo", "FloatObject");
+ final public static Type INTEGEROBJECT = helper.getType("commonj.sdo", "IntObject");
+ final public static Type LONGOBJECT = helper.getType("commonj.sdo", "LongObject");
+ final public static Type SHORTOBJECT = helper.getType("commonj.sdo", "ShortObject");
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Column.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Column.java
new file mode 100644
index 0000000000..e004726fbe
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Column.java
@@ -0,0 +1,306 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * A representation of the model object 'Column'.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Column
+{
+ /**
+ * Returns the value of the 'Collision' attribute.
+ *
+ *
+ * If the meaning of the 'Collision' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Collision' attribute.
+ * @see #isSetCollision()
+ * @see #unsetCollision()
+ * @see #setCollision(boolean)
+ * @generated
+ */
+ boolean isCollision();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isCollision Collision}' attribute.
+ *
+ *
+ * @param value the new value of the 'Collision' attribute.
+ * @see #isSetCollision()
+ * @see #unsetCollision()
+ * @see #isCollision()
+ * @generated
+ */
+ void setCollision(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isCollision Collision}' attribute.
+ *
+ *
+ * @see #isSetCollision()
+ * @see #isCollision()
+ * @see #setCollision(boolean)
+ * @generated
+ */
+ void unsetCollision();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isCollision Collision}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Collision' attribute is set.
+ * @see #unsetCollision()
+ * @see #isCollision()
+ * @see #setCollision(boolean)
+ * @generated
+ */
+ boolean isSetCollision();
+
+ /**
+ * Returns the value of the 'Column Type' attribute.
+ *
+ *
+ * If the meaning of the 'Column Type' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Column Type' attribute.
+ * @see #setColumnType(String)
+ * @generated
+ */
+ String getColumnType();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#getColumnType Column Type}' attribute.
+ *
+ *
+ * @param value the new value of the 'Column Type' attribute.
+ * @see #getColumnType()
+ * @generated
+ */
+ void setColumnType(String value);
+
+ /**
+ * Returns the value of the 'Converter Class Name' attribute.
+ *
+ *
+ * If the meaning of the 'Converter Class Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Converter Class Name' attribute.
+ * @see #setConverterClassName(String)
+ * @generated
+ */
+ String getConverterClassName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#getConverterClassName Converter Class Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Converter Class Name' attribute.
+ * @see #getConverterClassName()
+ * @generated
+ */
+ void setConverterClassName(String value);
+
+ /**
+ * Returns the value of the 'Generated' attribute.
+ *
+ *
+ * If the meaning of the 'Generated' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Generated' attribute.
+ * @see #isSetGenerated()
+ * @see #unsetGenerated()
+ * @see #setGenerated(boolean)
+ * @generated
+ */
+ boolean isGenerated();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isGenerated Generated}' attribute.
+ *
+ *
+ * @param value the new value of the 'Generated' attribute.
+ * @see #isSetGenerated()
+ * @see #unsetGenerated()
+ * @see #isGenerated()
+ * @generated
+ */
+ void setGenerated(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isGenerated Generated}' attribute.
+ *
+ *
+ * @see #isSetGenerated()
+ * @see #isGenerated()
+ * @see #setGenerated(boolean)
+ * @generated
+ */
+ void unsetGenerated();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isGenerated Generated}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Generated' attribute is set.
+ * @see #unsetGenerated()
+ * @see #isGenerated()
+ * @see #setGenerated(boolean)
+ * @generated
+ */
+ boolean isSetGenerated();
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'Primary Key' attribute.
+ *
+ *
+ * If the meaning of the 'Primary Key' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Primary Key' attribute.
+ * @see #isSetPrimaryKey()
+ * @see #unsetPrimaryKey()
+ * @see #setPrimaryKey(boolean)
+ * @generated
+ */
+ boolean isPrimaryKey();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isPrimaryKey Primary Key}' attribute.
+ *
+ *
+ * @param value the new value of the 'Primary Key' attribute.
+ * @see #isSetPrimaryKey()
+ * @see #unsetPrimaryKey()
+ * @see #isPrimaryKey()
+ * @generated
+ */
+ void setPrimaryKey(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isPrimaryKey Primary Key}' attribute.
+ *
+ *
+ * @see #isSetPrimaryKey()
+ * @see #isPrimaryKey()
+ * @see #setPrimaryKey(boolean)
+ * @generated
+ */
+ void unsetPrimaryKey();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.config.Column#isPrimaryKey Primary Key}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Primary Key' attribute is set.
+ * @see #unsetPrimaryKey()
+ * @see #isPrimaryKey()
+ * @see #setPrimaryKey(boolean)
+ * @generated
+ */
+ boolean isSetPrimaryKey();
+
+ /**
+ * Returns the value of the 'Property Name' attribute.
+ *
+ *
+ * If the meaning of the 'Property Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Property Name' attribute.
+ * @see #setPropertyName(String)
+ * @generated
+ */
+ String getPropertyName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#getPropertyName Property Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Property Name' attribute.
+ * @see #getPropertyName()
+ * @generated
+ */
+ void setPropertyName(String value);
+
+ /**
+ * Returns the value of the 'Table' attribute.
+ *
+ *
+ * If the meaning of the 'Table' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Table' attribute.
+ * @see #setTable(String)
+ * @generated
+ */
+ String getTable();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Column#getTable Table}' attribute.
+ *
+ *
+ * @param value the new value of the 'Table' attribute.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(String value);
+
+} // Column
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Command.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Command.java
new file mode 100644
index 0000000000..3bce9e601e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Command.java
@@ -0,0 +1,156 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Command'.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Command
+{
+ /**
+ * Returns the value of the 'Parameter' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.Parameter}.
+ *
+ *
+ * If the meaning of the 'Parameter' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Parameter' containment reference list.
+ * @generated
+ */
+ List getParameter();
+
+ /**
+ * Returns the value of the 'Result Descriptor' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.ResultDescriptor}.
+ *
+ *
+ * If the meaning of the 'Result Descriptor' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Result Descriptor' containment reference list.
+ * @generated
+ */
+ List getResultDescriptor();
+
+ /**
+ * Returns the value of the 'Config' attribute.
+ *
+ *
+ * If the meaning of the 'Config' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Config' attribute.
+ * @see #setConfig(String)
+ * @generated
+ */
+ String getConfig();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Command#getConfig Config}' attribute.
+ *
+ *
+ * @param value the new value of the 'Config' attribute.
+ * @see #getConfig()
+ * @generated
+ */
+ void setConfig(String value);
+
+ /**
+ * Returns the value of the 'Kind' attribute.
+ *
+ *
+ * If the meaning of the 'Kind' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Kind' attribute.
+ * @see #setKind(String)
+ * @generated
+ */
+ String getKind();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Command#getKind Kind}' attribute.
+ *
+ *
+ * @param value the new value of the 'Kind' attribute.
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(String value);
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Command#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'SQL' attribute.
+ *
+ *
+ * If the meaning of the 'SQL' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'SQL' attribute.
+ * @see #setSQL(String)
+ * @generated
+ */
+ String getSQL();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Command#getSQL SQL}' attribute.
+ *
+ *
+ * @param value the new value of the 'SQL' attribute.
+ * @see #getSQL()
+ * @generated
+ */
+ void setSQL(String value);
+
+} // Command
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Config.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Config.java
new file mode 100644
index 0000000000..c00d946dac
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Config.java
@@ -0,0 +1,121 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Config'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Config
+{
+ /**
+ * Returns the value of the 'Command' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.Command}.
+ *
+ *
+ * If the meaning of the 'Command' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Command' containment reference list.
+ * @generated
+ */
+ List getCommand();
+
+ /**
+ * Returns the value of the 'Connection Properties' containment reference.
+ *
+ *
+ * If the meaning of the 'Connection Properties' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Connection Properties' containment reference.
+ * @see #setConnectionProperties(ConnectionProperties)
+ * @generated
+ */
+ ConnectionProperties getConnectionProperties();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Config#getConnectionProperties Connection Properties}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Connection Properties' containment reference.
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ void setConnectionProperties(ConnectionProperties value);
+
+ /**
+ * Returns the value of the 'Table' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.Table}.
+ *
+ *
+ * If the meaning of the 'Table' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Table' containment reference list.
+ * @generated
+ */
+ List getTable();
+
+ /**
+ * Returns the value of the 'Relationship' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.Relationship}.
+ *
+ *
+ * If the meaning of the 'Relationship' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Relationship' containment reference list.
+ * @generated
+ */
+ List getRelationship();
+
+ /**
+ * Returns the value of the 'Uri' attribute.
+ *
+ *
+ * If the meaning of the 'Uri' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Uri' attribute.
+ * @see #setUri(String)
+ * @generated
+ */
+ String getUri();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Config#getUri Uri}' attribute.
+ *
+ *
+ * @param value the new value of the 'Uri' attribute.
+ * @see #getUri()
+ * @generated
+ */
+ void setUri(String value);
+
+} // Config
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConfigFactory.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConfigFactory.java
new file mode 100644
index 0000000000..f3c25814ac
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConfigFactory.java
@@ -0,0 +1,108 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * The Factory for the model.
+ * It provides a create method for each non-abstract class of the model.
+ *
+ * @generated
+ */
+public interface ConfigFactory
+{
+ /**
+ * The singleton instance of the factory.
+ *
+ *
+ * @generated
+ */
+ ConfigFactory INSTANCE = org.apache.tuscany.das.rdb.config.impl.ConfigFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class 'Column'.
+ *
+ *
+ * @return a new object of class 'Column'.
+ * @generated
+ */
+ Column createColumn();
+
+ /**
+ * Returns a new object of class 'Command'.
+ *
+ *
+ * @return a new object of class 'Command'.
+ * @generated
+ */
+ Command createCommand();
+
+ /**
+ * Returns a new object of class 'Config'.
+ *
+ *
+ * @return a new object of class 'Config'.
+ * @generated
+ */
+ Config createConfig();
+
+ /**
+ * Returns a new object of class 'Connection Properties'.
+ *
+ *
+ * @return a new object of class 'Connection Properties'.
+ * @generated
+ */
+ ConnectionProperties createConnectionProperties();
+
+ /**
+ * Returns a new object of class 'Key Pair'.
+ *
+ *
+ * @return a new object of class 'Key Pair'.
+ * @generated
+ */
+ KeyPair createKeyPair();
+
+ /**
+ * Returns a new object of class 'Parameter'.
+ *
+ *
+ * @return a new object of class 'Parameter'.
+ * @generated
+ */
+ Parameter createParameter();
+
+ /**
+ * Returns a new object of class 'Relationship'.
+ *
+ *
+ * @return a new object of class 'Relationship'.
+ * @generated
+ */
+ Relationship createRelationship();
+
+ /**
+ * Returns a new object of class 'Result Descriptor'.
+ *
+ *
+ * @return a new object of class 'Result Descriptor'.
+ * @generated
+ */
+ ResultDescriptor createResultDescriptor();
+
+ /**
+ * Returns a new object of class 'Table'.
+ *
+ *
+ * @return a new object of class 'Table'.
+ * @generated
+ */
+ Table createTable();
+
+} //ConfigFactory
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConnectionProperties.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConnectionProperties.java
new file mode 100644
index 0000000000..4b4008b446
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ConnectionProperties.java
@@ -0,0 +1,175 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * A representation of the model object 'Connection Properties'.
+ *
+ *
+ *
{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverUserName Driver User Name}
+ *
+ *
+ *
+ * @generated
+ */
+public interface ConnectionProperties
+{
+ /**
+ * Returns the value of the 'Config' attribute.
+ *
+ *
+ * If the meaning of the 'Config' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Config' attribute.
+ * @see #setConfig(String)
+ * @generated
+ */
+ String getConfig();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getConfig Config}' attribute.
+ *
+ *
+ * @param value the new value of the 'Config' attribute.
+ * @see #getConfig()
+ * @generated
+ */
+ void setConfig(String value);
+
+ /**
+ * Returns the value of the 'Data Source' attribute.
+ *
+ *
+ * If the meaning of the 'Data Source' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Data Source' attribute.
+ * @see #setDataSource(String)
+ * @generated
+ */
+ String getDataSource();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDataSource Data Source}' attribute.
+ *
+ *
+ * @param value the new value of the 'Data Source' attribute.
+ * @see #getDataSource()
+ * @generated
+ */
+ void setDataSource(String value);
+
+ /**
+ * Returns the value of the 'Driver Class Name' attribute.
+ *
+ *
+ * If the meaning of the 'Driver Class Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Driver Class Name' attribute.
+ * @see #setDriverClassName(String)
+ * @generated
+ */
+ String getDriverClassName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverClassName Driver Class Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Driver Class Name' attribute.
+ * @see #getDriverClassName()
+ * @generated
+ */
+ void setDriverClassName(String value);
+
+ /**
+ * Returns the value of the 'Driver Password' attribute.
+ *
+ *
+ * If the meaning of the 'Driver Password' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Driver Password' attribute.
+ * @see #setDriverPassword(String)
+ * @generated
+ */
+ String getDriverPassword();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverPassword Driver Password}' attribute.
+ *
+ *
+ * @param value the new value of the 'Driver Password' attribute.
+ * @see #getDriverPassword()
+ * @generated
+ */
+ void setDriverPassword(String value);
+
+ /**
+ * Returns the value of the 'Driver URL' attribute.
+ *
+ *
+ * If the meaning of the 'Driver URL' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Driver URL' attribute.
+ * @see #setDriverURL(String)
+ * @generated
+ */
+ String getDriverURL();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverURL Driver URL}' attribute.
+ *
+ *
+ * @param value the new value of the 'Driver URL' attribute.
+ * @see #getDriverURL()
+ * @generated
+ */
+ void setDriverURL(String value);
+
+ /**
+ * Returns the value of the 'Driver User Name' attribute.
+ *
+ *
+ * If the meaning of the 'Driver User Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Driver User Name' attribute.
+ * @see #setDriverUserName(String)
+ * @generated
+ */
+ String getDriverUserName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverUserName Driver User Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Driver User Name' attribute.
+ * @see #getDriverUserName()
+ * @generated
+ */
+ void setDriverUserName(String value);
+
+} // ConnectionProperties
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/KeyPair.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/KeyPair.java
new file mode 100644
index 0000000000..7a1759ee90
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/KeyPair.java
@@ -0,0 +1,100 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * A representation of the model object 'Key Pair'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface KeyPair
+{
+ /**
+ * Returns the value of the 'Foreign Key Column' attribute.
+ *
+ *
+ * If the meaning of the 'Foreign Key Column' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Foreign Key Column' attribute.
+ * @see #setForeignKeyColumn(String)
+ * @generated
+ */
+ String getForeignKeyColumn();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.KeyPair#getForeignKeyColumn Foreign Key Column}' attribute.
+ *
+ *
+ * @param value the new value of the 'Foreign Key Column' attribute.
+ * @see #getForeignKeyColumn()
+ * @generated
+ */
+ void setForeignKeyColumn(String value);
+
+ /**
+ * Returns the value of the 'Primary Key Column' attribute.
+ *
+ *
+ * If the meaning of the 'Primary Key Column' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Primary Key Column' attribute.
+ * @see #setPrimaryKeyColumn(String)
+ * @generated
+ */
+ String getPrimaryKeyColumn();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.KeyPair#getPrimaryKeyColumn Primary Key Column}' attribute.
+ *
+ *
+ * @param value the new value of the 'Primary Key Column' attribute.
+ * @see #getPrimaryKeyColumn()
+ * @generated
+ */
+ void setPrimaryKeyColumn(String value);
+
+ /**
+ * Returns the value of the 'Relationship' attribute.
+ *
+ *
+ * If the meaning of the 'Relationship' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Relationship' attribute.
+ * @see #setRelationship(String)
+ * @generated
+ */
+ String getRelationship();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.KeyPair#getRelationship Relationship}' attribute.
+ *
+ *
+ * @param value the new value of the 'Relationship' attribute.
+ * @see #getRelationship()
+ * @generated
+ */
+ void setRelationship(String value);
+
+} // KeyPair
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Parameter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Parameter.java
new file mode 100644
index 0000000000..63872a7afd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Parameter.java
@@ -0,0 +1,100 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * A representation of the model object 'Parameter'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Parameter
+{
+ /**
+ * Returns the value of the 'Column Type' attribute.
+ *
+ *
+ * If the meaning of the 'Column Type' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Column Type' attribute.
+ * @see #setColumnType(String)
+ * @generated
+ */
+ String getColumnType();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Parameter#getColumnType Column Type}' attribute.
+ *
+ *
+ * @param value the new value of the 'Column Type' attribute.
+ * @see #getColumnType()
+ * @generated
+ */
+ void setColumnType(String value);
+
+ /**
+ * Returns the value of the 'Command' attribute.
+ *
+ *
+ * If the meaning of the 'Command' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Command' attribute.
+ * @see #setCommand(String)
+ * @generated
+ */
+ String getCommand();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Parameter#getCommand Command}' attribute.
+ *
+ *
+ * @param value the new value of the 'Command' attribute.
+ * @see #getCommand()
+ * @generated
+ */
+ void setCommand(String value);
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Parameter#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Parameter
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Relationship.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Relationship.java
new file mode 100644
index 0000000000..d63348ade1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Relationship.java
@@ -0,0 +1,193 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Relationship'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Relationship
+{
+ /**
+ * Returns the value of the 'Key Pair' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.KeyPair}.
+ *
+ *
+ * If the meaning of the 'Key Pair' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Key Pair' containment reference list.
+ * @generated
+ */
+ List getKeyPair();
+
+ /**
+ * Returns the value of the 'Config' attribute.
+ *
+ *
+ * If the meaning of the 'Config' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Config' attribute.
+ * @see #setConfig(String)
+ * @generated
+ */
+ String getConfig();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#getConfig Config}' attribute.
+ *
+ *
+ * @param value the new value of the 'Config' attribute.
+ * @see #getConfig()
+ * @generated
+ */
+ void setConfig(String value);
+
+ /**
+ * Returns the value of the 'Foreign Key Table' attribute.
+ *
+ *
+ * If the meaning of the 'Foreign Key Table' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Foreign Key Table' attribute.
+ * @see #setForeignKeyTable(String)
+ * @generated
+ */
+ String getForeignKeyTable();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#getForeignKeyTable Foreign Key Table}' attribute.
+ *
+ *
+ * @param value the new value of the 'Foreign Key Table' attribute.
+ * @see #getForeignKeyTable()
+ * @generated
+ */
+ void setForeignKeyTable(String value);
+
+ /**
+ * Returns the value of the 'Many' attribute.
+ *
+ *
+ * If the meaning of the 'Many' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Many' attribute.
+ * @see #isSetMany()
+ * @see #unsetMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ boolean isMany();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#isMany Many}' attribute.
+ *
+ *
+ * @param value the new value of the 'Many' attribute.
+ * @see #isSetMany()
+ * @see #unsetMany()
+ * @see #isMany()
+ * @generated
+ */
+ void setMany(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#isMany Many}' attribute.
+ *
+ *
+ * @see #isSetMany()
+ * @see #isMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ void unsetMany();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#isMany Many}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Many' attribute is set.
+ * @see #unsetMany()
+ * @see #isMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ boolean isSetMany();
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'Primary Key Table' attribute.
+ *
+ *
+ * If the meaning of the 'Primary Key Table' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Primary Key Table' attribute.
+ * @see #setPrimaryKeyTable(String)
+ * @generated
+ */
+ String getPrimaryKeyTable();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Relationship#getPrimaryKeyTable Primary Key Table}' attribute.
+ *
+ *
+ * @param value the new value of the 'Primary Key Table' attribute.
+ * @see #getPrimaryKeyTable()
+ * @generated
+ */
+ void setPrimaryKeyTable(String value);
+
+} // Relationship
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ResultDescriptor.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ResultDescriptor.java
new file mode 100644
index 0000000000..648c33bf7e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/ResultDescriptor.java
@@ -0,0 +1,150 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+
+/**
+ *
+ * A representation of the model object 'Result Descriptor'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface ResultDescriptor
+{
+ /**
+ * Returns the value of the 'Column Name' attribute.
+ *
+ *
+ * If the meaning of the 'Column Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Column Name' attribute.
+ * @see #setColumnName(String)
+ * @generated
+ */
+ String getColumnName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnName Column Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Column Name' attribute.
+ * @see #getColumnName()
+ * @generated
+ */
+ void setColumnName(String value);
+
+ /**
+ * Returns the value of the 'Column Type' attribute.
+ *
+ *
+ * If the meaning of the 'Column Type' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Column Type' attribute.
+ * @see #setColumnType(String)
+ * @generated
+ */
+ String getColumnType();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnType Column Type}' attribute.
+ *
+ *
+ * @param value the new value of the 'Column Type' attribute.
+ * @see #getColumnType()
+ * @generated
+ */
+ void setColumnType(String value);
+
+ /**
+ * Returns the value of the 'Command' attribute.
+ *
+ *
+ * If the meaning of the 'Command' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Command' attribute.
+ * @see #setCommand(String)
+ * @generated
+ */
+ String getCommand();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getCommand Command}' attribute.
+ *
+ *
+ * @param value the new value of the 'Command' attribute.
+ * @see #getCommand()
+ * @generated
+ */
+ void setCommand(String value);
+
+ /**
+ * Returns the value of the 'Converter' attribute.
+ *
+ *
+ * If the meaning of the 'Converter' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Converter' attribute.
+ * @see #setConverter(String)
+ * @generated
+ */
+ String getConverter();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getConverter Converter}' attribute.
+ *
+ *
+ * @param value the new value of the 'Converter' attribute.
+ * @see #getConverter()
+ * @generated
+ */
+ void setConverter(String value);
+
+ /**
+ * Returns the value of the 'Table Name' attribute.
+ *
+ *
+ * If the meaning of the 'Table Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Table Name' attribute.
+ * @see #setTableName(String)
+ * @generated
+ */
+ String getTableName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getTableName Table Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Table Name' attribute.
+ * @see #getTableName()
+ * @generated
+ */
+ void setTableName(String value);
+
+} // ResultDescriptor
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Table.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Table.java
new file mode 100644
index 0000000000..8f0956f291
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/Table.java
@@ -0,0 +1,191 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Table'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Table
+{
+ /**
+ * Returns the value of the 'Column' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.config.Column}.
+ *
+ *
+ * If the meaning of the 'Column' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Column' containment reference list.
+ * @generated
+ */
+ List getColumn();
+
+ /**
+ * Returns the value of the 'Config' attribute.
+ *
+ *
+ * If the meaning of the 'Config' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Config' attribute.
+ * @see #setConfig(String)
+ * @generated
+ */
+ String getConfig();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getConfig Config}' attribute.
+ *
+ *
+ * @param value the new value of the 'Config' attribute.
+ * @see #getConfig()
+ * @generated
+ */
+ void setConfig(String value);
+
+ /**
+ * Returns the value of the 'Create' attribute.
+ *
+ *
+ * If the meaning of the 'Create' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Create' attribute.
+ * @see #setCreate(String)
+ * @generated
+ */
+ String getCreate();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getCreate Create}' attribute.
+ *
+ *
+ * @param value the new value of the 'Create' attribute.
+ * @see #getCreate()
+ * @generated
+ */
+ void setCreate(String value);
+
+ /**
+ * Returns the value of the 'Delete' attribute.
+ *
+ *
+ * If the meaning of the 'Delete' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Delete' attribute.
+ * @see #setDelete(String)
+ * @generated
+ */
+ String getDelete();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getDelete Delete}' attribute.
+ *
+ *
+ * @param value the new value of the 'Delete' attribute.
+ * @see #getDelete()
+ * @generated
+ */
+ void setDelete(String value);
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'Property Name' attribute.
+ *
+ *
+ * If the meaning of the 'Property Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Property Name' attribute.
+ * @see #setPropertyName(String)
+ * @generated
+ */
+ String getPropertyName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getPropertyName Property Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Property Name' attribute.
+ * @see #getPropertyName()
+ * @generated
+ */
+ void setPropertyName(String value);
+
+ /**
+ * Returns the value of the 'Update' attribute.
+ *
+ *
+ * If the meaning of the 'Update' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Update' attribute.
+ * @see #setUpdate(String)
+ * @generated
+ */
+ String getUpdate();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.config.Table#getUpdate Update}' attribute.
+ *
+ *
+ * @param value the new value of the 'Update' attribute.
+ * @see #getUpdate()
+ * @generated
+ */
+ void setUpdate(String value);
+
+} // Table
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ColumnImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ColumnImpl.java
new file mode 100644
index 0000000000..30be8870b3
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ColumnImpl.java
@@ -0,0 +1,675 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config.impl;
+
+import org.apache.tuscany.das.rdb.config.Column;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Column'.
+ *
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.ConfigFactory
+ * @generated
+ */
+public class ConfigPackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNAME = "config";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_URI = "http:///org.apache.tuscany.das.rdb/config.xsd";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_PREFIX = "org.apache.tuscany.das.rdb.config";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ public static final ConfigPackageImpl eINSTANCE = org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.ColumnImpl Column}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ColumnImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getColumn()
+ * @generated
+ */
+ public static final int COLUMN = 0;
+
+ /**
+ * The feature id for the 'Collision' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__COLLISION = 0;
+
+ /**
+ * The feature id for the 'Column Type' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__COLUMN_TYPE = 1;
+
+ /**
+ * The feature id for the 'Converter Class Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__CONVERTER_CLASS_NAME = 2;
+
+ /**
+ * The feature id for the 'Generated' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__GENERATED = 3;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__NAME = 4;
+
+ /**
+ * The feature id for the 'Primary Key' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__PRIMARY_KEY = 5;
+
+ /**
+ * The feature id for the 'Property Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__PROPERTY_NAME = 6;
+
+ /**
+ * The feature id for the 'Table' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN__TABLE = 7;
+
+ /**
+ * The number of structural features of the 'Column' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.CommandImpl Command}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.CommandImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getCommand()
+ * @generated
+ */
+ public static final int COMMAND = 1;
+
+ /**
+ * The feature id for the 'Parameter' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__PARAMETER = 0;
+
+ /**
+ * The feature id for the 'Result Descriptor' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__RESULT_DESCRIPTOR = 1;
+
+ /**
+ * The feature id for the 'Config' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__CONFIG = 2;
+
+ /**
+ * The feature id for the 'Kind' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__KIND = 3;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__NAME = 4;
+
+ /**
+ * The feature id for the 'SQL' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND__SQL = 5;
+
+ /**
+ * The number of structural features of the 'Command' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMMAND_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.ConfigImpl Config}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getConfig()
+ * @generated
+ */
+ public static final int CONFIG = 2;
+
+ /**
+ * The feature id for the 'Command' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG__COMMAND = 0;
+
+ /**
+ * The feature id for the 'Connection Properties' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG__CONNECTION_PROPERTIES = 1;
+
+ /**
+ * The feature id for the 'Table' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG__TABLE = 2;
+
+ /**
+ * The feature id for the 'Relationship' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG__RELATIONSHIP = 3;
+
+ /**
+ * The feature id for the 'Uri' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG__URI = 4;
+
+ /**
+ * The number of structural features of the 'Config' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIG_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.ConnectionPropertiesImpl Connection Properties}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ConnectionPropertiesImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getConnectionProperties()
+ * @generated
+ */
+ public static final int CONNECTION_PROPERTIES = 3;
+
+ /**
+ * The feature id for the 'Config' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__CONFIG = 0;
+
+ /**
+ * The feature id for the 'Data Source' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__DATA_SOURCE = 1;
+
+ /**
+ * The feature id for the 'Driver Class Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__DRIVER_CLASS_NAME = 2;
+
+ /**
+ * The feature id for the 'Driver Password' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__DRIVER_PASSWORD = 3;
+
+ /**
+ * The feature id for the 'Driver URL' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__DRIVER_URL = 4;
+
+ /**
+ * The feature id for the 'Driver User Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES__DRIVER_USER_NAME = 5;
+
+ /**
+ * The number of structural features of the 'Connection Properties' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CONNECTION_PROPERTIES_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.KeyPairImpl Key Pair}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.KeyPairImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getKeyPair()
+ * @generated
+ */
+ public static final int KEY_PAIR = 4;
+
+ /**
+ * The feature id for the 'Foreign Key Column' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int KEY_PAIR__FOREIGN_KEY_COLUMN = 0;
+
+ /**
+ * The feature id for the 'Primary Key Column' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int KEY_PAIR__PRIMARY_KEY_COLUMN = 1;
+
+ /**
+ * The feature id for the 'Relationship' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int KEY_PAIR__RELATIONSHIP = 2;
+
+ /**
+ * The number of structural features of the 'Key Pair' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int KEY_PAIR_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.ParameterImpl Parameter}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ParameterImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getParameter()
+ * @generated
+ */
+ public static final int PARAMETER = 5;
+
+ /**
+ * The feature id for the 'Column Type' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int PARAMETER__COLUMN_TYPE = 0;
+
+ /**
+ * The feature id for the 'Command' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int PARAMETER__COMMAND = 1;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int PARAMETER__NAME = 2;
+
+ /**
+ * The number of structural features of the 'Parameter' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int PARAMETER_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.RelationshipImpl Relationship}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.RelationshipImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getRelationship()
+ * @generated
+ */
+ public static final int RELATIONSHIP = 6;
+
+ /**
+ * The feature id for the 'Key Pair' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__KEY_PAIR = 0;
+
+ /**
+ * The feature id for the 'Config' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__CONFIG = 1;
+
+ /**
+ * The feature id for the 'Foreign Key Table' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__FOREIGN_KEY_TABLE = 2;
+
+ /**
+ * The feature id for the 'Many' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__MANY = 3;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__NAME = 4;
+
+ /**
+ * The feature id for the 'Primary Key Table' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP__PRIMARY_KEY_TABLE = 5;
+
+ /**
+ * The number of structural features of the 'Relationship' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONSHIP_FEATURE_COUNT = 6;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.ResultDescriptorImpl Result Descriptor}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ResultDescriptorImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getResultDescriptor()
+ * @generated
+ */
+ public static final int RESULT_DESCRIPTOR = 7;
+
+ /**
+ * The feature id for the 'Column Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR__COLUMN_NAME = 0;
+
+ /**
+ * The feature id for the 'Column Type' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR__COLUMN_TYPE = 1;
+
+ /**
+ * The feature id for the 'Command' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR__COMMAND = 2;
+
+ /**
+ * The feature id for the 'Converter' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR__CONVERTER = 3;
+
+ /**
+ * The feature id for the 'Table Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR__TABLE_NAME = 4;
+
+ /**
+ * The number of structural features of the 'Result Descriptor' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int RESULT_DESCRIPTOR_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.config.impl.TableImpl Table}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.TableImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getTable()
+ * @generated
+ */
+ public static final int TABLE = 8;
+
+ /**
+ * The feature id for the 'Column' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__COLUMN = 0;
+
+ /**
+ * The feature id for the 'Config' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__CONFIG = 1;
+
+ /**
+ * The feature id for the 'Create' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__CREATE = 2;
+
+ /**
+ * The feature id for the 'Delete' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__DELETE = 3;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__NAME = 4;
+
+ /**
+ * The feature id for the 'Property Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__PROPERTY_NAME = 5;
+
+ /**
+ * The feature id for the 'Update' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE__UPDATE = 6;
+
+ /**
+ * The number of structural features of the 'Table' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE_FEATURE_COUNT = 7;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass columnEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass commandEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass configEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass connectionPropertiesEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass keyPairEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass parameterEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass relationshipEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass resultDescriptorEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass tableEClass = null;
+
+ /**
+ * Creates an instance of the model Package, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ *
Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ConfigPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)ConfigFactory.INSTANCE));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ *
Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ *
Invocation of this method will not affect any packages that have
+ * already been initialized.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ConfigPackageImpl init()
+ {
+ if (isInited) return (ConfigPackageImpl)EPackage.Registry.INSTANCE.getEPackage(ConfigPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ ConfigPackageImpl theConfigPackageImpl = (ConfigPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ConfigPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ConfigPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theConfigPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theConfigPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theConfigPackageImpl.freeze();
+
+ return theConfigPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Column Column}'.
+ *
+ *
+ * @return the meta object for class 'Column'.
+ * @see org.apache.tuscany.das.rdb.config.Column
+ * @generated
+ */
+ public EClass getColumn()
+ {
+ return columnEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#isCollision Collision}'.
+ *
+ *
+ * @return the meta object for the attribute 'Collision'.
+ * @see org.apache.tuscany.das.rdb.config.Column#isCollision()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_Collision()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#getColumnType Column Type}'.
+ *
+ *
+ * @return the meta object for the attribute 'Column Type'.
+ * @see org.apache.tuscany.das.rdb.config.Column#getColumnType()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_ColumnType()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#getConverterClassName Converter Class Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Converter Class Name'.
+ * @see org.apache.tuscany.das.rdb.config.Column#getConverterClassName()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_ConverterClassName()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#isGenerated Generated}'.
+ *
+ *
+ * @return the meta object for the attribute 'Generated'.
+ * @see org.apache.tuscany.das.rdb.config.Column#isGenerated()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_Generated()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.config.Column#getName()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_Name()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#isPrimaryKey Primary Key}'.
+ *
+ *
+ * @return the meta object for the attribute 'Primary Key'.
+ * @see org.apache.tuscany.das.rdb.config.Column#isPrimaryKey()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_PrimaryKey()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#getPropertyName Property Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Property Name'.
+ * @see org.apache.tuscany.das.rdb.config.Column#getPropertyName()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_PropertyName()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Column#getTable Table}'.
+ *
+ *
+ * @return the meta object for the attribute 'Table'.
+ * @see org.apache.tuscany.das.rdb.config.Column#getTable()
+ * @see #getColumn()
+ * @generated
+ */
+ public EAttribute getColumn_Table()
+ {
+ return (EAttribute)columnEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Command Command}'.
+ *
+ *
+ * @return the meta object for class 'Command'.
+ * @see org.apache.tuscany.das.rdb.config.Command
+ * @generated
+ */
+ public EClass getCommand()
+ {
+ return commandEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Command#getParameter Parameter}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Parameter'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getParameter()
+ * @see #getCommand()
+ * @generated
+ */
+ public EReference getCommand_Parameter()
+ {
+ return (EReference)commandEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Command#getResultDescriptor Result Descriptor}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Result Descriptor'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getResultDescriptor()
+ * @see #getCommand()
+ * @generated
+ */
+ public EReference getCommand_ResultDescriptor()
+ {
+ return (EReference)commandEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Command#getConfig Config}'.
+ *
+ *
+ * @return the meta object for the attribute 'Config'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getConfig()
+ * @see #getCommand()
+ * @generated
+ */
+ public EAttribute getCommand_Config()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Command#getKind Kind}'.
+ *
+ *
+ * @return the meta object for the attribute 'Kind'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getKind()
+ * @see #getCommand()
+ * @generated
+ */
+ public EAttribute getCommand_Kind()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Command#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getName()
+ * @see #getCommand()
+ * @generated
+ */
+ public EAttribute getCommand_Name()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Command#getSQL SQL}'.
+ *
+ *
+ * @return the meta object for the attribute 'SQL'.
+ * @see org.apache.tuscany.das.rdb.config.Command#getSQL()
+ * @see #getCommand()
+ * @generated
+ */
+ public EAttribute getCommand_SQL()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Config Config}'.
+ *
+ *
+ * @return the meta object for class 'Config'.
+ * @see org.apache.tuscany.das.rdb.config.Config
+ * @generated
+ */
+ public EClass getConfig()
+ {
+ return configEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Config#getCommand Command}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Command'.
+ * @see org.apache.tuscany.das.rdb.config.Config#getCommand()
+ * @see #getConfig()
+ * @generated
+ */
+ public EReference getConfig_Command()
+ {
+ return (EReference)configEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.apache.tuscany.das.rdb.config.Config#getConnectionProperties Connection Properties}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Connection Properties'.
+ * @see org.apache.tuscany.das.rdb.config.Config#getConnectionProperties()
+ * @see #getConfig()
+ * @generated
+ */
+ public EReference getConfig_ConnectionProperties()
+ {
+ return (EReference)configEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Config#getTable Table}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Table'.
+ * @see org.apache.tuscany.das.rdb.config.Config#getTable()
+ * @see #getConfig()
+ * @generated
+ */
+ public EReference getConfig_Table()
+ {
+ return (EReference)configEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Config#getRelationship Relationship}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Relationship'.
+ * @see org.apache.tuscany.das.rdb.config.Config#getRelationship()
+ * @see #getConfig()
+ * @generated
+ */
+ public EReference getConfig_Relationship()
+ {
+ return (EReference)configEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Config#getUri Uri}'.
+ *
+ *
+ * @return the meta object for the attribute 'Uri'.
+ * @see org.apache.tuscany.das.rdb.config.Config#getUri()
+ * @see #getConfig()
+ * @generated
+ */
+ public EAttribute getConfig_Uri()
+ {
+ return (EAttribute)configEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties Connection Properties}'.
+ *
+ *
+ * @return the meta object for class 'Connection Properties'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties
+ * @generated
+ */
+ public EClass getConnectionProperties()
+ {
+ return connectionPropertiesEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getConfig Config}'.
+ *
+ *
+ * @return the meta object for the attribute 'Config'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getConfig()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_Config()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDataSource Data Source}'.
+ *
+ *
+ * @return the meta object for the attribute 'Data Source'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getDataSource()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_DataSource()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverClassName Driver Class Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Driver Class Name'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverClassName()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_DriverClassName()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverPassword Driver Password}'.
+ *
+ *
+ * @return the meta object for the attribute 'Driver Password'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverPassword()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_DriverPassword()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverURL Driver URL}'.
+ *
+ *
+ * @return the meta object for the attribute 'Driver URL'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverURL()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_DriverURL()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverUserName Driver User Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Driver User Name'.
+ * @see org.apache.tuscany.das.rdb.config.ConnectionProperties#getDriverUserName()
+ * @see #getConnectionProperties()
+ * @generated
+ */
+ public EAttribute getConnectionProperties_DriverUserName()
+ {
+ return (EAttribute)connectionPropertiesEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.KeyPair Key Pair}'.
+ *
+ *
+ * @return the meta object for class 'Key Pair'.
+ * @see org.apache.tuscany.das.rdb.config.KeyPair
+ * @generated
+ */
+ public EClass getKeyPair()
+ {
+ return keyPairEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.KeyPair#getForeignKeyColumn Foreign Key Column}'.
+ *
+ *
+ * @return the meta object for the attribute 'Foreign Key Column'.
+ * @see org.apache.tuscany.das.rdb.config.KeyPair#getForeignKeyColumn()
+ * @see #getKeyPair()
+ * @generated
+ */
+ public EAttribute getKeyPair_ForeignKeyColumn()
+ {
+ return (EAttribute)keyPairEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.KeyPair#getPrimaryKeyColumn Primary Key Column}'.
+ *
+ *
+ * @return the meta object for the attribute 'Primary Key Column'.
+ * @see org.apache.tuscany.das.rdb.config.KeyPair#getPrimaryKeyColumn()
+ * @see #getKeyPair()
+ * @generated
+ */
+ public EAttribute getKeyPair_PrimaryKeyColumn()
+ {
+ return (EAttribute)keyPairEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.KeyPair#getRelationship Relationship}'.
+ *
+ *
+ * @return the meta object for the attribute 'Relationship'.
+ * @see org.apache.tuscany.das.rdb.config.KeyPair#getRelationship()
+ * @see #getKeyPair()
+ * @generated
+ */
+ public EAttribute getKeyPair_Relationship()
+ {
+ return (EAttribute)keyPairEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Parameter Parameter}'.
+ *
+ *
+ * @return the meta object for class 'Parameter'.
+ * @see org.apache.tuscany.das.rdb.config.Parameter
+ * @generated
+ */
+ public EClass getParameter()
+ {
+ return parameterEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Parameter#getColumnType Column Type}'.
+ *
+ *
+ * @return the meta object for the attribute 'Column Type'.
+ * @see org.apache.tuscany.das.rdb.config.Parameter#getColumnType()
+ * @see #getParameter()
+ * @generated
+ */
+ public EAttribute getParameter_ColumnType()
+ {
+ return (EAttribute)parameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Parameter#getCommand Command}'.
+ *
+ *
+ * @return the meta object for the attribute 'Command'.
+ * @see org.apache.tuscany.das.rdb.config.Parameter#getCommand()
+ * @see #getParameter()
+ * @generated
+ */
+ public EAttribute getParameter_Command()
+ {
+ return (EAttribute)parameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Parameter#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.config.Parameter#getName()
+ * @see #getParameter()
+ * @generated
+ */
+ public EAttribute getParameter_Name()
+ {
+ return (EAttribute)parameterEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Relationship Relationship}'.
+ *
+ *
+ * @return the meta object for class 'Relationship'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship
+ * @generated
+ */
+ public EClass getRelationship()
+ {
+ return relationshipEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Relationship#getKeyPair Key Pair}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Key Pair'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#getKeyPair()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EReference getRelationship_KeyPair()
+ {
+ return (EReference)relationshipEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Relationship#getConfig Config}'.
+ *
+ *
+ * @return the meta object for the attribute 'Config'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#getConfig()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EAttribute getRelationship_Config()
+ {
+ return (EAttribute)relationshipEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Relationship#getForeignKeyTable Foreign Key Table}'.
+ *
+ *
+ * @return the meta object for the attribute 'Foreign Key Table'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#getForeignKeyTable()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EAttribute getRelationship_ForeignKeyTable()
+ {
+ return (EAttribute)relationshipEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Relationship#isMany Many}'.
+ *
+ *
+ * @return the meta object for the attribute 'Many'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#isMany()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EAttribute getRelationship_Many()
+ {
+ return (EAttribute)relationshipEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Relationship#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#getName()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EAttribute getRelationship_Name()
+ {
+ return (EAttribute)relationshipEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Relationship#getPrimaryKeyTable Primary Key Table}'.
+ *
+ *
+ * @return the meta object for the attribute 'Primary Key Table'.
+ * @see org.apache.tuscany.das.rdb.config.Relationship#getPrimaryKeyTable()
+ * @see #getRelationship()
+ * @generated
+ */
+ public EAttribute getRelationship_PrimaryKeyTable()
+ {
+ return (EAttribute)relationshipEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor Result Descriptor}'.
+ *
+ *
+ * @return the meta object for class 'Result Descriptor'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor
+ * @generated
+ */
+ public EClass getResultDescriptor()
+ {
+ return resultDescriptorEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnName Column Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Column Name'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnName()
+ * @see #getResultDescriptor()
+ * @generated
+ */
+ public EAttribute getResultDescriptor_ColumnName()
+ {
+ return (EAttribute)resultDescriptorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnType Column Type}'.
+ *
+ *
+ * @return the meta object for the attribute 'Column Type'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor#getColumnType()
+ * @see #getResultDescriptor()
+ * @generated
+ */
+ public EAttribute getResultDescriptor_ColumnType()
+ {
+ return (EAttribute)resultDescriptorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getCommand Command}'.
+ *
+ *
+ * @return the meta object for the attribute 'Command'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor#getCommand()
+ * @see #getResultDescriptor()
+ * @generated
+ */
+ public EAttribute getResultDescriptor_Command()
+ {
+ return (EAttribute)resultDescriptorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getConverter Converter}'.
+ *
+ *
+ * @return the meta object for the attribute 'Converter'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor#getConverter()
+ * @see #getResultDescriptor()
+ * @generated
+ */
+ public EAttribute getResultDescriptor_Converter()
+ {
+ return (EAttribute)resultDescriptorEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.ResultDescriptor#getTableName Table Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Table Name'.
+ * @see org.apache.tuscany.das.rdb.config.ResultDescriptor#getTableName()
+ * @see #getResultDescriptor()
+ * @generated
+ */
+ public EAttribute getResultDescriptor_TableName()
+ {
+ return (EAttribute)resultDescriptorEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.config.Table Table}'.
+ *
+ *
+ * @return the meta object for class 'Table'.
+ * @see org.apache.tuscany.das.rdb.config.Table
+ * @generated
+ */
+ public EClass getTable()
+ {
+ return tableEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.config.Table#getColumn Column}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Column'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getColumn()
+ * @see #getTable()
+ * @generated
+ */
+ public EReference getTable_Column()
+ {
+ return (EReference)tableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getConfig Config}'.
+ *
+ *
+ * @return the meta object for the attribute 'Config'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getConfig()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_Config()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getCreate Create}'.
+ *
+ *
+ * @return the meta object for the attribute 'Create'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getCreate()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_Create()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getDelete Delete}'.
+ *
+ *
+ * @return the meta object for the attribute 'Delete'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getDelete()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_Delete()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getName()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_Name()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getPropertyName Property Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Property Name'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getPropertyName()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_PropertyName()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.config.Table#getUpdate Update}'.
+ *
+ *
+ * @return the meta object for the attribute 'Update'.
+ * @see org.apache.tuscany.das.rdb.config.Table#getUpdate()
+ * @see #getTable()
+ * @generated
+ */
+ public EAttribute getTable_Update()
+ {
+ return (EAttribute)tableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public ConfigFactory getConfigFactory()
+ {
+ return (ConfigFactory)getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ columnEClass = createEClass(COLUMN);
+ createEAttribute(columnEClass, COLUMN__COLLISION);
+ createEAttribute(columnEClass, COLUMN__COLUMN_TYPE);
+ createEAttribute(columnEClass, COLUMN__CONVERTER_CLASS_NAME);
+ createEAttribute(columnEClass, COLUMN__GENERATED);
+ createEAttribute(columnEClass, COLUMN__NAME);
+ createEAttribute(columnEClass, COLUMN__PRIMARY_KEY);
+ createEAttribute(columnEClass, COLUMN__PROPERTY_NAME);
+ createEAttribute(columnEClass, COLUMN__TABLE);
+
+ commandEClass = createEClass(COMMAND);
+ createEReference(commandEClass, COMMAND__PARAMETER);
+ createEReference(commandEClass, COMMAND__RESULT_DESCRIPTOR);
+ createEAttribute(commandEClass, COMMAND__CONFIG);
+ createEAttribute(commandEClass, COMMAND__KIND);
+ createEAttribute(commandEClass, COMMAND__NAME);
+ createEAttribute(commandEClass, COMMAND__SQL);
+
+ configEClass = createEClass(CONFIG);
+ createEReference(configEClass, CONFIG__COMMAND);
+ createEReference(configEClass, CONFIG__CONNECTION_PROPERTIES);
+ createEReference(configEClass, CONFIG__TABLE);
+ createEReference(configEClass, CONFIG__RELATIONSHIP);
+ createEAttribute(configEClass, CONFIG__URI);
+
+ connectionPropertiesEClass = createEClass(CONNECTION_PROPERTIES);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__CONFIG);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__DATA_SOURCE);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__DRIVER_CLASS_NAME);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__DRIVER_PASSWORD);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__DRIVER_URL);
+ createEAttribute(connectionPropertiesEClass, CONNECTION_PROPERTIES__DRIVER_USER_NAME);
+
+ keyPairEClass = createEClass(KEY_PAIR);
+ createEAttribute(keyPairEClass, KEY_PAIR__FOREIGN_KEY_COLUMN);
+ createEAttribute(keyPairEClass, KEY_PAIR__PRIMARY_KEY_COLUMN);
+ createEAttribute(keyPairEClass, KEY_PAIR__RELATIONSHIP);
+
+ parameterEClass = createEClass(PARAMETER);
+ createEAttribute(parameterEClass, PARAMETER__COLUMN_TYPE);
+ createEAttribute(parameterEClass, PARAMETER__COMMAND);
+ createEAttribute(parameterEClass, PARAMETER__NAME);
+
+ relationshipEClass = createEClass(RELATIONSHIP);
+ createEReference(relationshipEClass, RELATIONSHIP__KEY_PAIR);
+ createEAttribute(relationshipEClass, RELATIONSHIP__CONFIG);
+ createEAttribute(relationshipEClass, RELATIONSHIP__FOREIGN_KEY_TABLE);
+ createEAttribute(relationshipEClass, RELATIONSHIP__MANY);
+ createEAttribute(relationshipEClass, RELATIONSHIP__NAME);
+ createEAttribute(relationshipEClass, RELATIONSHIP__PRIMARY_KEY_TABLE);
+
+ resultDescriptorEClass = createEClass(RESULT_DESCRIPTOR);
+ createEAttribute(resultDescriptorEClass, RESULT_DESCRIPTOR__COLUMN_NAME);
+ createEAttribute(resultDescriptorEClass, RESULT_DESCRIPTOR__COLUMN_TYPE);
+ createEAttribute(resultDescriptorEClass, RESULT_DESCRIPTOR__COMMAND);
+ createEAttribute(resultDescriptorEClass, RESULT_DESCRIPTOR__CONVERTER);
+ createEAttribute(resultDescriptorEClass, RESULT_DESCRIPTOR__TABLE_NAME);
+
+ tableEClass = createEClass(TABLE);
+ createEReference(tableEClass, TABLE__COLUMN);
+ createEAttribute(tableEClass, TABLE__CONFIG);
+ createEAttribute(tableEClass, TABLE__CREATE);
+ createEAttribute(tableEClass, TABLE__DELETE);
+ createEAttribute(tableEClass, TABLE__NAME);
+ createEAttribute(tableEClass, TABLE__PROPERTY_NAME);
+ createEAttribute(tableEClass, TABLE__UPDATE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(columnEClass, Column.class, "Column", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getColumn_Collision(), theXMLTypePackage.getBoolean(), "collision", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_ColumnType(), theXMLTypePackage.getString(), "columnType", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_ConverterClassName(), theXMLTypePackage.getString(), "converterClassName", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_Generated(), theXMLTypePackage.getBoolean(), "generated", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_PrimaryKey(), theXMLTypePackage.getBoolean(), "primaryKey", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_PropertyName(), theXMLTypePackage.getString(), "propertyName", null, 0, 1, Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getColumn_Table(), theXMLTypePackage.getAnyURI(), "table", null, 0, 1, Column.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(commandEClass, Command.class, "Command", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCommand_Parameter(), this.getParameter(), null, "parameter", null, 0, -1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCommand_ResultDescriptor(), this.getResultDescriptor(), null, "resultDescriptor", null, 0, -1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCommand_Config(), theXMLTypePackage.getAnyURI(), "config", null, 0, 1, Command.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCommand_Kind(), theXMLTypePackage.getString(), "kind", null, 0, 1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCommand_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCommand_SQL(), theXMLTypePackage.getString(), "sQL", null, 0, 1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(configEClass, Config.class, "Config", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConfig_Command(), this.getCommand(), null, "command", null, 0, -1, Config.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConfig_ConnectionProperties(), this.getConnectionProperties(), null, "connectionProperties", null, 0, 1, Config.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConfig_Table(), this.getTable(), null, "table", null, 0, -1, Config.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConfig_Relationship(), this.getRelationship(), null, "relationship", null, 0, -1, Config.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConfig_Uri(), theXMLTypePackage.getString(), "uri", null, 0, 1, Config.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(connectionPropertiesEClass, ConnectionProperties.class, "ConnectionProperties", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getConnectionProperties_Config(), theXMLTypePackage.getAnyURI(), "config", null, 0, 1, ConnectionProperties.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConnectionProperties_DataSource(), theXMLTypePackage.getString(), "dataSource", null, 0, 1, ConnectionProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConnectionProperties_DriverClassName(), theXMLTypePackage.getString(), "driverClassName", null, 0, 1, ConnectionProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConnectionProperties_DriverPassword(), theXMLTypePackage.getString(), "driverPassword", null, 0, 1, ConnectionProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConnectionProperties_DriverURL(), theXMLTypePackage.getString(), "driverURL", null, 0, 1, ConnectionProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConnectionProperties_DriverUserName(), theXMLTypePackage.getString(), "driverUserName", null, 0, 1, ConnectionProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(keyPairEClass, KeyPair.class, "KeyPair", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getKeyPair_ForeignKeyColumn(), theXMLTypePackage.getString(), "foreignKeyColumn", null, 0, 1, KeyPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getKeyPair_PrimaryKeyColumn(), theXMLTypePackage.getString(), "primaryKeyColumn", null, 0, 1, KeyPair.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getKeyPair_Relationship(), theXMLTypePackage.getAnyURI(), "relationship", null, 0, 1, KeyPair.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getParameter_ColumnType(), theXMLTypePackage.getString(), "columnType", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParameter_Command(), theXMLTypePackage.getAnyURI(), "command", null, 0, 1, Parameter.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParameter_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(relationshipEClass, Relationship.class, "Relationship", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRelationship_KeyPair(), this.getKeyPair(), null, "keyPair", null, 0, -1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationship_Config(), theXMLTypePackage.getAnyURI(), "config", null, 0, 1, Relationship.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationship_ForeignKeyTable(), theXMLTypePackage.getString(), "foreignKeyTable", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationship_Many(), theXMLTypePackage.getBoolean(), "many", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationship_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelationship_PrimaryKeyTable(), theXMLTypePackage.getString(), "primaryKeyTable", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(resultDescriptorEClass, ResultDescriptor.class, "ResultDescriptor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getResultDescriptor_ColumnName(), theXMLTypePackage.getString(), "columnName", null, 0, 1, ResultDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResultDescriptor_ColumnType(), theXMLTypePackage.getString(), "columnType", null, 0, 1, ResultDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResultDescriptor_Command(), theXMLTypePackage.getAnyURI(), "command", null, 0, 1, ResultDescriptor.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResultDescriptor_Converter(), theXMLTypePackage.getString(), "converter", null, 0, 1, ResultDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResultDescriptor_TableName(), theXMLTypePackage.getString(), "tableName", null, 0, 1, ResultDescriptor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(tableEClass, Table.class, "Table", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTable_Column(), this.getColumn(), null, "column", null, 0, -1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_Config(), theXMLTypePackage.getAnyURI(), "config", null, 0, 1, Table.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_Create(), theXMLTypePackage.getString(), "create", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_Delete(), theXMLTypePackage.getString(), "delete", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_PropertyName(), theXMLTypePackage.getString(), "propertyName", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTable_Update(), theXMLTypePackage.getString(), "update", null, 0, 1, Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for http:///org/eclipse/emf/ecore/util/ExtendedMetaData.
+ *
+ *
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (columnEClass,
+ source,
+ new String[]
+ {
+ "name", "Column",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getColumn_Collision(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "collision"
+ });
+ addAnnotation
+ (getColumn_ColumnType(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "columnType"
+ });
+ addAnnotation
+ (getColumn_ConverterClassName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "converterClassName"
+ });
+ addAnnotation
+ (getColumn_Generated(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "generated"
+ });
+ addAnnotation
+ (getColumn_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getColumn_PrimaryKey(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "primaryKey"
+ });
+ addAnnotation
+ (getColumn_PropertyName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "propertyName"
+ });
+ addAnnotation
+ (getColumn_Table(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Table"
+ });
+ addAnnotation
+ (commandEClass,
+ source,
+ new String[]
+ {
+ "name", "Command",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getCommand_Parameter(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Parameter"
+ });
+ addAnnotation
+ (getCommand_ResultDescriptor(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "ResultDescriptor"
+ });
+ addAnnotation
+ (getCommand_Config(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Config"
+ });
+ addAnnotation
+ (getCommand_Kind(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "kind"
+ });
+ addAnnotation
+ (getCommand_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getCommand_SQL(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "SQL"
+ });
+ addAnnotation
+ (configEClass,
+ source,
+ new String[]
+ {
+ "name", "Config",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getConfig_Command(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Command"
+ });
+ addAnnotation
+ (getConfig_ConnectionProperties(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "ConnectionProperties"
+ });
+ addAnnotation
+ (getConfig_Table(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Table"
+ });
+ addAnnotation
+ (getConfig_Relationship(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Relationship"
+ });
+ addAnnotation
+ (getConfig_Uri(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "uri"
+ });
+ addAnnotation
+ (connectionPropertiesEClass,
+ source,
+ new String[]
+ {
+ "name", "ConnectionProperties",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getConnectionProperties_Config(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Config"
+ });
+ addAnnotation
+ (getConnectionProperties_DataSource(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "dataSource"
+ });
+ addAnnotation
+ (getConnectionProperties_DriverClassName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "driverClassName"
+ });
+ addAnnotation
+ (getConnectionProperties_DriverPassword(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "driverPassword"
+ });
+ addAnnotation
+ (getConnectionProperties_DriverURL(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "driverURL"
+ });
+ addAnnotation
+ (getConnectionProperties_DriverUserName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "driverUserName"
+ });
+ addAnnotation
+ (keyPairEClass,
+ source,
+ new String[]
+ {
+ "name", "KeyPair",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getKeyPair_ForeignKeyColumn(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "foreignKeyColumn"
+ });
+ addAnnotation
+ (getKeyPair_PrimaryKeyColumn(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "primaryKeyColumn"
+ });
+ addAnnotation
+ (getKeyPair_Relationship(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Relationship"
+ });
+ addAnnotation
+ (parameterEClass,
+ source,
+ new String[]
+ {
+ "name", "Parameter",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getParameter_ColumnType(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "columnType"
+ });
+ addAnnotation
+ (getParameter_Command(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Command"
+ });
+ addAnnotation
+ (getParameter_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (relationshipEClass,
+ source,
+ new String[]
+ {
+ "name", "Relationship",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getRelationship_KeyPair(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "KeyPair"
+ });
+ addAnnotation
+ (getRelationship_Config(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Config"
+ });
+ addAnnotation
+ (getRelationship_ForeignKeyTable(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "foreignKeyTable"
+ });
+ addAnnotation
+ (getRelationship_Many(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "many"
+ });
+ addAnnotation
+ (getRelationship_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getRelationship_PrimaryKeyTable(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "primaryKeyTable"
+ });
+ addAnnotation
+ (resultDescriptorEClass,
+ source,
+ new String[]
+ {
+ "name", "ResultDescriptor",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getResultDescriptor_ColumnName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "columnName"
+ });
+ addAnnotation
+ (getResultDescriptor_ColumnType(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "columnType"
+ });
+ addAnnotation
+ (getResultDescriptor_Command(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Command"
+ });
+ addAnnotation
+ (getResultDescriptor_Converter(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "converter"
+ });
+ addAnnotation
+ (getResultDescriptor_TableName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "tableName"
+ });
+ addAnnotation
+ (tableEClass,
+ source,
+ new String[]
+ {
+ "name", "Table",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getTable_Column(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Column"
+ });
+ addAnnotation
+ (getTable_Config(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "Config"
+ });
+ addAnnotation
+ (getTable_Create(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "create"
+ });
+ addAnnotation
+ (getTable_Delete(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "delete"
+ });
+ addAnnotation
+ (getTable_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getTable_PropertyName(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "propertyName"
+ });
+ addAnnotation
+ (getTable_Update(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "update"
+ });
+ }
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ *
each class,
+ *
each feature of each class,
+ *
each enum,
+ *
and each data type
+ *
+ *
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.ColumnImpl Column}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ColumnImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getColumn()
+ * @generated
+ */
+ public static final EClass COLUMN = eINSTANCE.getColumn();
+
+ /**
+ * The meta object literal for the 'Collision' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__COLLISION = eINSTANCE.getColumn_Collision();
+
+ /**
+ * The meta object literal for the 'Column Type' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__COLUMN_TYPE = eINSTANCE.getColumn_ColumnType();
+
+ /**
+ * The meta object literal for the 'Converter Class Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__CONVERTER_CLASS_NAME = eINSTANCE.getColumn_ConverterClassName();
+
+ /**
+ * The meta object literal for the 'Generated' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__GENERATED = eINSTANCE.getColumn_Generated();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__NAME = eINSTANCE.getColumn_Name();
+
+ /**
+ * The meta object literal for the 'Primary Key' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__PRIMARY_KEY = eINSTANCE.getColumn_PrimaryKey();
+
+ /**
+ * The meta object literal for the 'Property Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__PROPERTY_NAME = eINSTANCE.getColumn_PropertyName();
+
+ /**
+ * The meta object literal for the 'Table' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COLUMN__TABLE = eINSTANCE.getColumn_Table();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.CommandImpl Command}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.CommandImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getCommand()
+ * @generated
+ */
+ public static final EClass COMMAND = eINSTANCE.getCommand();
+
+ /**
+ * The meta object literal for the 'Parameter' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference COMMAND__PARAMETER = eINSTANCE.getCommand_Parameter();
+
+ /**
+ * The meta object literal for the 'Result Descriptor' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference COMMAND__RESULT_DESCRIPTOR = eINSTANCE.getCommand_ResultDescriptor();
+
+ /**
+ * The meta object literal for the 'Config' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMMAND__CONFIG = eINSTANCE.getCommand_Config();
+
+ /**
+ * The meta object literal for the 'Kind' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMMAND__KIND = eINSTANCE.getCommand_Kind();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMMAND__NAME = eINSTANCE.getCommand_Name();
+
+ /**
+ * The meta object literal for the 'SQL' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMMAND__SQL = eINSTANCE.getCommand_SQL();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.ConfigImpl Config}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getConfig()
+ * @generated
+ */
+ public static final EClass CONFIG = eINSTANCE.getConfig();
+
+ /**
+ * The meta object literal for the 'Command' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference CONFIG__COMMAND = eINSTANCE.getConfig_Command();
+
+ /**
+ * The meta object literal for the 'Connection Properties' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference CONFIG__CONNECTION_PROPERTIES = eINSTANCE.getConfig_ConnectionProperties();
+
+ /**
+ * The meta object literal for the 'Table' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference CONFIG__TABLE = eINSTANCE.getConfig_Table();
+
+ /**
+ * The meta object literal for the 'Relationship' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference CONFIG__RELATIONSHIP = eINSTANCE.getConfig_Relationship();
+
+ /**
+ * The meta object literal for the 'Uri' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONFIG__URI = eINSTANCE.getConfig_Uri();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.ConnectionPropertiesImpl Connection Properties}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ConnectionPropertiesImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getConnectionProperties()
+ * @generated
+ */
+ public static final EClass CONNECTION_PROPERTIES = eINSTANCE.getConnectionProperties();
+
+ /**
+ * The meta object literal for the 'Config' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__CONFIG = eINSTANCE.getConnectionProperties_Config();
+
+ /**
+ * The meta object literal for the 'Data Source' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__DATA_SOURCE = eINSTANCE.getConnectionProperties_DataSource();
+
+ /**
+ * The meta object literal for the 'Driver Class Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__DRIVER_CLASS_NAME = eINSTANCE.getConnectionProperties_DriverClassName();
+
+ /**
+ * The meta object literal for the 'Driver Password' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__DRIVER_PASSWORD = eINSTANCE.getConnectionProperties_DriverPassword();
+
+ /**
+ * The meta object literal for the 'Driver URL' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__DRIVER_URL = eINSTANCE.getConnectionProperties_DriverURL();
+
+ /**
+ * The meta object literal for the 'Driver User Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CONNECTION_PROPERTIES__DRIVER_USER_NAME = eINSTANCE.getConnectionProperties_DriverUserName();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.KeyPairImpl Key Pair}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.KeyPairImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getKeyPair()
+ * @generated
+ */
+ public static final EClass KEY_PAIR = eINSTANCE.getKeyPair();
+
+ /**
+ * The meta object literal for the 'Foreign Key Column' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute KEY_PAIR__FOREIGN_KEY_COLUMN = eINSTANCE.getKeyPair_ForeignKeyColumn();
+
+ /**
+ * The meta object literal for the 'Primary Key Column' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute KEY_PAIR__PRIMARY_KEY_COLUMN = eINSTANCE.getKeyPair_PrimaryKeyColumn();
+
+ /**
+ * The meta object literal for the 'Relationship' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute KEY_PAIR__RELATIONSHIP = eINSTANCE.getKeyPair_Relationship();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.ParameterImpl Parameter}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ParameterImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getParameter()
+ * @generated
+ */
+ public static final EClass PARAMETER = eINSTANCE.getParameter();
+
+ /**
+ * The meta object literal for the 'Column Type' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute PARAMETER__COLUMN_TYPE = eINSTANCE.getParameter_ColumnType();
+
+ /**
+ * The meta object literal for the 'Command' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute PARAMETER__COMMAND = eINSTANCE.getParameter_Command();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute PARAMETER__NAME = eINSTANCE.getParameter_Name();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.RelationshipImpl Relationship}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.RelationshipImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getRelationship()
+ * @generated
+ */
+ public static final EClass RELATIONSHIP = eINSTANCE.getRelationship();
+
+ /**
+ * The meta object literal for the 'Key Pair' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference RELATIONSHIP__KEY_PAIR = eINSTANCE.getRelationship_KeyPair();
+
+ /**
+ * The meta object literal for the 'Config' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RELATIONSHIP__CONFIG = eINSTANCE.getRelationship_Config();
+
+ /**
+ * The meta object literal for the 'Foreign Key Table' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RELATIONSHIP__FOREIGN_KEY_TABLE = eINSTANCE.getRelationship_ForeignKeyTable();
+
+ /**
+ * The meta object literal for the 'Many' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RELATIONSHIP__MANY = eINSTANCE.getRelationship_Many();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RELATIONSHIP__NAME = eINSTANCE.getRelationship_Name();
+
+ /**
+ * The meta object literal for the 'Primary Key Table' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RELATIONSHIP__PRIMARY_KEY_TABLE = eINSTANCE.getRelationship_PrimaryKeyTable();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.ResultDescriptorImpl Result Descriptor}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.ResultDescriptorImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getResultDescriptor()
+ * @generated
+ */
+ public static final EClass RESULT_DESCRIPTOR = eINSTANCE.getResultDescriptor();
+
+ /**
+ * The meta object literal for the 'Column Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RESULT_DESCRIPTOR__COLUMN_NAME = eINSTANCE.getResultDescriptor_ColumnName();
+
+ /**
+ * The meta object literal for the 'Column Type' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RESULT_DESCRIPTOR__COLUMN_TYPE = eINSTANCE.getResultDescriptor_ColumnType();
+
+ /**
+ * The meta object literal for the 'Command' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RESULT_DESCRIPTOR__COMMAND = eINSTANCE.getResultDescriptor_Command();
+
+ /**
+ * The meta object literal for the 'Converter' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RESULT_DESCRIPTOR__CONVERTER = eINSTANCE.getResultDescriptor_Converter();
+
+ /**
+ * The meta object literal for the 'Table Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute RESULT_DESCRIPTOR__TABLE_NAME = eINSTANCE.getResultDescriptor_TableName();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.config.impl.TableImpl Table}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.config.impl.TableImpl
+ * @see org.apache.tuscany.das.rdb.config.impl.ConfigPackageImpl#getTable()
+ * @generated
+ */
+ public static final EClass TABLE = eINSTANCE.getTable();
+
+ /**
+ * The meta object literal for the 'Column' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference TABLE__COLUMN = eINSTANCE.getTable_Column();
+
+ /**
+ * The meta object literal for the 'Config' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__CONFIG = eINSTANCE.getTable_Config();
+
+ /**
+ * The meta object literal for the 'Create' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__CREATE = eINSTANCE.getTable_Create();
+
+ /**
+ * The meta object literal for the 'Delete' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__DELETE = eINSTANCE.getTable_Delete();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__NAME = eINSTANCE.getTable_Name();
+
+ /**
+ * The meta object literal for the 'Property Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__PROPERTY_NAME = eINSTANCE.getTable_PropertyName();
+
+ /**
+ * The meta object literal for the 'Update' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute TABLE__UPDATE = eINSTANCE.getTable_Update();
+
+ }
+
+} //ConfigPackageImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConnectionPropertiesImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConnectionPropertiesImpl.java
new file mode 100644
index 0000000000..c961732dca
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/impl/ConnectionPropertiesImpl.java
@@ -0,0 +1,455 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.config.impl;
+
+import org.apache.tuscany.das.rdb.config.ConnectionProperties;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Connection Properties'.
+ *
+ *
+ *
+ * @generated
+ */
+public interface CompanyType
+{
+ /**
+ * Returns the value of the 'Departments' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.company.DepartmentType}.
+ *
+ *
+ * If the meaning of the 'Departments' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Departments' containment reference list.
+ * @generated
+ */
+ List getDepartments();
+
+ /**
+ * Returns the value of the 'Employee Of The Month' attribute.
+ *
+ *
+ * If the meaning of the 'Employee Of The Month' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Employee Of The Month' attribute.
+ * @see #setEmployeeOfTheMonth(String)
+ * @generated
+ */
+ String getEmployeeOfTheMonth();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.CompanyType#getEmployeeOfTheMonth Employee Of The Month}' attribute.
+ *
+ *
+ * @param value the new value of the 'Employee Of The Month' attribute.
+ * @see #getEmployeeOfTheMonth()
+ * @generated
+ */
+ void setEmployeeOfTheMonth(String value);
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.CompanyType#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // CompanyType
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DatagraphRoot.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DatagraphRoot.java
new file mode 100644
index 0000000000..cdce989e1c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DatagraphRoot.java
@@ -0,0 +1,71 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Datagraph Root'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface DatagraphRoot
+{
+ /**
+ * Returns the value of the 'Companies' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.company.CompanyType}.
+ *
+ *
+ * If the meaning of the 'Companies' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Companies' containment reference list.
+ * @generated
+ */
+ List getCompanies();
+
+ /**
+ * Returns the value of the 'Departments' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.company.DepartmentType}.
+ *
+ *
+ * If the meaning of the 'Departments' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Departments' containment reference list.
+ * @generated
+ */
+ List getDepartments();
+
+ /**
+ * Returns the value of the 'Employees' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.company.EmployeeType}.
+ *
+ *
+ * If the meaning of the 'Employees' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Employees' containment reference list.
+ * @generated
+ */
+ List getEmployees();
+
+} // DatagraphRoot
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DepartmentType.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DepartmentType.java
new file mode 100644
index 0000000000..0fa23d972b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/DepartmentType.java
@@ -0,0 +1,143 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Department Type'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface DepartmentType
+{
+ /**
+ * Returns the value of the 'Employees' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.company.EmployeeType}.
+ *
+ *
+ * If the meaning of the 'Employees' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Employees' containment reference list.
+ * @generated
+ */
+ List getEmployees();
+
+ /**
+ * Returns the value of the 'Location' attribute.
+ *
+ *
+ * If the meaning of the 'Location' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Location' attribute.
+ * @see #setLocation(String)
+ * @generated
+ */
+ String getLocation();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getLocation Location}' attribute.
+ *
+ *
+ * @param value the new value of the 'Location' attribute.
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(String value);
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'Number' attribute.
+ *
+ *
+ * If the meaning of the 'Number' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Number' attribute.
+ * @see #isSetNumber()
+ * @see #unsetNumber()
+ * @see #setNumber(int)
+ * @generated
+ */
+ int getNumber();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getNumber Number}' attribute.
+ *
+ *
+ * @param value the new value of the 'Number' attribute.
+ * @see #isSetNumber()
+ * @see #unsetNumber()
+ * @see #getNumber()
+ * @generated
+ */
+ void setNumber(int value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getNumber Number}' attribute.
+ *
+ *
+ * @see #isSetNumber()
+ * @see #getNumber()
+ * @see #setNumber(int)
+ * @generated
+ */
+ void unsetNumber();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getNumber Number}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Number' attribute is set.
+ * @see #unsetNumber()
+ * @see #getNumber()
+ * @see #setNumber(int)
+ * @generated
+ */
+ boolean isSetNumber();
+
+} // DepartmentType
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/EmployeeType.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/EmployeeType.java
new file mode 100644
index 0000000000..ccc4dcb393
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/EmployeeType.java
@@ -0,0 +1,127 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company;
+
+
+/**
+ *
+ * A representation of the model object 'Employee Type'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface EmployeeType
+{
+ /**
+ * Returns the value of the 'Manager' attribute.
+ *
+ *
+ * If the meaning of the 'Manager' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Manager' attribute.
+ * @see #isSetManager()
+ * @see #unsetManager()
+ * @see #setManager(boolean)
+ * @generated
+ */
+ boolean isManager();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#isManager Manager}' attribute.
+ *
+ *
+ * @param value the new value of the 'Manager' attribute.
+ * @see #isSetManager()
+ * @see #unsetManager()
+ * @see #isManager()
+ * @generated
+ */
+ void setManager(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#isManager Manager}' attribute.
+ *
+ *
+ * @see #isSetManager()
+ * @see #isManager()
+ * @see #setManager(boolean)
+ * @generated
+ */
+ void unsetManager();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#isManager Manager}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Manager' attribute is set.
+ * @see #unsetManager()
+ * @see #isManager()
+ * @see #setManager(boolean)
+ * @generated
+ */
+ boolean isSetManager();
+
+ /**
+ * Returns the value of the 'Name' attribute.
+ *
+ *
+ * If the meaning of the 'Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Name' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#getName Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Name' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the 'SN' attribute.
+ *
+ *
+ * If the meaning of the 'SN' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'SN' attribute.
+ * @see #setSN(String)
+ * @generated
+ */
+ String getSN();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#getSN SN}' attribute.
+ *
+ *
+ * @param value the new value of the 'SN' attribute.
+ * @see #getSN()
+ * @generated
+ */
+ void setSN(String value);
+
+} // EmployeeType
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyFactoryImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyFactoryImpl.java
new file mode 100644
index 0000000000..7ce6161e54
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyFactoryImpl.java
@@ -0,0 +1,164 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company.impl;
+
+import org.apache.tuscany.das.rdb.test.company.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ *
+ * An implementation of the model Factory.
+ *
+ * @generated
+ */
+public class CompanyFactoryImpl extends EFactoryImpl implements CompanyFactory
+{
+ /**
+ * The singleton instance of the factory.
+ *
+ *
+ * @generated
+ */
+ public static final CompanyFactoryImpl eINSTANCE = init();
+
+ /**
+ * Creates the default factory implementation.
+ *
+ *
+ * @generated
+ */
+ public static CompanyFactoryImpl init()
+ {
+ try
+ {
+ CompanyFactoryImpl theCompanyFactory = (CompanyFactoryImpl)EPackage.Registry.INSTANCE.getEFactory("org.apache.tuscany.das.rdb.test/company.xsd");
+ if (theCompanyFactory != null)
+ {
+ return theCompanyFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CompanyFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ *
+ *
+ * @generated
+ */
+ public CompanyFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case CompanyPackageImpl.COMPANY_TYPE: return (EObject)createCompanyType();
+ case CompanyPackageImpl.DATAGRAPH_ROOT: return (EObject)createDatagraphRoot();
+ case CompanyPackageImpl.DEPARTMENT_TYPE: return (EObject)createDepartmentType();
+ case CompanyPackageImpl.DOCUMENT_ROOT: return (EObject)createDocumentRoot();
+ case CompanyPackageImpl.EMPLOYEE_TYPE: return (EObject)createEmployeeType();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public CompanyType createCompanyType()
+ {
+ CompanyTypeImpl companyType = new CompanyTypeImpl();
+ return companyType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public DatagraphRoot createDatagraphRoot()
+ {
+ DatagraphRootImpl datagraphRoot = new DatagraphRootImpl();
+ return datagraphRoot;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public DepartmentType createDepartmentType()
+ {
+ DepartmentTypeImpl departmentType = new DepartmentTypeImpl();
+ return departmentType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EObject createDocumentRoot()
+ {
+ EObject documentRoot = super.create(CompanyPackageImpl.Literals.DOCUMENT_ROOT);
+ return documentRoot;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EmployeeType createEmployeeType()
+ {
+ EmployeeTypeImpl employeeType = new EmployeeTypeImpl();
+ return employeeType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public CompanyPackageImpl getCompanyPackageImpl()
+ {
+ return (CompanyPackageImpl)getEPackage();
+ }
+
+ /**
+ *
+ *
+ * @deprecated
+ * @generated
+ */
+ public static CompanyPackageImpl getPackage()
+ {
+ return CompanyPackageImpl.eINSTANCE;
+ }
+
+} //CompanyFactoryImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyPackageImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyPackageImpl.java
new file mode 100644
index 0000000000..6e8e40b107
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyPackageImpl.java
@@ -0,0 +1,1248 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company.impl;
+
+import org.apache.tuscany.das.rdb.test.company.CompanyFactory;
+import org.apache.tuscany.das.rdb.test.company.CompanyType;
+import org.apache.tuscany.das.rdb.test.company.DatagraphRoot;
+import org.apache.tuscany.das.rdb.test.company.DepartmentType;
+import org.apache.tuscany.das.rdb.test.company.EmployeeType;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ *
+ * The Package for the model.
+ * It contains accessors for the meta objects to represent
+ *
+ *
each class,
+ *
each feature of each class,
+ *
each enum,
+ *
and each data type
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.CompanyFactory
+ * @generated
+ */
+public class CompanyPackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNAME = "company";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_URI = "org.apache.tuscany.das.rdb.test/company.xsd";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_PREFIX = "company";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ public static final CompanyPackageImpl eINSTANCE = org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.company.impl.CompanyTypeImpl Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getCompanyType()
+ * @generated
+ */
+ public static final int COMPANY_TYPE = 0;
+
+ /**
+ * The feature id for the 'Departments' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMPANY_TYPE__DEPARTMENTS = 0;
+
+ /**
+ * The feature id for the 'Employee Of The Month' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMPANY_TYPE__EMPLOYEE_OF_THE_MONTH = 1;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMPANY_TYPE__NAME = 2;
+
+ /**
+ * The number of structural features of the 'Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int COMPANY_TYPE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DatagraphRootImpl Datagraph Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DatagraphRootImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDatagraphRoot()
+ * @generated
+ */
+ public static final int DATAGRAPH_ROOT = 1;
+
+ /**
+ * The feature id for the 'Companies' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATAGRAPH_ROOT__COMPANIES = 0;
+
+ /**
+ * The feature id for the 'Departments' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATAGRAPH_ROOT__DEPARTMENTS = 1;
+
+ /**
+ * The feature id for the 'Employees' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATAGRAPH_ROOT__EMPLOYEES = 2;
+
+ /**
+ * The number of structural features of the 'Datagraph Root' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATAGRAPH_ROOT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DepartmentTypeImpl Department Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DepartmentTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDepartmentType()
+ * @generated
+ */
+ public static final int DEPARTMENT_TYPE = 2;
+
+ /**
+ * The feature id for the 'Employees' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DEPARTMENT_TYPE__EMPLOYEES = 0;
+
+ /**
+ * The feature id for the 'Location' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DEPARTMENT_TYPE__LOCATION = 1;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DEPARTMENT_TYPE__NAME = 2;
+
+ /**
+ * The feature id for the 'Number' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DEPARTMENT_TYPE__NUMBER = 3;
+
+ /**
+ * The number of structural features of the 'Department Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DEPARTMENT_TYPE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DocumentRootImpl Document Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DocumentRootImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final int DOCUMENT_ROOT = 3;
+
+ /**
+ * The feature id for the 'Mixed' attribute list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the 'XMLNS Prefix Map' map.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the 'XSI Schema Location' map.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the 'Company' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__COMPANY = 3;
+
+ /**
+ * The number of structural features of the 'Document Root' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.company.impl.EmployeeTypeImpl Employee Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.EmployeeTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getEmployeeType()
+ * @generated
+ */
+ public static final int EMPLOYEE_TYPE = 4;
+
+ /**
+ * The feature id for the 'Manager' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int EMPLOYEE_TYPE__MANAGER = 0;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int EMPLOYEE_TYPE__NAME = 1;
+
+ /**
+ * The feature id for the 'SN' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int EMPLOYEE_TYPE__SN = 2;
+
+ /**
+ * The number of structural features of the 'Employee Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int EMPLOYEE_TYPE_FEATURE_COUNT = 3;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass companyTypeEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass datagraphRootEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass departmentTypeEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass employeeTypeEClass = null;
+
+ /**
+ * Creates an instance of the model Package, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ *
Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CompanyPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)CompanyFactory.INSTANCE));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ *
Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ *
Invocation of this method will not affect any packages that have
+ * already been initialized.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CompanyPackageImpl init()
+ {
+ if (isInited) return (CompanyPackageImpl)EPackage.Registry.INSTANCE.getEPackage(CompanyPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ CompanyPackageImpl theCompanyPackageImpl = (CompanyPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof CompanyPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new CompanyPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theCompanyPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theCompanyPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCompanyPackageImpl.freeze();
+
+ return theCompanyPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.company.CompanyType Type}'.
+ *
+ *
+ * @return the meta object for class 'Type'.
+ * @see org.apache.tuscany.das.rdb.test.company.CompanyType
+ * @generated
+ */
+ public EClass getCompanyType()
+ {
+ return companyTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.company.CompanyType#getDepartments Departments}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Departments'.
+ * @see org.apache.tuscany.das.rdb.test.company.CompanyType#getDepartments()
+ * @see #getCompanyType()
+ * @generated
+ */
+ public EReference getCompanyType_Departments()
+ {
+ return (EReference)companyTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.CompanyType#getEmployeeOfTheMonth Employee Of The Month}'.
+ *
+ *
+ * @return the meta object for the attribute 'Employee Of The Month'.
+ * @see org.apache.tuscany.das.rdb.test.company.CompanyType#getEmployeeOfTheMonth()
+ * @see #getCompanyType()
+ * @generated
+ */
+ public EAttribute getCompanyType_EmployeeOfTheMonth()
+ {
+ return (EAttribute)companyTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.CompanyType#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.test.company.CompanyType#getName()
+ * @see #getCompanyType()
+ * @generated
+ */
+ public EAttribute getCompanyType_Name()
+ {
+ return (EAttribute)companyTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.company.DatagraphRoot Datagraph Root}'.
+ *
+ *
+ * @return the meta object for class 'Datagraph Root'.
+ * @see org.apache.tuscany.das.rdb.test.company.DatagraphRoot
+ * @generated
+ */
+ public EClass getDatagraphRoot()
+ {
+ return datagraphRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getCompanies Companies}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Companies'.
+ * @see org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getCompanies()
+ * @see #getDatagraphRoot()
+ * @generated
+ */
+ public EReference getDatagraphRoot_Companies()
+ {
+ return (EReference)datagraphRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getDepartments Departments}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Departments'.
+ * @see org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getDepartments()
+ * @see #getDatagraphRoot()
+ * @generated
+ */
+ public EReference getDatagraphRoot_Departments()
+ {
+ return (EReference)datagraphRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getEmployees Employees}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Employees'.
+ * @see org.apache.tuscany.das.rdb.test.company.DatagraphRoot#getEmployees()
+ * @see #getDatagraphRoot()
+ * @generated
+ */
+ public EReference getDatagraphRoot_Employees()
+ {
+ return (EReference)datagraphRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType Department Type}'.
+ *
+ *
+ * @return the meta object for class 'Department Type'.
+ * @see org.apache.tuscany.das.rdb.test.company.DepartmentType
+ * @generated
+ */
+ public EClass getDepartmentType()
+ {
+ return departmentTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getEmployees Employees}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Employees'.
+ * @see org.apache.tuscany.das.rdb.test.company.DepartmentType#getEmployees()
+ * @see #getDepartmentType()
+ * @generated
+ */
+ public EReference getDepartmentType_Employees()
+ {
+ return (EReference)departmentTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getLocation Location}'.
+ *
+ *
+ * @return the meta object for the attribute 'Location'.
+ * @see org.apache.tuscany.das.rdb.test.company.DepartmentType#getLocation()
+ * @see #getDepartmentType()
+ * @generated
+ */
+ public EAttribute getDepartmentType_Location()
+ {
+ return (EAttribute)departmentTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.test.company.DepartmentType#getName()
+ * @see #getDepartmentType()
+ * @generated
+ */
+ public EAttribute getDepartmentType_Name()
+ {
+ return (EAttribute)departmentTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.DepartmentType#getNumber Number}'.
+ *
+ *
+ * @return the meta object for the attribute 'Number'.
+ * @see org.apache.tuscany.das.rdb.test.company.DepartmentType#getNumber()
+ * @see #getDepartmentType()
+ * @generated
+ */
+ public EAttribute getDepartmentType_Number()
+ {
+ return (EAttribute)departmentTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.ecore.EObject Document Root}'.
+ *
+ *
+ * @return the meta object for class 'Document Root'.
+ * @see org.eclipse.emf.ecore.EObject
+ * @generated
+ */
+ public EClass getDocumentRoot()
+ {
+ return documentRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.ecore.EObject#getMixed Mixed}'.
+ *
+ *
+ * @return the meta object for the attribute list 'Mixed'.
+ * @see org.eclipse.emf.ecore.EObject#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Mixed()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap XMLNS Prefix Map}'.
+ *
+ *
+ * @return the meta object for the map 'XMLNS Prefix Map'.
+ * @see org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XMLNSPrefixMap()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXSISchemaLocation XSI Schema Location}'.
+ *
+ *
+ * @return the meta object for the map 'XSI Schema Location'.
+ * @see org.eclipse.emf.ecore.EObject#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XSISchemaLocation()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getCompany Company}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Company'.
+ * @see org.eclipse.emf.ecore.EObject#getCompany()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_Company()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType Employee Type}'.
+ *
+ *
+ * @return the meta object for class 'Employee Type'.
+ * @see org.apache.tuscany.das.rdb.test.company.EmployeeType
+ * @generated
+ */
+ public EClass getEmployeeType()
+ {
+ return employeeTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#isManager Manager}'.
+ *
+ *
+ * @return the meta object for the attribute 'Manager'.
+ * @see org.apache.tuscany.das.rdb.test.company.EmployeeType#isManager()
+ * @see #getEmployeeType()
+ * @generated
+ */
+ public EAttribute getEmployeeType_Manager()
+ {
+ return (EAttribute)employeeTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#getName Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Name'.
+ * @see org.apache.tuscany.das.rdb.test.company.EmployeeType#getName()
+ * @see #getEmployeeType()
+ * @generated
+ */
+ public EAttribute getEmployeeType_Name()
+ {
+ return (EAttribute)employeeTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.company.EmployeeType#getSN SN}'.
+ *
+ *
+ * @return the meta object for the attribute 'SN'.
+ * @see org.apache.tuscany.das.rdb.test.company.EmployeeType#getSN()
+ * @see #getEmployeeType()
+ * @generated
+ */
+ public EAttribute getEmployeeType_SN()
+ {
+ return (EAttribute)employeeTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public CompanyFactory getCompanyFactory()
+ {
+ return (CompanyFactory)getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ companyTypeEClass = createEClass(COMPANY_TYPE);
+ createEReference(companyTypeEClass, COMPANY_TYPE__DEPARTMENTS);
+ createEAttribute(companyTypeEClass, COMPANY_TYPE__EMPLOYEE_OF_THE_MONTH);
+ createEAttribute(companyTypeEClass, COMPANY_TYPE__NAME);
+
+ datagraphRootEClass = createEClass(DATAGRAPH_ROOT);
+ createEReference(datagraphRootEClass, DATAGRAPH_ROOT__COMPANIES);
+ createEReference(datagraphRootEClass, DATAGRAPH_ROOT__DEPARTMENTS);
+ createEReference(datagraphRootEClass, DATAGRAPH_ROOT__EMPLOYEES);
+
+ departmentTypeEClass = createEClass(DEPARTMENT_TYPE);
+ createEReference(departmentTypeEClass, DEPARTMENT_TYPE__EMPLOYEES);
+ createEAttribute(departmentTypeEClass, DEPARTMENT_TYPE__LOCATION);
+ createEAttribute(departmentTypeEClass, DEPARTMENT_TYPE__NAME);
+ createEAttribute(departmentTypeEClass, DEPARTMENT_TYPE__NUMBER);
+
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__COMPANY);
+
+ employeeTypeEClass = createEClass(EMPLOYEE_TYPE);
+ createEAttribute(employeeTypeEClass, EMPLOYEE_TYPE__MANAGER);
+ createEAttribute(employeeTypeEClass, EMPLOYEE_TYPE__NAME);
+ createEAttribute(employeeTypeEClass, EMPLOYEE_TYPE__SN);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(companyTypeEClass, CompanyType.class, "CompanyType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompanyType_Departments(), this.getDepartmentType(), null, "departments", null, 1, -1, CompanyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompanyType_EmployeeOfTheMonth(), theXMLTypePackage.getIDREF(), "employeeOfTheMonth", null, 0, 1, CompanyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompanyType_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, CompanyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(datagraphRootEClass, DatagraphRoot.class, "DatagraphRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDatagraphRoot_Companies(), this.getCompanyType(), null, "companies", null, 0, -1, DatagraphRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDatagraphRoot_Departments(), this.getDepartmentType(), null, "departments", null, 0, -1, DatagraphRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDatagraphRoot_Employees(), this.getEmployeeType(), null, "employees", null, 0, -1, DatagraphRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(departmentTypeEClass, DepartmentType.class, "DepartmentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDepartmentType_Employees(), this.getEmployeeType(), null, "employees", null, 1, -1, DepartmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDepartmentType_Location(), theXMLTypePackage.getString(), "location", null, 0, 1, DepartmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDepartmentType_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, DepartmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDepartmentType_Number(), theXMLTypePackage.getInt(), "number", null, 0, 1, DepartmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(documentRootEClass, null, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_Company(), this.getCompanyType(), null, "company", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(employeeTypeEClass, EmployeeType.class, "EmployeeType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEmployeeType_Manager(), theXMLTypePackage.getBoolean(), "manager", null, 0, 1, EmployeeType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEmployeeType_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, EmployeeType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEmployeeType_SN(), theXMLTypePackage.getID(), "sN", null, 0, 1, EmployeeType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for http:///org/eclipse/emf/ecore/util/ExtendedMetaData.
+ *
+ *
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (companyTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "CompanyType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getCompanyType_Departments(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "departments"
+ });
+ addAnnotation
+ (getCompanyType_EmployeeOfTheMonth(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "employeeOfTheMonth"
+ });
+ addAnnotation
+ (getCompanyType_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (datagraphRootEClass,
+ source,
+ new String[]
+ {
+ "name", "DatagraphRoot",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getDatagraphRoot_Companies(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "companies"
+ });
+ addAnnotation
+ (getDatagraphRoot_Departments(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "departments"
+ });
+ addAnnotation
+ (getDatagraphRoot_Employees(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "employees"
+ });
+ addAnnotation
+ (departmentTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "DepartmentType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getDepartmentType_Employees(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "employees"
+ });
+ addAnnotation
+ (getDepartmentType_Location(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "location"
+ });
+ addAnnotation
+ (getDepartmentType_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getDepartmentType_Number(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "number"
+ });
+ addAnnotation
+ (documentRootEClass,
+ source,
+ new String[]
+ {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_Mixed(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_XMLNSPrefixMap(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ (getDocumentRoot_XSISchemaLocation(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ addAnnotation
+ (getDocumentRoot_Company(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "company",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (employeeTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "EmployeeType",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getEmployeeType_Manager(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "manager"
+ });
+ addAnnotation
+ (getEmployeeType_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getEmployeeType_SN(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "SN"
+ });
+ }
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ *
each class,
+ *
each feature of each class,
+ *
each enum,
+ *
and each data type
+ *
+ *
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.company.impl.CompanyTypeImpl Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getCompanyType()
+ * @generated
+ */
+ public static final EClass COMPANY_TYPE = eINSTANCE.getCompanyType();
+
+ /**
+ * The meta object literal for the 'Departments' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference COMPANY_TYPE__DEPARTMENTS = eINSTANCE.getCompanyType_Departments();
+
+ /**
+ * The meta object literal for the 'Employee Of The Month' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMPANY_TYPE__EMPLOYEE_OF_THE_MONTH = eINSTANCE.getCompanyType_EmployeeOfTheMonth();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute COMPANY_TYPE__NAME = eINSTANCE.getCompanyType_Name();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DatagraphRootImpl Datagraph Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DatagraphRootImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDatagraphRoot()
+ * @generated
+ */
+ public static final EClass DATAGRAPH_ROOT = eINSTANCE.getDatagraphRoot();
+
+ /**
+ * The meta object literal for the 'Companies' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DATAGRAPH_ROOT__COMPANIES = eINSTANCE.getDatagraphRoot_Companies();
+
+ /**
+ * The meta object literal for the 'Departments' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DATAGRAPH_ROOT__DEPARTMENTS = eINSTANCE.getDatagraphRoot_Departments();
+
+ /**
+ * The meta object literal for the 'Employees' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DATAGRAPH_ROOT__EMPLOYEES = eINSTANCE.getDatagraphRoot_Employees();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DepartmentTypeImpl Department Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DepartmentTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDepartmentType()
+ * @generated
+ */
+ public static final EClass DEPARTMENT_TYPE = eINSTANCE.getDepartmentType();
+
+ /**
+ * The meta object literal for the 'Employees' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DEPARTMENT_TYPE__EMPLOYEES = eINSTANCE.getDepartmentType_Employees();
+
+ /**
+ * The meta object literal for the 'Location' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute DEPARTMENT_TYPE__LOCATION = eINSTANCE.getDepartmentType_Location();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute DEPARTMENT_TYPE__NAME = eINSTANCE.getDepartmentType_Name();
+
+ /**
+ * The meta object literal for the 'Number' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute DEPARTMENT_TYPE__NUMBER = eINSTANCE.getDepartmentType_Number();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.company.impl.DocumentRootImpl Document Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.DocumentRootImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the 'Mixed' attribute list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the 'XMLNS Prefix Map' map feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the 'XSI Schema Location' map feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the 'Company' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__COMPANY = eINSTANCE.getDocumentRoot_Company();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.company.impl.EmployeeTypeImpl Employee Type}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.company.impl.EmployeeTypeImpl
+ * @see org.apache.tuscany.das.rdb.test.company.impl.CompanyPackageImpl#getEmployeeType()
+ * @generated
+ */
+ public static final EClass EMPLOYEE_TYPE = eINSTANCE.getEmployeeType();
+
+ /**
+ * The meta object literal for the 'Manager' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute EMPLOYEE_TYPE__MANAGER = eINSTANCE.getEmployeeType_Manager();
+
+ /**
+ * The meta object literal for the 'Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute EMPLOYEE_TYPE__NAME = eINSTANCE.getEmployeeType_Name();
+
+ /**
+ * The meta object literal for the 'SN' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute EMPLOYEE_TYPE__SN = eINSTANCE.getEmployeeType_SN();
+
+ }
+
+} //CompanyPackageImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyTypeImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyTypeImpl.java
new file mode 100644
index 0000000000..6387e87dc8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/company/impl/CompanyTypeImpl.java
@@ -0,0 +1,293 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.company.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.das.rdb.test.company.CompanyType;
+import org.apache.tuscany.das.rdb.test.company.DepartmentType;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ *
+ * An implementation of the model object 'Type'.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface AnOrder
+{
+ /**
+ * Returns the value of the 'ID' attribute.
+ *
+ *
+ * If the meaning of the 'ID' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'ID' attribute.
+ * @see #isSetID()
+ * @see #unsetID()
+ * @see #setID(int)
+ * @generated
+ */
+ int getID();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getID ID}' attribute.
+ *
+ *
+ * @param value the new value of the 'ID' attribute.
+ * @see #isSetID()
+ * @see #unsetID()
+ * @see #getID()
+ * @generated
+ */
+ void setID(int value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getID ID}' attribute.
+ *
+ *
+ * @see #isSetID()
+ * @see #getID()
+ * @see #setID(int)
+ * @generated
+ */
+ void unsetID();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getID ID}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'ID' attribute is set.
+ * @see #unsetID()
+ * @see #getID()
+ * @see #setID(int)
+ * @generated
+ */
+ boolean isSetID();
+
+ /**
+ * Returns the value of the 'Product' attribute.
+ *
+ *
+ * If the meaning of the 'Product' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Product' attribute.
+ * @see #setProduct(String)
+ * @generated
+ */
+ String getProduct();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getProduct Product}' attribute.
+ *
+ *
+ * @param value the new value of the 'Product' attribute.
+ * @see #getProduct()
+ * @generated
+ */
+ void setProduct(String value);
+
+ /**
+ * Returns the value of the 'Quantity' attribute.
+ *
+ *
+ * If the meaning of the 'Quantity' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Quantity' attribute.
+ * @see #isSetQuantity()
+ * @see #unsetQuantity()
+ * @see #setQuantity(int)
+ * @generated
+ */
+ int getQuantity();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getQuantity Quantity}' attribute.
+ *
+ *
+ * @param value the new value of the 'Quantity' attribute.
+ * @see #isSetQuantity()
+ * @see #unsetQuantity()
+ * @see #getQuantity()
+ * @generated
+ */
+ void setQuantity(int value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getQuantity Quantity}' attribute.
+ *
+ *
+ * @see #isSetQuantity()
+ * @see #getQuantity()
+ * @see #setQuantity(int)
+ * @generated
+ */
+ void unsetQuantity();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getQuantity Quantity}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Quantity' attribute is set.
+ * @see #unsetQuantity()
+ * @see #getQuantity()
+ * @see #setQuantity(int)
+ * @generated
+ */
+ boolean isSetQuantity();
+
+ /**
+ * Returns the value of the 'Customer ID' attribute.
+ *
+ *
+ * If the meaning of the 'Customer ID' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Customer ID' attribute.
+ * @see #isSetCustomerID()
+ * @see #unsetCustomerID()
+ * @see #setCustomerID(int)
+ * @generated
+ */
+ int getCustomerID();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getCustomerID Customer ID}' attribute.
+ *
+ *
+ * @param value the new value of the 'Customer ID' attribute.
+ * @see #isSetCustomerID()
+ * @see #unsetCustomerID()
+ * @see #getCustomerID()
+ * @generated
+ */
+ void setCustomerID(int value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getCustomerID Customer ID}' attribute.
+ *
+ *
+ * @see #isSetCustomerID()
+ * @see #getCustomerID()
+ * @see #setCustomerID(int)
+ * @generated
+ */
+ void unsetCustomerID();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getCustomerID Customer ID}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'Customer ID' attribute is set.
+ * @see #unsetCustomerID()
+ * @see #getCustomerID()
+ * @see #setCustomerID(int)
+ * @generated
+ */
+ boolean isSetCustomerID();
+
+} // AnOrder
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/Customer.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/Customer.java
new file mode 100644
index 0000000000..d34e220d34
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/Customer.java
@@ -0,0 +1,143 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.customer;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Customer'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface Customer
+{
+ /**
+ * Returns the value of the 'ID' attribute.
+ *
+ *
+ * If the meaning of the 'ID' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'ID' attribute.
+ * @see #isSetID()
+ * @see #unsetID()
+ * @see #setID(int)
+ * @generated
+ */
+ int getID();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getID ID}' attribute.
+ *
+ *
+ * @param value the new value of the 'ID' attribute.
+ * @see #isSetID()
+ * @see #unsetID()
+ * @see #getID()
+ * @generated
+ */
+ void setID(int value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getID ID}' attribute.
+ *
+ *
+ * @see #isSetID()
+ * @see #getID()
+ * @see #setID(int)
+ * @generated
+ */
+ void unsetID();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getID ID}' attribute is set.
+ *
+ *
+ * @return whether the value of the 'ID' attribute is set.
+ * @see #unsetID()
+ * @see #getID()
+ * @see #setID(int)
+ * @generated
+ */
+ boolean isSetID();
+
+ /**
+ * Returns the value of the 'Last Name' attribute.
+ *
+ *
+ * If the meaning of the 'Last Name' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Last Name' attribute.
+ * @see #setLastName(String)
+ * @generated
+ */
+ String getLastName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getLastName Last Name}' attribute.
+ *
+ *
+ * @param value the new value of the 'Last Name' attribute.
+ * @see #getLastName()
+ * @generated
+ */
+ void setLastName(String value);
+
+ /**
+ * Returns the value of the 'Address' attribute.
+ *
+ *
+ * If the meaning of the 'Address' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Address' attribute.
+ * @see #setAddress(String)
+ * @generated
+ */
+ String getAddress();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getAddress Address}' attribute.
+ *
+ *
+ * @param value the new value of the 'Address' attribute.
+ * @see #getAddress()
+ * @generated
+ */
+ void setAddress(String value);
+
+ /**
+ * Returns the value of the 'Orders' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.customer.AnOrder}.
+ *
+ *
+ * If the meaning of the 'Orders' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Orders' containment reference list.
+ * @generated
+ */
+ List getOrders();
+
+} // Customer
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/CustomerFactory.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/CustomerFactory.java
new file mode 100644
index 0000000000..d0e20b6a55
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/CustomerFactory.java
@@ -0,0 +1,54 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.customer;
+
+
+/**
+ *
+ * The Factory for the model.
+ * It provides a create method for each non-abstract class of the model.
+ *
+ * @generated
+ */
+public interface CustomerFactory
+{
+ /**
+ * The singleton instance of the factory.
+ *
+ *
+ * @generated
+ */
+ CustomerFactory INSTANCE = org.apache.tuscany.das.rdb.test.customer.impl.CustomerFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class 'An Order'.
+ *
+ *
+ * @return a new object of class 'An Order'.
+ * @generated
+ */
+ AnOrder createAnOrder();
+
+ /**
+ * Returns a new object of class 'Customer'.
+ *
+ *
+ * @return a new object of class 'Customer'.
+ * @generated
+ */
+ Customer createCustomer();
+
+ /**
+ * Returns a new object of class 'Data Graph Root'.
+ *
+ *
+ * @return a new object of class 'Data Graph Root'.
+ * @generated
+ */
+ DataGraphRoot createDataGraphRoot();
+
+} //CustomerFactory
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/DataGraphRoot.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/DataGraphRoot.java
new file mode 100644
index 0000000000..6229ee605b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/DataGraphRoot.java
@@ -0,0 +1,56 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.customer;
+
+import java.util.List;
+
+/**
+ *
+ * A representation of the model object 'Data Graph Root'.
+ *
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public interface DataGraphRoot
+{
+ /**
+ * Returns the value of the 'Customers' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.customer.Customer}.
+ *
+ *
+ * If the meaning of the 'Customers' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Customers' containment reference list.
+ * @generated
+ */
+ List getCustomers();
+
+ /**
+ * Returns the value of the 'Orders' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.das.rdb.test.customer.AnOrder}.
+ *
+ *
+ * If the meaning of the 'Orders' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Orders' containment reference list.
+ * @generated
+ */
+ List getOrders();
+
+} // DataGraphRoot
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/AnOrderImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/AnOrderImpl.java
new file mode 100644
index 0000000000..94f2ee9e61
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/AnOrderImpl.java
@@ -0,0 +1,451 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.customer.impl;
+
+import org.apache.tuscany.das.rdb.test.customer.AnOrder;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'An Order'.
+ *
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.CustomerFactory
+ * @generated
+ */
+public class CustomerPackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNAME = "customer";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_URI = "http:///org.apache.tuscany.das.rdb.test/customer.xsd";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ public static final String eNS_PREFIX = "customer";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ public static final CustomerPackageImpl eINSTANCE = org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.AnOrderImpl An Order}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.AnOrderImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getAnOrder()
+ * @generated
+ */
+ public static final int AN_ORDER = 0;
+
+ /**
+ * The feature id for the 'ID' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int AN_ORDER__ID = 0;
+
+ /**
+ * The feature id for the 'Product' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int AN_ORDER__PRODUCT = 1;
+
+ /**
+ * The feature id for the 'Quantity' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int AN_ORDER__QUANTITY = 2;
+
+ /**
+ * The feature id for the 'Customer ID' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int AN_ORDER__CUSTOMER_ID = 3;
+
+ /**
+ * The number of structural features of the 'An Order' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int AN_ORDER_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.CustomerImpl Customer}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getCustomer()
+ * @generated
+ */
+ public static final int CUSTOMER = 1;
+
+ /**
+ * The feature id for the 'ID' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CUSTOMER__ID = 0;
+
+ /**
+ * The feature id for the 'Last Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CUSTOMER__LAST_NAME = 1;
+
+ /**
+ * The feature id for the 'Address' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CUSTOMER__ADDRESS = 2;
+
+ /**
+ * The feature id for the 'Orders' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CUSTOMER__ORDERS = 3;
+
+ /**
+ * The number of structural features of the 'Customer' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int CUSTOMER_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.DataGraphRootImpl Data Graph Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.DataGraphRootImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getDataGraphRoot()
+ * @generated
+ */
+ public static final int DATA_GRAPH_ROOT = 2;
+
+ /**
+ * The feature id for the 'Customers' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_ROOT__CUSTOMERS = 0;
+
+ /**
+ * The feature id for the 'Orders' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_ROOT__ORDERS = 1;
+
+ /**
+ * The number of structural features of the 'Data Graph Root' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_ROOT_FEATURE_COUNT = 2;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass anOrderEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass customerEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass dataGraphRootEClass = null;
+
+ /**
+ * Creates an instance of the model Package, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ *
Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CustomerPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)CustomerFactory.INSTANCE));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ *
Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ *
Invocation of this method will not affect any packages that have
+ * already been initialized.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CustomerPackageImpl init()
+ {
+ if (isInited) return (CustomerPackageImpl)EPackage.Registry.INSTANCE.getEPackage(CustomerPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ CustomerPackageImpl theCustomerPackageImpl = (CustomerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof CustomerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new CustomerPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theCustomerPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theCustomerPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCustomerPackageImpl.freeze();
+
+ return theCustomerPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder An Order}'.
+ *
+ *
+ * @return the meta object for class 'An Order'.
+ * @see org.apache.tuscany.das.rdb.test.customer.AnOrder
+ * @generated
+ */
+ public EClass getAnOrder()
+ {
+ return anOrderEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getID ID}'.
+ *
+ *
+ * @return the meta object for the attribute 'ID'.
+ * @see org.apache.tuscany.das.rdb.test.customer.AnOrder#getID()
+ * @see #getAnOrder()
+ * @generated
+ */
+ public EAttribute getAnOrder_ID()
+ {
+ return (EAttribute)anOrderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getProduct Product}'.
+ *
+ *
+ * @return the meta object for the attribute 'Product'.
+ * @see org.apache.tuscany.das.rdb.test.customer.AnOrder#getProduct()
+ * @see #getAnOrder()
+ * @generated
+ */
+ public EAttribute getAnOrder_Product()
+ {
+ return (EAttribute)anOrderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getQuantity Quantity}'.
+ *
+ *
+ * @return the meta object for the attribute 'Quantity'.
+ * @see org.apache.tuscany.das.rdb.test.customer.AnOrder#getQuantity()
+ * @see #getAnOrder()
+ * @generated
+ */
+ public EAttribute getAnOrder_Quantity()
+ {
+ return (EAttribute)anOrderEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.AnOrder#getCustomerID Customer ID}'.
+ *
+ *
+ * @return the meta object for the attribute 'Customer ID'.
+ * @see org.apache.tuscany.das.rdb.test.customer.AnOrder#getCustomerID()
+ * @see #getAnOrder()
+ * @generated
+ */
+ public EAttribute getAnOrder_CustomerID()
+ {
+ return (EAttribute)anOrderEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.customer.Customer Customer}'.
+ *
+ *
+ * @return the meta object for class 'Customer'.
+ * @see org.apache.tuscany.das.rdb.test.customer.Customer
+ * @generated
+ */
+ public EClass getCustomer()
+ {
+ return customerEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getID ID}'.
+ *
+ *
+ * @return the meta object for the attribute 'ID'.
+ * @see org.apache.tuscany.das.rdb.test.customer.Customer#getID()
+ * @see #getCustomer()
+ * @generated
+ */
+ public EAttribute getCustomer_ID()
+ {
+ return (EAttribute)customerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getLastName Last Name}'.
+ *
+ *
+ * @return the meta object for the attribute 'Last Name'.
+ * @see org.apache.tuscany.das.rdb.test.customer.Customer#getLastName()
+ * @see #getCustomer()
+ * @generated
+ */
+ public EAttribute getCustomer_LastName()
+ {
+ return (EAttribute)customerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getAddress Address}'.
+ *
+ *
+ * @return the meta object for the attribute 'Address'.
+ * @see org.apache.tuscany.das.rdb.test.customer.Customer#getAddress()
+ * @see #getCustomer()
+ * @generated
+ */
+ public EAttribute getCustomer_Address()
+ {
+ return (EAttribute)customerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.customer.Customer#getOrders Orders}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Orders'.
+ * @see org.apache.tuscany.das.rdb.test.customer.Customer#getOrders()
+ * @see #getCustomer()
+ * @generated
+ */
+ public EReference getCustomer_Orders()
+ {
+ return (EReference)customerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.das.rdb.test.customer.DataGraphRoot Data Graph Root}'.
+ *
+ *
+ * @return the meta object for class 'Data Graph Root'.
+ * @see org.apache.tuscany.das.rdb.test.customer.DataGraphRoot
+ * @generated
+ */
+ public EClass getDataGraphRoot()
+ {
+ return dataGraphRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.customer.DataGraphRoot#getCustomers Customers}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Customers'.
+ * @see org.apache.tuscany.das.rdb.test.customer.DataGraphRoot#getCustomers()
+ * @see #getDataGraphRoot()
+ * @generated
+ */
+ public EReference getDataGraphRoot_Customers()
+ {
+ return (EReference)dataGraphRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.das.rdb.test.customer.DataGraphRoot#getOrders Orders}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Orders'.
+ * @see org.apache.tuscany.das.rdb.test.customer.DataGraphRoot#getOrders()
+ * @see #getDataGraphRoot()
+ * @generated
+ */
+ public EReference getDataGraphRoot_Orders()
+ {
+ return (EReference)dataGraphRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public CustomerFactory getCustomerFactory()
+ {
+ return (CustomerFactory)getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ anOrderEClass = createEClass(AN_ORDER);
+ createEAttribute(anOrderEClass, AN_ORDER__ID);
+ createEAttribute(anOrderEClass, AN_ORDER__PRODUCT);
+ createEAttribute(anOrderEClass, AN_ORDER__QUANTITY);
+ createEAttribute(anOrderEClass, AN_ORDER__CUSTOMER_ID);
+
+ customerEClass = createEClass(CUSTOMER);
+ createEAttribute(customerEClass, CUSTOMER__ID);
+ createEAttribute(customerEClass, CUSTOMER__LAST_NAME);
+ createEAttribute(customerEClass, CUSTOMER__ADDRESS);
+ createEReference(customerEClass, CUSTOMER__ORDERS);
+
+ dataGraphRootEClass = createEClass(DATA_GRAPH_ROOT);
+ createEReference(dataGraphRootEClass, DATA_GRAPH_ROOT__CUSTOMERS);
+ createEReference(dataGraphRootEClass, DATA_GRAPH_ROOT__ORDERS);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(anOrderEClass, AnOrder.class, "AnOrder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAnOrder_ID(), theXMLTypePackage.getInt(), "iD", null, 1, 1, AnOrder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnOrder_Product(), theXMLTypePackage.getString(), "product", null, 1, 1, AnOrder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnOrder_Quantity(), theXMLTypePackage.getInt(), "quantity", null, 1, 1, AnOrder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAnOrder_CustomerID(), theXMLTypePackage.getInt(), "customerID", null, 1, 1, AnOrder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(customerEClass, Customer.class, "Customer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCustomer_ID(), theXMLTypePackage.getInt(), "iD", null, 1, 1, Customer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCustomer_LastName(), theXMLTypePackage.getString(), "lastName", null, 1, 1, Customer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCustomer_Address(), theXMLTypePackage.getString(), "address", null, 1, 1, Customer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCustomer_Orders(), this.getAnOrder(), null, "orders", null, 1, -1, Customer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(dataGraphRootEClass, DataGraphRoot.class, "DataGraphRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDataGraphRoot_Customers(), this.getCustomer(), null, "customers", null, 0, -1, DataGraphRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDataGraphRoot_Orders(), this.getAnOrder(), null, "orders", null, 0, -1, DataGraphRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for http:///org/eclipse/emf/ecore/util/ExtendedMetaData.
+ *
+ *
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (anOrderEClass,
+ source,
+ new String[]
+ {
+ "name", "AnOrder",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getAnOrder_ID(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "ID"
+ });
+ addAnnotation
+ (getAnOrder_Product(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Product"
+ });
+ addAnnotation
+ (getAnOrder_Quantity(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Quantity"
+ });
+ addAnnotation
+ (getAnOrder_CustomerID(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "Customer_ID"
+ });
+ addAnnotation
+ (customerEClass,
+ source,
+ new String[]
+ {
+ "name", "Customer",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getCustomer_ID(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "ID"
+ });
+ addAnnotation
+ (getCustomer_LastName(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "lastName"
+ });
+ addAnnotation
+ (getCustomer_Address(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "address"
+ });
+ addAnnotation
+ (getCustomer_Orders(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "orders"
+ });
+ addAnnotation
+ (dataGraphRootEClass,
+ source,
+ new String[]
+ {
+ "name", "DataGraphRoot",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getDataGraphRoot_Customers(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "customers"
+ });
+ addAnnotation
+ (getDataGraphRoot_Orders(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "orders"
+ });
+ }
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ *
each class,
+ *
each feature of each class,
+ *
each enum,
+ *
and each data type
+ *
+ *
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.AnOrderImpl An Order}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.AnOrderImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getAnOrder()
+ * @generated
+ */
+ public static final EClass AN_ORDER = eINSTANCE.getAnOrder();
+
+ /**
+ * The meta object literal for the 'ID' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute AN_ORDER__ID = eINSTANCE.getAnOrder_ID();
+
+ /**
+ * The meta object literal for the 'Product' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute AN_ORDER__PRODUCT = eINSTANCE.getAnOrder_Product();
+
+ /**
+ * The meta object literal for the 'Quantity' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute AN_ORDER__QUANTITY = eINSTANCE.getAnOrder_Quantity();
+
+ /**
+ * The meta object literal for the 'Customer ID' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute AN_ORDER__CUSTOMER_ID = eINSTANCE.getAnOrder_CustomerID();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.CustomerImpl Customer}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getCustomer()
+ * @generated
+ */
+ public static final EClass CUSTOMER = eINSTANCE.getCustomer();
+
+ /**
+ * The meta object literal for the 'ID' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CUSTOMER__ID = eINSTANCE.getCustomer_ID();
+
+ /**
+ * The meta object literal for the 'Last Name' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CUSTOMER__LAST_NAME = eINSTANCE.getCustomer_LastName();
+
+ /**
+ * The meta object literal for the 'Address' attribute feature.
+ *
+ *
+ * @generated
+ */
+ public static final EAttribute CUSTOMER__ADDRESS = eINSTANCE.getCustomer_Address();
+
+ /**
+ * The meta object literal for the 'Orders' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference CUSTOMER__ORDERS = eINSTANCE.getCustomer_Orders();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.das.rdb.test.customer.impl.DataGraphRootImpl Data Graph Root}' class.
+ *
+ *
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.DataGraphRootImpl
+ * @see org.apache.tuscany.das.rdb.test.customer.impl.CustomerPackageImpl#getDataGraphRoot()
+ * @generated
+ */
+ public static final EClass DATA_GRAPH_ROOT = eINSTANCE.getDataGraphRoot();
+
+ /**
+ * The meta object literal for the 'Customers' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DATA_GRAPH_ROOT__CUSTOMERS = eINSTANCE.getDataGraphRoot_Customers();
+
+ /**
+ * The meta object literal for the 'Orders' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ public static final EReference DATA_GRAPH_ROOT__ORDERS = eINSTANCE.getDataGraphRoot_Orders();
+
+ }
+
+} //CustomerPackageImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/DataGraphRootImpl.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/DataGraphRootImpl.java
new file mode 100644
index 0000000000..5031b58870
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/customer/impl/DataGraphRootImpl.java
@@ -0,0 +1,203 @@
+/**
+ *
+ *
+ *
+ * $Id$
+ */
+package org.apache.tuscany.das.rdb.test.customer.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.das.rdb.test.customer.AnOrder;
+import org.apache.tuscany.das.rdb.test.customer.Customer;
+import org.apache.tuscany.das.rdb.test.customer.DataGraphRoot;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ *
+ * An implementation of the model object 'Data Graph Root'.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public class DataGraphRootImpl extends DataObjectImpl implements DataGraphRoot
+{
+ /**
+ * The cached value of the '{@link #getCustomers() Customers}' containment reference list.
+ *
+ *
+ * @see #getCustomers()
+ * @generated
+ * @ordered
+ */
+ protected EList customers = null;
+
+ /**
+ * The cached value of the '{@link #getOrders() Orders}' containment reference list.
+ *
+ *
+ * @see #getOrders()
+ * @generated
+ * @ordered
+ */
+ protected EList orders = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected DataGraphRootImpl()
+ {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return CustomerPackageImpl.Literals.DATA_GRAPH_ROOT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public List getCustomers()
+ {
+ if (customers == null)
+ {
+ customers = new EObjectContainmentEList(Customer.class, this, CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS);
+ }
+ return customers;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public List getOrders()
+ {
+ if (orders == null)
+ {
+ orders = new EObjectContainmentEList(AnOrder.class, this, CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS);
+ }
+ return orders;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS:
+ return ((InternalEList)getCustomers()).basicRemove(otherEnd, msgs);
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS:
+ return ((InternalEList)getOrders()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS:
+ return getCustomers();
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS:
+ return getOrders();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS:
+ getCustomers().clear();
+ getCustomers().addAll((Collection)newValue);
+ return;
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS:
+ getOrders().clear();
+ getOrders().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS:
+ getCustomers().clear();
+ return;
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS:
+ getOrders().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__CUSTOMERS:
+ return customers != null && !customers.isEmpty();
+ case CustomerPackageImpl.DATA_GRAPH_ROOT__ORDERS:
+ return orders != null && !orders.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DataGraphRootImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
new file mode 100644
index 0000000000..4b55d417eb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
@@ -0,0 +1,45 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class BookData extends TestDataWithExplicitColumns {
+
+ //CREATE TABLE BOOK (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)
+
+ private static int[] bookTypes = {Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.INTEGER};
+
+ private static Object[][] bookData = {
+ { new Integer(1), "The Brothers Karamazov", "Fyodor Dostoevsky", new Integer(5), new Integer(17) },
+ { new Integer(2), "Cat in the Hat", "Doctor Seuss", new Integer(10), new Integer(1) }};
+
+ private static String[] bookColumns = { "ID", "NAME", "AUTHOR", "QUANTITY", "OCC"};
+
+ public BookData(Connection connection) {
+ super(connection, bookData, bookColumns, bookTypes);
+ }
+
+ public String getTableName() {
+ return "BOOK";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CityData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CityData.java
new file mode 100644
index 0000000000..0ebbd6c5af
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CityData.java
@@ -0,0 +1,54 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class CityData extends TestData {
+
+ private static Object[][] cityData = {
+ {new Integer(1), "Lizard Lick", "1"},
+ {new Integer(2), "Morrisville", "1"},
+ {new Integer(3), "Breckenridge", "2"},
+ {new Integer(4), "Barstow", "3"},
+ {new Integer(5), "Sacramento", "3"}
+
+ };
+
+ public CityData(Connection c) {
+ super(c, cityData);
+ }
+
+ public String getTableName() {
+ return "CITIES";
+ }
+
+ public void doDeletes() throws SQLException {
+ deleteRowsFromTable();
+
+ }
+
+ public void doInserts() throws SQLException {
+ insertRows();
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyData.java
new file mode 100644
index 0000000000..9c49004ba5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyData.java
@@ -0,0 +1,45 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class CompanyData extends TestDataWithExplicitColumns {
+
+ //CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY ,NAME VARCHAR(30))
+
+ private static int[] columnTypes = {Types.VARCHAR};
+
+ private static Object[][] companyData = { { "ACME Publishing" },
+ { "Do-rite plumbing" },
+ { "MegaCorp" } };
+
+ private static String[] companyColumns = { "NAME" };
+
+ public CompanyData(Connection connection) {
+ super(connection, companyData, companyColumns, columnTypes);
+ }
+
+ public String getTableName() {
+ return "COMPANY";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyDeptData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyDeptData.java
new file mode 100644
index 0000000000..66d0c25369
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CompanyDeptData.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.test.framework.RelationshipData;
+
+
+public class CompanyDeptData extends RelationshipData {
+
+ public static Object[][] data = {
+ {"MegaCorp", "Advanced Technologies"}
+ };
+
+ public CompanyDeptData(Connection c) {
+ super(c, data);
+ }
+
+ protected String getParentRetrievalStatement() {
+ return "select id from company where name = ?";
+ }
+
+ protected String getChildUpdateStatement() {
+ return "update department set companyid = ? where department.name = ?";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CustomerData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CustomerData.java
new file mode 100644
index 0000000000..149bcfc71b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/CustomerData.java
@@ -0,0 +1,45 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class CustomerData extends TestData {
+
+ private static Object[][] customerData = {
+ {new Integer(1), "Williams", "1212 foobar lane"},
+ {new Integer(2), "Daniel", "156 Brentfield Loop"},
+ {new Integer(3), "Williams", "456 penny lane"},
+ {new Integer(4), "Williams", "5000 pineville"},
+ {new Integer(5), "Williams", "100000 firefly lane"}
+ };
+
+ public CustomerData(Connection connection) {
+ super(connection, customerData);
+ }
+
+
+ public String getTableName() {
+ return "CUSTOMER";
+ }
+
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepEmpData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepEmpData.java
new file mode 100644
index 0000000000..fbd9cf7cab
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepEmpData.java
@@ -0,0 +1,45 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.test.framework.RelationshipData;
+
+
+public class DepEmpData extends RelationshipData {
+
+ private static Object[][] data = {
+ {"Advanced Technologies", "John Jones"},
+ {"Advanced Technologies", "Jane Doe"},
+ {"Advanced Technologies", "Al Smith"}
+ };
+
+
+ public DepEmpData(Connection c) {
+ super(c, data);
+ }
+
+ protected String getParentRetrievalStatement() {
+ return "select department.id from department where department.name = ?";
+ }
+
+ protected String getChildUpdateStatement() {
+ return "update employee set employee.departmentid = ? where employee.name = ?";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java
new file mode 100644
index 0000000000..d3c10affdd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java
@@ -0,0 +1,41 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class DepartmentData extends TestDataWithExplicitColumns {
+
+ private static int[] columnTypes = {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
+
+ private static Object[][] deptData = { { "Advanced Technologies", "NY", "123" } };
+
+ private static String[] deptColumns = { "NAME", "LOCATION", "NUMBER" };
+
+ public DepartmentData(Connection connection) {
+ super(connection, deptData, deptColumns, columnTypes);
+ }
+
+ public String getTableName() {
+ return "DEPARTMENT";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java
new file mode 100644
index 0000000000..82dcbe4cb3
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java
@@ -0,0 +1,44 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class EmployeeData extends TestDataWithExplicitColumns {
+
+ private static int[] columnTypes = {Types.VARCHAR, Types.VARCHAR, Types.SMALLINT};
+
+ private static Object[][] employeeData = { { "John Jones", "E0001", new Boolean(false) },
+ { "Mary Smith", "E0002", new Boolean(true)},
+ { "Jane Doe", "E0003", new Boolean(false)},
+ { "Al Smith", "E0004", new Boolean(true) } };
+
+ private static String[] employeeColumns = { "NAME", "SN", "MANAGER" };
+
+ public EmployeeData(Connection connection) {
+ super(connection, employeeData, employeeColumns, columnTypes);
+ }
+
+ public String getTableName() {
+ return "EMPLOYEE";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderData.java
new file mode 100644
index 0000000000..e6a52204f8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderData.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class OrderData extends TestData {
+
+
+ public static Object[][] orderData = {
+ {new Integer(1), "recombobulator", new Integer(47), new Integer(1)},
+ {new Integer(2), "wrench", new Integer(17), new Integer(3)},
+ {new Integer(3), "pliers", new Integer(500), new Integer(1)},
+ {new Integer(4), "Tooth Paste", new Integer(12), new Integer(2)}
+ };
+
+ public OrderData(Connection c) {
+ super(c, orderData);
+ }
+
+ public String getTableName() {
+ return "ANORDER";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderDetailsData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderDetailsData.java
new file mode 100644
index 0000000000..9193f7c6d5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/OrderDetailsData.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class OrderDetailsData extends TestData {
+
+ //CREATE TABLE ORDERDETAILS (ORDERID INT NOT NULL, PRODUCTID INT NOT NULL, PRICE FLOAT, PRIMARY KEY (ORDERID, PRODUCTID))
+
+ public static Object[][] orderDetailsData = {
+ {new Integer(1), new Integer(1), new Float(1.1)},
+ {new Integer(1), new Integer(2), new Float(1.2)},
+ {new Integer(2), new Integer(1), new Float(2.1)},
+ {new Integer(2), new Integer(2), new Float(2.2)}
+ };
+
+ public OrderDetailsData(Connection c) {
+ super(c, orderDetailsData);
+ }
+
+ public String getTableName() {
+ return "ORDERDETAILS";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/PartData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/PartData.java
new file mode 100644
index 0000000000..dd78b1be35
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/PartData.java
@@ -0,0 +1,52 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class PartData extends TestDataWithExplicitColumns {
+
+
+ //CREATE TABLE PART (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(50), QUANTITY INT, PARENT_ID INT )
+
+ private static String[] partColumns = { "ID" , "NAME", "QUANTITY", "PARENT_ID"};
+
+ private static int[] columnTypes = {Types.INTEGER, Types.VARCHAR, Types.INTEGER, Types.INTEGER};
+
+ private static Object[][] partData = {
+ {new Integer(1), "Engine", new Integer(1), null},
+ {new Integer(2), "Block", new Integer(1), new Integer(1)},
+ {new Integer(3), "Cam Shaft", new Integer(2), new Integer(1)},
+ {new Integer(4), "Piston", new Integer(8), new Integer(1)},
+ {new Integer(5), "Piston Ring", new Integer(2), new Integer(4)}
+ };
+
+ public PartData(Connection connection) {
+ super(connection, partData, partColumns, columnTypes);
+ }
+
+ public String getTableName() {
+ return "PART";
+ }
+
+}
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/StateData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/StateData.java
new file mode 100644
index 0000000000..0c6d41d096
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/StateData.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class StateData extends TestData {
+
+ public StateData(Connection c) {
+ super(c, stateData);
+ }
+
+ public String getTableName() {
+ return "STATES";
+ }
+
+ private static Object[][] stateData = {
+ {new Integer(1), "NC"},
+ {new Integer(2), "CO"},
+ {new Integer(3), "CA"}
+ };
+
+ public void doDeletes() throws SQLException {
+ deleteRowsFromTable();
+ }
+
+ public void doInserts() throws SQLException {
+ insertRows();
+
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/TypesData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/TypesData.java
new file mode 100644
index 0000000000..1097b07cc5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/TypesData.java
@@ -0,0 +1,64 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.tuscany.das.rdb.test.framework.TestData;
+
+
+public class TypesData extends TestData {
+
+ private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:ss:mm.SSS");
+ private static Timestamp timestamp = getTimestamp();
+
+ private static Object[][] customerData = {
+ {new Integer(1), timestamp, new Float(1234567.89), new Float(1234567.89)}
+ };
+
+ public TypesData(Connection connection) {
+ super(connection, customerData);
+ }
+
+ public String getTableName() {
+ return "TYPETEST";
+ }
+
+
+ //Utilities
+ private static Date getDate() {
+
+ try {
+ return dateFormat.parse("1966-12-20 00:00:00.0");
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ public static Timestamp getTimestamp() {
+
+ return new Timestamp(getDate().getTime());
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DB2Setup.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DB2Setup.java
new file mode 100644
index 0000000000..75df028490
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DB2Setup.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import junit.framework.Test;
+
+public class DB2Setup extends DatabaseSetup {
+
+ public DB2Setup(Test test) {
+ super(test);
+ }
+
+ protected void initConnectionProtocol() {
+
+ platformName = "DB2";
+ driverName = "com.ibm.db2.jcc.DB2Driver";
+ databaseURL = "jdbc:db2:DASTEST";
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DasTest.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DasTest.java
new file mode 100644
index 0000000000..c4e75d20a8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DasTest.java
@@ -0,0 +1,155 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+
+/**
+ *
+ */
+public class DasTest extends TestCase {
+
+ public static Connection connection = null;
+ private boolean usingDefaultSetup = false;
+
+ /**
+ * Tears down the fixture, for example, close a network connection. This
+ * method is called after a test is executed.
+ */
+ protected void tearDown() throws Exception {
+// if (usingDefaultSetup)
+// connection = null;
+ }
+
+ protected Connection getAutoConnection() throws SQLException {
+
+ Connection c = primGetConnection();
+ c.setAutoCommit(true);
+ return connection;
+
+ }
+
+ protected Connection getConnection() throws SQLException {
+
+ Connection c = primGetConnection();
+ c.setAutoCommit(false);
+ return connection;
+ }
+
+ /**
+ * This provides the default connection for runing single test cases on a
+ * chosen platform.
+ */
+ private Connection primGetConnection() {
+ if (connection == null)
+ defaultSetup();
+ return connection;
+ }
+
+
+
+ /**
+ * This is a bit of a hack since it counts on constructor initialization of the
+ * DatabaseSet up class and also calls its setUp method directly. This is a misuse
+ * of this JUnit TestSetup subclass .
+ *
+ * TODO - refactor to avoid this hackiness ... could move this logic to its own
+ * class that is then invoked by DatabaseSetUp
+ */
+ private void defaultSetup() {
+
+ usingDefaultSetup = true;
+
+// DatabaseSetup setUp = new DB2Setup(this);
+ DatabaseSetup setUp = new DerbySetup(this);
+ try {
+ setUp.setUp();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+
+ //Utilities
+ protected InputStream getConfig(String fileName) throws FileNotFoundException {
+ return Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
+ }
+
+ protected void write(String label, ResultSet rs) throws IOException, SQLException {
+
+ ResultSetMetaData md = rs.getMetaData();
+ int count = md.getColumnCount();
+ System.out.println("Contents of ResultSet from " + label);
+ for (int i = 1; i <= count; i++) {
+ System.out.print("\t");
+ System.out.println (md.getColumnLabel(i));
+ }
+ System.out.println("");
+ while (rs.next()) {
+ for (int i = 1; i <= count; i++) {
+ System.out.print("\t");
+ System.out.print(rs.getString(i));
+ }
+ System.out.println("\t");
+ }
+ System.out.println("done");
+ }
+
+
+ protected void printList(List data) {
+ Iterator i = data.iterator();
+ while ( i.hasNext()) {
+ System.out.println();
+ DataObject obj = (DataObject) i.next();
+ Iterator props = obj.getType().getProperties().iterator();
+ while ( props.hasNext()) {
+ Property p = (Property) props.next();
+ if ( p.isMany() ) {
+ System.out.print("[ " + p.getName() + " ] ");
+ Iterator children = obj.getList(p).iterator();
+ while ( children.hasNext()) {
+ DataObject child = (DataObject) children.next();
+ System.out.print("[ " + child.get("ID") + " ]");
+ }
+ System.out.println();
+ } else if ( !p.getType().isDataType()) {
+ DataObject child = obj.getDataObject(p);
+ if ( child != null )
+ System.out.println("[ " + p.getName() + " ] " + "[ " + child.get("ID") + " ]");
+ } else {
+ System.out.println("[ " + p.getName() + " ] " + obj.get(p));
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
new file mode 100644
index 0000000000..f0bd99c5e1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
@@ -0,0 +1,245 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+
+public class DatabaseSetup extends TestSetup {
+
+ protected String platformName = "Not initialized";
+
+ protected String driverName = "Not initialized";
+
+ protected String databaseURL = "Not initialized";
+
+ private Connection connection;
+
+ protected Statement s;
+
+ public DatabaseSetup(Test test) {
+ super(test);
+ initConnectionProtocol();
+ initConnection();
+ DasTest.connection = connection;
+ }
+
+ protected void initConnectionProtocol() {
+ // Subclasses provide implementation
+ }
+
+ private void initConnection() {
+
+ try {
+
+ Class.forName(driverName).newInstance();
+ connection = DriverManager.getConnection(databaseURL);
+ connection.setAutoCommit(false);
+
+ } catch (Exception e) {
+ if (e instanceof SQLException)
+ ((SQLException) e).getNextException().printStackTrace();
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ protected void setUp() throws Exception {
+
+ System.out.println("Setting up for " + platformName + " run");
+
+ s = connection.createStatement();
+
+ try {
+ dropTables();
+ dropProcedures();
+ createTables();
+ createProcedures();
+ connection.commit();
+ } catch (SQLException e) {
+ connection.rollback();
+ }
+
+ }
+
+ protected void tearDown() throws Exception {
+
+ System.out.println("Ending " + platformName + " run");
+ connection.close();
+
+ }
+
+ private void dropTables() {
+
+ System.out.println("Dropping tables");
+
+ String[] statements = {
+
+ "DROP TABLE CUSTOMER", "DROP TABLE ANORDER", "DROP TABLE ORDERDETAILS", "DROP TABLE ITEM", "DROP TABLE COMPANY",
+ "DROP TABLE EMPLOYEE", "DROP TABLE DEPARTMENT", "DROP TABLE BOOK", "DROP TABLE PART", "DROP TABLE TYPETEST",
+ "DROP TABLE CITIES", "DROP TABLE STATES", "DROP TABLE conmgt.SERVERSTATUS"
+
+ };
+
+ for (int i = 0; i < statements.length; i++) {
+ try {
+ s.execute(statements[i]);
+ } catch (SQLException e) {
+ //If the table does not exist then ignore the exception on drop
+ if (!e.getMessage().contains("does not exist"))
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ protected void dropProcedures() {
+
+ System.out.println("Dropping procedures");
+
+ String[] statements = {
+
+ "DROP PROCEDURE GETALLCOMPANIES", "DROP PROCEDURE DELETECUSTOMER", "DROP PROCEDURE GETNAMEDCOMPANY",
+ "DROP PROCEDURE GETCUSTOMERANDORDERS",
+ // "DROP PROCEDURE GETNAMEDCUSTOMERS"
+
+ };
+
+ for (int i = 0; i < statements.length; i++) {
+ try {
+ s.execute(statements[i]);
+ } catch (SQLException e) {
+ //If the proc does not exist then ignore the exception on drop
+ if (!e.getMessage().contains("does not exist"))
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private void createTables() {
+
+ System.out.println("Creating tables");
+
+ try {
+
+ s.execute(getCreateCustomer());
+ s.execute(getCreateAnOrder());
+ s.execute(getCreateOrderDetails());
+ s.execute(getCreateItem());
+ s.execute(getCreateCompany());
+ s.execute(getCreateEmployee());
+ s.execute(getCreateDepartment());
+ s.execute(getCreateBook());
+ s.execute(getCreatePart());
+ s.execute(getCreateTypeTest());
+ s.execute(getCreateStates());
+ s.execute(getCreateCities());
+ s.execute(getCreateServerStatus());
+
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected void createProcedures() {
+
+ System.out.println("Creating procedures");
+ try {
+
+ s
+ .execute("CREATE PROCEDURE GETALLCOMPANIES() PARAMETER STYLE JAVA LANGUAGE JAVA READS SQL DATA DYNAMIC RESULT SETS 1 EXTERNAL NAME 'org.apache.tuscany.das.rdb.test.framework.JavaStoredProcs.getAllCompanies'");
+ s
+ .execute("CREATE PROCEDURE DELETECUSTOMER(theId int) PARAMETER STYLE JAVA LANGUAGE JAVA MODIFIES SQL DATA EXTERNAL NAME 'org.apache.tuscany.das.rdb.test.framework.JavaStoredProcs.deleteCustomer'");
+ s
+ .execute("CREATE PROCEDURE GETNAMEDCOMPANY(theName VARCHAR(100)) PARAMETER STYLE JAVA LANGUAGE JAVA READS SQL DATA DYNAMIC RESULT SETS 1 EXTERNAL NAME 'org.apache.tuscany.das.rdb.test.framework.JavaStoredProcs.getNamedCompany'");
+ s
+ .execute("CREATE PROCEDURE GETCUSTOMERANDORDERS(theID INTEGER) PARAMETER STYLE JAVA LANGUAGE JAVA READS SQL DATA DYNAMIC RESULT SETS 1 EXTERNAL NAME 'org.apache.tuscany.das.rdb.test.framework.JavaStoredProcs.getCustomerAndOrders'");
+ // TODO s.execute("CREATE PROCEDURE GETNAMEDCUSTOMERS(theName
+ // VARCHAR(100), OUT theCount INTEGER) PARAMETER STYLE JAVA LANGUAGE
+ // JAVA READS SQL DATA DYNAMIC RESULT SETS 1 EXTERNAL NAME
+ // 'tests.framework.JavaStoredProcs.getNamedCustomers'");
+ // This is failing on DB2 with SQLCODE: 42723. Need to investigate
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ //
+ // This section povides methods that return strings for table creation.
+ // Platform-specific sublcasses
+ // can override these as necessary
+ //
+
+ protected String getCreateCustomer() {
+ return "CREATE TABLE CUSTOMER (ID INT PRIMARY KEY NOT NULL, LASTNAME VARCHAR(30) DEFAULT 'Garfugengheist', ADDRESS VARCHAR(30))";
+ }
+
+ protected String getCreateAnOrder() {
+ return "CREATE TABLE ANORDER (ID INT PRIMARY KEY NOT NULL, PRODUCT VARCHAR(30), QUANTITY INT, CUSTOMER_ID INT)";
+ }
+
+ protected String getCreateOrderDetails() {
+ return "CREATE TABLE ORDERDETAILS (ORDERID INT NOT NULL, PRODUCTID INT NOT NULL, PRICE FLOAT, PRIMARY KEY (ORDERID, PRODUCTID))";
+ }
+
+ protected String getCreateItem() {
+ return "CREATE TABLE ITEM (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(30))";
+ }
+
+ protected String getCreateCompany() {
+ return "CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY ,NAME VARCHAR(30))";
+ }
+
+ protected String getCreateEmployee() {
+ return "CREATE TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30), SN VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)";
+ }
+
+ protected String getCreateDepartment() {
+ return "CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY, NAME VARCHAR(30), LOCATION VARCHAR(30), NUMBER VARCHAR(10), COMPANYID INT, EOTM INT)";
+ }
+
+ protected String getCreateBook() {
+ return "CREATE TABLE BOOK (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)";
+ }
+
+ protected String getCreatePart() {
+ return "CREATE TABLE PART (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(50), QUANTITY INT, PARENT_ID INT )";
+ }
+
+ protected String getCreateTypeTest() {
+ return "CREATE TABLE TYPETEST (ID INT PRIMARY KEY NOT NULL, ATIMESTAMP TIMESTAMP, ADECIMAL DECIMAL(9,2), AFLOAT FLOAT)";
+ }
+
+ protected String getCreateStates() {
+ return "CREATE TABLE STATES (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(2))";
+ }
+
+ protected String getCreateCities() {
+ return "CREATE TABLE CITIES (ID INT PRIMARY KEY NOT NULL, NAME VARCHAR(50), STATE_ID INT, CONSTRAINT FK1 FOREIGN KEY (STATE_ID) REFERENCES STATES (ID) ON DELETE NO ACTION ON UPDATE NO ACTION)";
+ }
+
+ protected String getCreateServerStatus() {
+
+ return "CREATE TABLE CONMGT.SERVERSTATUS (STATUSID INTEGER PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 ,INCREMENT BY 1), MANAGEDSERVERID INTEGER NOT NULL, TIMESTAMP TIMESTAMP NOT NULL)";
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DerbySetup.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DerbySetup.java
new file mode 100644
index 0000000000..082b1ec50a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DerbySetup.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.util.Properties;
+
+import junit.framework.Test;
+
+public class DerbySetup extends DatabaseSetup {
+
+ public DerbySetup(Test test) {
+ super(test);
+ }
+
+ protected void initConnectionProtocol() {
+
+ //Set the derby property to explicitly specify the database location relative
+ //from current directory to "target"
+ Properties p = System.getProperties();
+ p.put("derby.system.home", "target");
+
+ platformName = "Derby";
+ driverName = "org.apache.derby.jdbc.EmbeddedDriver";
+ databaseURL = "jdbc:derby:dastest; create = true";
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/JavaStoredProcs.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/JavaStoredProcs.java
new file mode 100644
index 0000000000..b993893a85
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/JavaStoredProcs.java
@@ -0,0 +1,85 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * Stored Procedures for DB2 and Derby SP tests
+ *
+ */
+public class JavaStoredProcs {
+
+ public static void getAllCompanies(ResultSet[] results) throws SQLException {
+
+ Connection conn = DriverManager
+ .getConnection("jdbc:default:connection");
+ PreparedStatement ps = conn.prepareStatement("SELECT * FROM COMPANY");
+ results[0] = ps.executeQuery();
+ }
+
+ public static void deleteCustomer(int theId) throws SQLException {
+
+ Connection conn = DriverManager
+ .getConnection("jdbc:default:connection");
+ PreparedStatement ps = conn.prepareStatement("DELETE FROM CUSTOMER WHERE ID = ?");
+ ps.setInt(1, theId);
+ ps.execute();
+
+ }
+
+ public static void getNamedCompany(String theName, ResultSet[] results) throws SQLException {
+
+ Connection conn = DriverManager
+ .getConnection("jdbc:default:connection");
+ PreparedStatement ps = conn.prepareStatement("SELECT * FROM COMPANY WHERE NAME = ?");
+ ps.setString(1, theName);
+ results[0] = ps.executeQuery();
+ }
+
+ public static void getCustomerAndOrders(int theId, ResultSet[] results) throws SQLException {
+
+ Connection conn = DriverManager
+ .getConnection("jdbc:default:connection");
+ PreparedStatement ps =
+ conn.prepareStatement("SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = ?");
+ ps.setInt(1, theId);
+ results[0] = ps.executeQuery();
+ }
+
+ public static void getNamedCustomers(String theName, int[] outCount, ResultSet[] results) throws SQLException {
+
+ Connection conn = DriverManager
+ .getConnection("jdbc:default:connection");
+ PreparedStatement ps =
+ conn.prepareStatement("SELECT * FROM CUSTOMER WHERE LASTNAME = ?");
+ ps.setString(1, theName);
+ results[0] = ps.executeQuery();
+
+ ps = conn.prepareStatement("SELECT COUNT(*) FROM CUSTOMER WHERE LASTNAME = ?");
+ ps.setString(1, theName);
+
+ ResultSet rs = ps.executeQuery();
+ rs.next();
+ outCount[0] = rs.getInt(1);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/MySQLSetup.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/MySQLSetup.java
new file mode 100644
index 0000000000..b3616882f4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/MySQLSetup.java
@@ -0,0 +1,96 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.SQLException;
+
+
+import junit.framework.Test;
+
+public class MySQLSetup extends DatabaseSetup {
+
+ public MySQLSetup(Test test) {
+ super(test);
+ }
+
+ protected void initConnectionProtocol() {
+
+ platformName = "MySQL";
+ driverName = "com.mysql.jdbc.Driver";
+ databaseURL = "jdbc:mysql:///dastest?user=dastester&password=dastester";
+
+ }
+
+
+ protected void createProcedures () {
+
+ String createGetAllCompanies =
+ "CREATE PROCEDURE `dastest`.`GETALLCOMPANIES` () "+
+ " SELECT * FROM COMPANY ";
+
+
+ String createDeleteCustomer =
+ "CREATE PROCEDURE `dastest`.`DELETECUSTOMER` (theId INT) " +
+ " DELETE FROM CUSTOMER WHERE ID = theId ";
+
+
+ String createGetNamedCustomers =
+ "CREATE PROCEDURE `dastest`.`GETNAMEDCUSTOMERS`(IN thename VARCHAR(30), OUT theCount INTEGER ) " +
+ " BEGIN " +
+ " SELECT * FROM CUSTOMER AS CUSTOMER WHERE LASTNAME = theName; " +
+ " SET theCount = (SELECT COUNT(*) FROM CUSTOMER WHERE LASTNAME = theName); " +
+ " END ";
+
+ String createGetCustomerAndOrders =
+ " CREATE PROCEDURE `dastest`.`GETCUSTOMERANDORDERS` (theId INT) " +
+ " SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = theId ";
+
+
+ String createGetNamedCompany =
+ " CREATE PROCEDURE `dastest`.`GETNAMEDCOMPANY` (theName VARCHAR(100)) " +
+ " SELECT * FROM COMPANY WHERE NAME = theName";
+
+ System.out.println("Creating procedures");
+ try {
+
+ s.execute(createGetAllCompanies);
+ s.execute(createDeleteCustomer);
+ s.execute(createGetNamedCompany);
+ s.execute(createGetCustomerAndOrders);
+// s.execute(createGetNamedCustomers);
+//TODO - add this back after DB2 problem is resolved
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ //Overrides for table creation
+ protected String getCreateCompany() {
+ return "CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(30))";
+ }
+ protected String getCreateEmployee() {
+ return "CREATE TABLE EMPLOYEE (ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(30), SN VARCHAR(10), MANAGER SMALLINT, DEPARTMENTID INT)";
+ }
+ protected String getCreateDepartment() {
+ return "CREATE TABLE DEPARTMENT (ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(30), LOCATION VARCHAR(30), NUMBER VARCHAR(10), COMPANYID INT, EOTM INT)";
+ }
+ protected String getCreateTypeTest() {
+ return "CREATE TABLE TYPETEST (ID INT PRIMARY KEY NOT NULL, ATIMESTAMP DATETIME, ADECIMAL DECIMAL(9,2), AFLOAT FLOAT)";
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/RelationshipData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/RelationshipData.java
new file mode 100644
index 0000000000..330320656e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/RelationshipData.java
@@ -0,0 +1,81 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public abstract class RelationshipData {
+ protected Object[][] data;
+ private int currentRow = -1;
+ protected Connection connection;
+
+
+ public RelationshipData(Connection c, Object[][] inputData) {
+ this.connection = c;
+ this.data = inputData;
+ }
+
+ public int size() {
+ return data[0].length;
+ }
+
+ public int numberOfRows() {
+ return data.length;
+ }
+
+ public boolean next() {
+ ++currentRow;
+ if ( currentRow < numberOfRows() )
+ return true;
+ else
+ return false;
+ }
+
+
+ public void refresh() throws SQLException {
+ updateRelationships();
+ }
+
+ protected abstract String getParentRetrievalStatement();
+ protected abstract String getChildUpdateStatement();
+
+
+ protected void updateRelationships() throws SQLException {
+ // { MegaCorp, Advanced Technologies }
+ // select company.id from company where company.name = ?
+ PreparedStatement retrieveParent = connection.prepareStatement(getParentRetrievalStatement());
+ // update department set department.companyid = ? where department.name = ?
+ PreparedStatement updateChild = connection.prepareStatement(getChildUpdateStatement());
+
+ while ( next() ) {
+ retrieveParent.setObject(1, data[currentRow][0]);
+ retrieveParent.execute();
+ ResultSet rs = retrieveParent.getResultSet();
+ rs.next();
+ Object parentID = rs.getObject(1);
+ retrieveParent.clearParameters();
+
+ updateChild.setObject(1, parentID);
+ updateChild.setObject(2, data[currentRow][1]);
+ updateChild.execute();
+ updateChild.clearParameters();
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestData.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestData.java
new file mode 100644
index 0000000000..686433bfc8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestData.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+public abstract class TestData {
+
+ protected Object[][] data;
+ private int currentRow = -1;
+ protected Connection connection;
+
+
+ public TestData(Connection c, Object[][] customerData) {
+ this.connection = c;
+ this.data = customerData;
+ }
+
+ public int size() {
+ return data[0].length;
+ }
+
+ public int numberOfRows() {
+ return data.length;
+ }
+
+ public boolean next() {
+ ++currentRow;
+ if ( currentRow < numberOfRows() )
+ return true;
+ else
+ return false;
+ }
+
+ public abstract String getTableName();
+
+
+ public Object getObject(int i) {
+ return data[currentRow][i-1];
+ }
+
+ public void refresh() throws SQLException {
+ deleteRowsFromTable();
+ insertRows();
+ }
+
+ protected void deleteRowsFromTable() throws SQLException {
+ PreparedStatement ps = connection.prepareStatement("delete from " + getTableName());
+ ps.execute();
+ }
+
+ protected void insertRows() throws SQLException {
+ StringBuffer sql = new StringBuffer();
+ sql.append("insert into ");
+ sql.append(getTableName());
+ sql.append(" values (");
+ for ( int i=1; i < size(); i++) {
+ sql.append("?,");
+ }
+ sql.append("?)");
+ PreparedStatement ps = connection.prepareStatement(sql.toString());
+
+ while ( next() ) {
+ for ( int i=1; i <= size(); i++ ) {
+ ps.setObject(i, getObject(i));
+ }
+ ps.execute();
+ ps.clearParameters();
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestDataWithExplicitColumns.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestDataWithExplicitColumns.java
new file mode 100644
index 0000000000..8ded99af9b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/TestDataWithExplicitColumns.java
@@ -0,0 +1,82 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.framework;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+import org.apache.tuscany.das.rdb.util.DebugUtil;
+
+
+public abstract class TestDataWithExplicitColumns extends TestData {
+
+ protected String[] columns;
+ protected int[] sqlTypes;
+
+ private static boolean debug = false;
+
+ public TestDataWithExplicitColumns(Connection c, Object[][] data,
+ String[] columns, int[] sqlTypes) {
+ super(c, data);
+ this.columns = columns;
+ this.sqlTypes = sqlTypes;
+ }
+
+ private String getColumn(int i) {
+ return columns[i - 1];
+ }
+
+ private int getSqlType(int i) {
+ return (sqlTypes[i - 1]);
+ }
+
+ // Create an insert statement of the following form ...
+ // "INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)"
+ // This is necessary for tables with a generated column since the PK value is not provided
+ protected void insertRows() throws SQLException {
+ StringBuffer sql = new StringBuffer();
+ sql.append("insert into ");
+ sql.append(getTableName());
+
+ sql.append(" (");
+ for (int i = 1; i <= size(); i++) {
+ sql.append(getColumn(i));
+ if ( i < size() )
+ sql.append(',');
+ }
+ sql.append(" )");
+
+ sql.append(" values (");
+ for (int i = 1; i < size(); i++) {
+ sql.append("?,");
+ }
+ sql.append("?)");
+
+ DebugUtil.debugln(getClass(), debug, sql.toString());
+ PreparedStatement ps = connection.prepareStatement(sql.toString());
+
+ while (next()) {
+ for (int i = 1; i <= size(); i++) {
+ ps.setObject(i, getObject(i), getSqlType(i));
+ }
+ ps.execute();
+ ps.clearParameters();
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/IntegerToBooleanConverter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/IntegerToBooleanConverter.java
new file mode 100644
index 0000000000..e25d2c4c95
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/IntegerToBooleanConverter.java
@@ -0,0 +1,40 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.mappings;
+
+import org.apache.tuscany.das.rdb.Converter;
+
+public class IntegerToBooleanConverter implements Converter {
+
+ public IntegerToBooleanConverter() {
+ super();
+ }
+
+ public Object getPropertyValue(Object columnData) {
+ Integer value = (Integer) columnData;
+ return value.intValue() == 0 ? Boolean.FALSE : Boolean.TRUE;
+ }
+
+ public Object getColumnValue(Object propertyData) {
+ Boolean value = (Boolean) propertyData;
+ if ( value.booleanValue())
+ return new Integer(1);
+ else
+ return new Integer(0);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/SillyDateStringConverter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/SillyDateStringConverter.java
new file mode 100644
index 0000000000..7c164bd675
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/SillyDateStringConverter.java
@@ -0,0 +1,73 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.mappings;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.tuscany.das.rdb.Converter;
+
+
+public class SillyDateStringConverter implements Converter {
+
+ public SillyDateStringConverter() {
+ super();
+ }
+
+ private static DateFormat myformat = new SimpleDateFormat("yyyy.MM.dd");
+
+ private static Date kbday;
+
+ private static Date tbday;
+
+ static {
+ try {
+ kbday = myformat.parse("1957.09.27");
+ tbday = myformat.parse("1966.12.20");
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public Object getPropertyValue(Object columnData) {
+
+ if (columnData.equals("Williams"))
+ return kbday;
+
+ if (columnData.equals("Pavick"))
+ return tbday;
+
+ throw new IllegalArgumentException();
+
+ }
+
+ public Object getColumnValue(Object propertyData) {
+
+ if (propertyData.equals(kbday))
+ return "Williams";
+
+ if (propertyData.equals(tbday))
+ return "Pavick";
+
+ throw new IllegalArgumentException();
+
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToIntegerConverter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToIntegerConverter.java
new file mode 100644
index 0000000000..8ff57aef6d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToIntegerConverter.java
@@ -0,0 +1,37 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.mappings;
+
+import org.apache.tuscany.das.rdb.Converter;
+
+public class StringToIntegerConverter implements Converter {
+
+ public StringToIntegerConverter() {
+ super();
+ }
+
+ public Object getPropertyValue(Object columnData) {
+ // System.out.println("Converting object.. " + columnData);
+
+ return new Integer(columnData.toString());
+ }
+
+ public Object getColumnValue(Object columnData) {
+ return columnData.toString();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToLongConverter.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToLongConverter.java
new file mode 100644
index 0000000000..74a5e2917f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/mappings/StringToLongConverter.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.mappings;
+
+import org.apache.tuscany.das.rdb.Converter;
+
+public class StringToLongConverter implements Converter {
+
+ public StringToLongConverter() {
+ super();
+ }
+
+ public Object getPropertyValue(Object columnData) {
+ return new Long(columnData.toString());
+ }
+
+ public Object getColumnValue(Object columnData) {
+ return columnData.toString();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
new file mode 100644
index 0000000000..ce6034c4c5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
@@ -0,0 +1,93 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.suites;
+
+import org.apache.tuscany.das.rdb.test.BestPracticeTests;
+import org.apache.tuscany.das.rdb.test.CUDGeneration;
+import org.apache.tuscany.das.rdb.test.CompanyTests;
+import org.apache.tuscany.das.rdb.test.CompoundKeyTests;
+import org.apache.tuscany.das.rdb.test.ConverterTests;
+import org.apache.tuscany.das.rdb.test.CorrectedDefectTests;
+import org.apache.tuscany.das.rdb.test.CrudWithChangeHistory;
+import org.apache.tuscany.das.rdb.test.ExceptionTests;
+import org.apache.tuscany.das.rdb.test.GeneratedCommandTests;
+import org.apache.tuscany.das.rdb.test.GeneratedId;
+import org.apache.tuscany.das.rdb.test.GraphMergeTests;
+import org.apache.tuscany.das.rdb.test.NameMappingTests;
+import org.apache.tuscany.das.rdb.test.OCCTests;
+import org.apache.tuscany.das.rdb.test.OperationOrderingTests;
+import org.apache.tuscany.das.rdb.test.Paging;
+import org.apache.tuscany.das.rdb.test.PartialUpdateTests;
+import org.apache.tuscany.das.rdb.test.PassiveConnectionTests;
+import org.apache.tuscany.das.rdb.test.RecursiveTests;
+import org.apache.tuscany.das.rdb.test.RelationshipTests;
+import org.apache.tuscany.das.rdb.test.ResultSetShapeTests;
+import org.apache.tuscany.das.rdb.test.SerializationTests;
+import org.apache.tuscany.das.rdb.test.SimplestCrud;
+import org.apache.tuscany.das.rdb.test.StoredProcs;
+import org.apache.tuscany.das.rdb.test.TopDown;
+import org.apache.tuscany.das.rdb.test.TypeTests;
+import org.apache.tuscany.das.rdb.test.CommandGroupTests;
+import org.apache.tuscany.das.rdb.test.typed.SimplestStaticCrud;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllCommonTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("All platform-common DAS tests");
+ //$JUnit-BEGIN$
+
+ suite.addTest(new TestSuite (SimplestCrud.class));
+ suite.addTest(new TestSuite (CrudWithChangeHistory.class));
+ suite.addTest(new TestSuite (SimplestStaticCrud.class));
+ suite.addTest(new TestSuite (Paging.class));
+ suite.addTest(new TestSuite (GeneratedId.class));
+
+ suite.addTest(new TestSuite (StoredProcs.class));
+ suite.addTest(new TestSuite (CUDGeneration.class));
+ suite.addTest(new TestSuite (TopDown.class));
+ suite.addTest(new TestSuite (OCCTests.class));
+ suite.addTest(new TestSuite (RecursiveTests.class));
+
+ suite.addTest(new TestSuite (GraphMergeTests.class));
+ suite.addTest(new TestSuite (CompoundKeyTests.class));
+ suite.addTest(new TestSuite (RelationshipTests.class));
+ suite.addTest(new TestSuite (NameMappingTests.class));
+ suite.addTest(new TestSuite (GeneratedCommandTests.class));
+
+ suite.addTest(new TestSuite (CompanyTests.class));
+ suite.addTest(new TestSuite (ResultSetShapeTests.class));
+ suite.addTest(new TestSuite (TypeTests.class));
+ suite.addTest(new TestSuite (OperationOrderingTests.class));
+ suite.addTest(new TestSuite (ConverterTests.class));
+
+ suite.addTest(new TestSuite (PartialUpdateTests.class));
+ suite.addTest(new TestSuite (ExceptionTests.class));
+ suite.addTest(new TestSuite (PassiveConnectionTests.class));
+ suite.addTest(new TestSuite (SerializationTests.class));
+
+ suite.addTest(new TestSuite (CommandGroupTests.class));
+ suite.addTest(new TestSuite (BestPracticeTests.class));
+ suite.addTest(new TestSuite (CorrectedDefectTests.class));
+
+ //$JUnit-END$
+ return suite;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDB2.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDB2.java
new file mode 100644
index 0000000000..a5fcb5eba0
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDB2.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.suites;
+
+import org.apache.tuscany.das.rdb.test.ReadDBSchemaTests;
+import org.apache.tuscany.das.rdb.test.framework.DB2Setup;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTestsDB2 {
+
+
+ public static Test suite() {
+
+ TestSuite suite = new TestSuite();
+ suite.addTest(AllCommonTests.suite());
+ suite.addTest(new TestSuite (ReadDBSchemaTests.class));
+
+ TestSuite suite2 = new TestSuite("All DAS tests on DB2");
+ suite2.addTest(new DB2Setup(suite));
+ return suite2;
+
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDerby.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDerby.java
new file mode 100644
index 0000000000..8af82f0114
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsDerby.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.suites;
+
+import org.apache.tuscany.das.rdb.test.framework.DerbySetup;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTestsDerby extends TestSuite {
+
+
+ public static Test suite() {
+
+ TestSuite suite = new TestSuite("All DAS tests on Derby");
+ suite.addTest(new DerbySetup(AllCommonTests.suite()));
+ return suite;
+
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsMySQL.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsMySQL.java
new file mode 100644
index 0000000000..2b862eba8c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllTestsMySQL.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.suites;
+
+import org.apache.tuscany.das.rdb.test.framework.MySQLSetup;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTestsMySQL {
+
+
+ public static Test suite() {
+
+ TestSuite suite = new TestSuite("All DAS tests on MySQL");
+ suite.addTest(new MySQLSetup(AllCommonTests.suite()));
+ return suite;
+
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/typed/SimplestStaticCrud.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/typed/SimplestStaticCrud.java
new file mode 100644
index 0000000000..f8baca2cb8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/typed/SimplestStaticCrud.java
@@ -0,0 +1,58 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.das.rdb.test.typed;
+
+import java.io.InputStream;
+import java.util.Collection;
+
+import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.test.customer.CustomerFactory;
+import org.apache.tuscany.das.rdb.test.customer.DataGraphRoot;
+import org.apache.tuscany.das.rdb.test.data.CustomerData;
+import org.apache.tuscany.das.rdb.test.framework.DasTest;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.helper.TypeHelper;
+
+
+/**
+ */
+public class SimplestStaticCrud extends DasTest {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ new CustomerData(getAutoConnection()).refresh();
+ }
+
+ public void testRead() throws Exception {
+ SDOUtil.registerStaticTypes(CustomerFactory.class);
+ InputStream mapping = getClass().getClassLoader().getResourceAsStream("basicStaticCustomer.xml");
+ Command select = Command.FACTORY.createCommand("Select ID, LASTNAME, ADDRESS from CUSTOMER where LASTNAME = :LASTNAME",mapping);
+ select.setConnection(getConnection());
+ select.setParameterValue("LASTNAME", "Williams");
+ TypeHelper helper = TypeHelper.INSTANCE;
+
+ select.setDataObjectModel(helper.getType(DataGraphRoot.class));
+
+ DataGraphRoot root = (DataGraphRoot) select.executeQuery();
+
+ Collection customers = root.getCustomers();
+ assertEquals(4, customers.size());
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/1xM_mapping_no_cud.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/1xM_mapping_no_cud.xml
new file mode 100644
index 0000000000..26d64e85d7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/1xM_mapping_no_cud.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustOrdersConnectionProps.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustOrdersConnectionProps.xml
new file mode 100644
index 0000000000..a103f7a9d4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustOrdersConnectionProps.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustomersOrdersConfig.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustomersOrdersConfig.xml
new file mode 100644
index 0000000000..635b30d926
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/CustomersOrdersConfig.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyDepartmentMapping.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyDepartmentMapping.xml
new file mode 100644
index 0000000000..4ddc1eb4fb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyDepartmentMapping.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyMapping.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyMapping.xml
new file mode 100644
index 0000000000..cf1429ff8f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCompanyMapping.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMapping.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMapping.xml
new file mode 100644
index 0000000000..6ccfda6510
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/basicCustomerMapping.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customerOrderRelationshipMapping.xml b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customerOrderRelationshipMapping.xml
new file mode 100644
index 0000000000..ee739f1345
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/resources/customerOrderRelationshipMapping.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/pom.xml b/sca-java-1.x/tags/java-stable-20060304/pom.xml
new file mode 100644
index 0000000000..dac7b2bc5c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/pom.xml
@@ -0,0 +1,119 @@
+
+
+
+ 4.0.0
+ org.apache.tuscany
+ tuscany-project
+ SNAPSHOT
+ pom
+ Tuscany Project
+ http://incubator.apache.org/tuscany/
+
+ Tuscany is an open source project implementing a Service Component Architecture.
+
+ 2005
+
+ Apache Software Foundation
+ http://www.apache.org/
+
+
+
+ 2.0
+
+
+
+ jira
+ http://issues.apache.org/jira/browse/TUSCANY
+
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+
+ ibiblio
+ ibiblio
+ http://www.ibiblio.org/maven2
+
+
+
+
+ spec
+ sdo
+ das
+ sca
+ samples
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.5
+
+
+
+
+
+
+ src/main/java
+
+ **/*.componentType
+
+
+
+ src/main/resources
+
+
+
+
+
+ src/test/java
+
+ **/*.componentType
+
+
+
+ src/test/resources
+
+
+ install
+
+
+
+
+
+ maven-javadoc-plugin
+
+
+ maven-jxr-plugin
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/pom.xml
new file mode 100644
index 0000000000..d1a385145f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/pom.xml
@@ -0,0 +1,77 @@
+
+
+
+
+ org.apache.tuscany.samples.bigbank
+ bigbank-samples
+ SNAPSHOT
+
+ 4.0.0
+ account
+ war
+ Tuscany sample BigBank account
+ BigBank sample - account module
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ provided
+
+
+
+
+
+
+ org.apache.tuscany
+ tuscany-sdo-plugin
+
+
+
+ ${basedir}/src/main/resources/wsdl/AccountService.wsdl
+ true
+ true
+ true
+ true
+
+
+ generate
+
+
+
+
+
+ org.apache.tuscany
+ tuscany-sca-plugin
+
+
+
+ ${basedir}/src/main/resources/wsdl/AccountService.wsdl
+ org.apache.tuscany.samples.bigbank.account.services.account
+
+
+ generate
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java
new file mode 100644
index 0000000000..4552615227
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java
@@ -0,0 +1,91 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.account;
+
+import java.util.List;
+
+import org.apache.tuscany.samples.bigbank.account.AccountFactory;
+import org.apache.tuscany.samples.bigbank.account.AccountReport;
+import org.apache.tuscany.samples.bigbank.account.AccountSummary;
+import org.apache.tuscany.samples.bigbank.account.services.accountdata.AccountDataService;
+import org.apache.tuscany.samples.bigbank.account.services.accountdata.CheckingAccount;
+import org.apache.tuscany.samples.bigbank.account.services.accountdata.SavingsAccount;
+import org.apache.tuscany.samples.bigbank.account.services.accountdata.StockAccount;
+import org.apache.tuscany.samples.bigbank.account.services.stockquote.StockQuoteService;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+@Service(interfaces=AccountService.class)
+public class AccountServiceImpl implements AccountService {
+
+ static {
+ SDOUtil.registerStaticTypes(AccountFactory.class);
+ }
+
+ @Property
+ private String currency = "USD";
+
+ @Reference
+ private AccountDataService accountDataService;
+ @Reference
+ private StockQuoteService stockQuoteService;
+
+ public AccountServiceImpl() {
+ }
+
+ public AccountReport getAccountReport(String customerID) {
+
+ AccountFactory accountFactory=new AccountFactory();
+
+ AccountReport accountReport = accountFactory.createAccountReport();
+ List accountSummaries = accountReport.getAccountSummaries();
+
+ CheckingAccount checkingAccount = accountDataService.getCheckingAccount(customerID);
+ AccountSummary checkingAccountSummary = accountFactory.createAccountSummary();
+ checkingAccountSummary.setAccountNumber(checkingAccount.getAccountNumber());
+ checkingAccountSummary.setAccountType("checking");
+ checkingAccountSummary.setBalance(fromUSDollarToCurrency(checkingAccount.getBalance()));
+ accountSummaries.add(checkingAccountSummary);
+
+ SavingsAccount savingsAccount = accountDataService.getSavingsAccount(customerID);
+ AccountSummary savingsAccountSummary = accountFactory.createAccountSummary();
+ savingsAccountSummary.setAccountNumber(savingsAccount.getAccountNumber());
+ savingsAccountSummary.setAccountType("savings");
+ savingsAccountSummary.setBalance(fromUSDollarToCurrency(savingsAccount.getBalance()));
+ accountSummaries.add(savingsAccountSummary);
+
+ StockAccount stockAccount = accountDataService.getStockAccount(customerID);
+ AccountSummary stockAccountSummary = accountFactory.createAccountSummary();
+ stockAccountSummary.setAccountNumber(stockAccount.getAccountNumber());
+ stockAccountSummary.setAccountType("stock");
+ float balance = (stockQuoteService.getQuote(stockAccount.getSymbol())) * stockAccount.getQuantity();
+ stockAccountSummary.setBalance(fromUSDollarToCurrency(balance));
+ accountSummaries.add(stockAccountSummary);
+
+ return accountReport;
+ }
+
+ private float fromUSDollarToCurrency(float value) {
+
+ if (currency.equals("USD")) return value;
+ else if (currency.equals("EURO")) return value * 0.8f;
+ else
+ return 0.0f;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataService.java
new file mode 100644
index 0000000000..b0d07ed3e7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.accountdata;
+
+public interface AccountDataService {
+
+ CheckingAccount getCheckingAccount(String customerID);
+
+ SavingsAccount getSavingsAccount(String customerID);
+
+ StockAccount getStockAccount(String customerID);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataServiceImpl.java
new file mode 100644
index 0000000000..963277ee76
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/AccountDataServiceImpl.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.accountdata;
+
+import org.osoa.sca.annotations.Service;
+
+@Service(AccountDataService.class)
+public class AccountDataServiceImpl implements AccountDataService {
+
+ public CheckingAccount getCheckingAccount(String customerID) {
+
+ CheckingAccount checkingAccount = new CheckingAccount();
+ checkingAccount.setAccountNumber(customerID + "_" + "CHA12345");
+ checkingAccount.setBalance(1500.0f);
+
+ return checkingAccount;
+ }
+
+ public SavingsAccount getSavingsAccount(String customerID) {
+
+ SavingsAccount savingsAccount = new SavingsAccount();
+ savingsAccount.setAccountNumber(customerID + "_" + "SAA12345");
+ savingsAccount.setBalance(1500.0f);
+
+ return savingsAccount;
+ }
+
+ public StockAccount getStockAccount(String customerID) {
+
+ StockAccount stockAccount = new StockAccount();
+ stockAccount.setAccountNumber(customerID + "_" + "STA12345");
+ stockAccount.setSymbol("IBM");
+ stockAccount.setQuantity(100);
+
+ return stockAccount;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/CheckingAccount.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/CheckingAccount.java
new file mode 100644
index 0000000000..b3dd6185e1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/CheckingAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.accountdata;
+
+public class CheckingAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/SavingsAccount.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/SavingsAccount.java
new file mode 100644
index 0000000000..0b7f2e0fd5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/SavingsAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.accountdata;
+
+public class SavingsAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/StockAccount.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/StockAccount.java
new file mode 100644
index 0000000000..f6b90259b3
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/accountdata/StockAccount.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.accountdata;
+
+public class StockAccount {
+
+ private String accountNumber;
+ private String symbol;
+ private int quantity;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public String getSymbol() {
+ return symbol;
+ }
+
+ public void setSymbol(String symbol) {
+ this.symbol = symbol;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteService.java
new file mode 100644
index 0000000000..80ac8d58be
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteService.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.stockquote;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface StockQuoteService {
+
+ public float getQuote(String symbol);
+}
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
new file mode 100644
index 0000000000..ff4878b10c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/stockquote/StockQuoteServiceImpl.java
@@ -0,0 +1,28 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.services.stockquote;
+
+/* Dummy'd up StockQuoteService, override webservice for now */
+
+public class StockQuoteServiceImpl implements StockQuoteService {
+
+ public float getQuote(String symbol) {
+ // Just hardcode for now
+ return 83.00f;
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.module
new file mode 100644
index 0000000000..b13d844609
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.module
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+ AccountServiceComponent/AccountService
+
+
+
+
+
+ EURO
+
+
+ AccountDataServiceComponent
+ StockQuoteService
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.subsystem b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.subsystem
new file mode 100644
index 0000000000..b15fa2bc5c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/sca.subsystem
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/AccountService.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/AccountService.wsdl
new file mode 100644
index 0000000000..5d087530dd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/AccountService.wsdl
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/StockQuoteWebService.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/StockQuoteWebService.wsdl
new file mode 100644
index 0000000000..9678d9d6ea
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/resources/wsdl/StockQuoteWebService.wsdl
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/axis2.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/axis2.xml
new file mode 100644
index 0000000000..a38cf9864a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/axis2.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ admin
+ axis2
+
+ .
+
+ 127.0.0.1
+ 5555
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6060
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HTTP/1.1
+ chunked
+
+
+ HTTP/1.1
+ chunked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..46bed8f4fe
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ Tuscany Bigbank Account sample
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/test/java/org/apache/tuscany/samples/bigbank/account/client/AccountClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/test/java/org/apache/tuscany/samples/bigbank/account/client/AccountClient.java
new file mode 100644
index 0000000000..b9bf5351c0
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/test/java/org/apache/tuscany/samples/bigbank/account/client/AccountClient.java
@@ -0,0 +1,56 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.account.client;
+
+import java.util.Iterator;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.apache.tuscany.samples.bigbank.account.AccountReport;
+import org.apache.tuscany.samples.bigbank.account.AccountSummary;
+import org.apache.tuscany.samples.bigbank.account.services.account.AccountService;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+import org.osoa.sca.SCA;
+
+public class AccountClient extends SCA {
+
+ public void start() {
+ }
+
+ public void stop() {
+ }
+
+ public static void main(String[] args) throws Exception {
+ TuscanyRuntime tuscany = new TuscanyRuntime("bigbank.account.testclient", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ AccountService accountService = (AccountService) moduleContext.locateService("AccountServiceComponent");
+
+ AccountReport accountReport = accountService.getAccountReport("12345");
+
+ for (Iterator i = accountReport.getAccountSummaries().iterator(); i.hasNext();) {
+ AccountSummary accountSummary = (AccountSummary) i.next();
+
+ System.out.println(accountSummary.getAccountNumber());
+ System.out.println(accountSummary.getAccountType());
+ System.out.println(accountSummary.getBalance());
+ }
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/META-INF/MANIFEST.MF b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..ac6c17f07e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: sample
+Bundle-SymbolicName: sample
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.emf.ecore.sdo
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/pom.xml
new file mode 100644
index 0000000000..a96cfa328f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/pom.xml
@@ -0,0 +1,44 @@
+
+
+
+
+ org.apache.tuscany.samples.bigbank
+ bigbank-samples
+ SNAPSHOT
+
+ 4.0.0
+ customers
+ war
+ Tuscany sample BigBank customer
+ DAS example with JSP
+ SNAPSHOT
+
+
+
+ org.apache.tuscany.das
+ tuscany-das-rdb
+ ${pom.version}
+ provided
+
+
+ org.osoa
+ sca-api
+ ${pom.version}
+ provided
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/readme.htm
new file mode 100644
index 0000000000..b4c4a8cbad
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/readme.htm
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ Tuscany Customers
+
+
+
+
Tuscany Customer Sample
+
+
Overview
+
+
This sample employs the Tuscany runtime in collaboration with the RDB DAS to demonstrate a simple read of a customer
+record from a relational database in the context of a web application. The user provides a customer
+ID and the application responds with the corresponding customer record
+
+
+
Setup
Run the Maven 'acceptance' task as described in the Tomcat
+ Setup. Running this task will configure and start a Tomcat server and deploy the sample application along with a
+canned Derby database for use by the example. Instructions will be posted soon for manually deploying the
+sample to an existing Tomcat install.
+
+
+
+
+
+
+
Running
+
+As mentioned above, running the Maven acceptance task deploys and runs the sample as part of the Tuscany acceptance testing. After the task has completed
+you can manually run the sample by pointing a browser to: http://localhost:8080/tuscany-samples-customerWEB/.
+A page is displayed that prompts the user for a customer id. Submit an integer from 1 to 3.
+
+
Results
+
+
Submitting an integer from 1 to 3 will result in the display of the corresponding employee record
+
+
Code Overview
+
+The following illustrates the structure of the sample application components:
+
+
Defines the SCA module and component. Defines for the CustomerServiceComponent.
+
+
+
+
+
+
CustomerClient.java
+
+
Wraps the get customer service to provide a clean "getCustomer()" API.
+
+
+
+
+
+
CustomerServiceComponent.java
+
+
Defines the interface of the service.
+
+
+
+
+
+
Customer.jsp
+
+
Handles Web form input. Instantiates a CustomerClient instance and calls getCustomer()
+
+
+
+
+
+
customerdb
+
+
The canned Derby database with Customer records
+
+
+
+
+
+
web.xml
+
+
Standard J2EE web application web.xml
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerClient.java
new file mode 100644
index 0000000000..54603c94d6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerClient.java
@@ -0,0 +1,41 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.customers;
+
+import commonj.sdo.DataObject;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+/**
+ *
+ */
+public class CustomerClient {
+
+ public final DataObject getCustomer(String id) throws Exception {
+
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ assert moduleContext != null : "CurrentModuleContext.getContext() returned null!";
+
+ CustomerServiceComponent customerService = (CustomerServiceComponent) moduleContext
+ .locateService("CustomerServiceComponent");
+ assert null != customerService : "SCA locate of CustomerServiceComponent returned null.";
+ DataObject value = customerService.getCustomer(id);
+
+ return value;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponent.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponent.java
new file mode 100644
index 0000000000..431b10b0e1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponent.java
@@ -0,0 +1,29 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.customers;
+
+import commonj.sdo.DataObject;
+
+/**
+ *
+ */
+
+public interface CustomerServiceComponent {
+
+ public DataObject getCustomer(String id);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.componentType b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.componentType
new file mode 100644
index 0000000000..09535eb86b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.componentType
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.java
new file mode 100644
index 0000000000..d78a5429c1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/org/apache/tuscany/samples/customers/CustomerServiceComponentImpl.java
@@ -0,0 +1,76 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.customers;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.util.List;
+
+import commonj.sdo.DataObject;
+import org.osoa.sca.annotations.Service;
+
+import org.apache.tuscany.das.rdb.Command;
+
+/**
+ *
+ */
+@Service(CustomerServiceComponent.class)
+public class CustomerServiceComponentImpl implements CustomerServiceComponent {
+
+ private static final String driverName = "org.apache.derby.jdbc.EmbeddedDriver";
+
+ private static final String databaseURL = "jdbc:derby:../webapps/tuscany-samples-customerWEB/customerdb";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.tuscany.samples.helloworldweb.HelloWorldServiceComponent#getGreetings()
+ */
+ public DataObject getCustomer(String id) {
+ // Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY
+ .createCommand("select * from CUSTOMER where ID = :ID");
+ readCustomers.setConnection(getConnection());
+ readCustomers.setParameterValue("ID", new Integer(id));
+
+ // Read
+ DataObject root = readCustomers.executeQuery();
+
+ readCustomers.close();
+
+ List customers = root.getList("CUSTOMER");
+ if (customers.size() > 0)
+ return (DataObject) customers.get(0);
+ else
+ return null;
+
+ }
+
+ private Connection getConnection() {
+ try {
+
+ Class.forName(driverName).newInstance();
+ Connection connection = DriverManager.getConnection(databaseURL);
+ connection.setAutoCommit(false);
+ return connection;
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/sca.module
new file mode 100644
index 0000000000..64ff9341f2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/java/sca.module
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/Customer.jsp b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/Customer.jsp
new file mode 100644
index 0000000000..8906a54f99
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/Customer.jsp
@@ -0,0 +1,94 @@
+
+<%--
+ * Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ --%>
+
+
+
+ <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1" session="true" autoFlush="true"
+ isThreadSafe="true" isErrorPage="false"
+ import="org.apache.tuscany.samples.customers.CustomerClient"
+ import="java.io.PrintWriter"
+ import="java.io.StringWriter"
+ import="java.util.Iterator"
+ import="commonj.sdo.*"
+ %>
+
+
+ Tuscany HelloWorld WEB Example
+ <%
+ String id = request.getParameter("id");
+ %>
+
+
+
+
Tuscany CustomerDB WEB Example
+
+
+
+
+
+
+<%
+ try {
+ if (null != id) {
+%>
+
+
+
+
+ <% DataObject obj = (new CustomerClient()).getCustomer(id);
+ if ( obj == null ) {%>
+
+
Customer <%= id%> not found
+<%} else {%>
+
+
+
ID
First Name
Last Name
+ <%Iterator iter = obj.getType().getProperties().iterator();
+ while (iter.hasNext()) {
+ Property p = (Property) iter.next();%>
+
+<%
+
+ }%>
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..9c377a7f05
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ Tuscany sample Customers WEB
+
+
+ wsdl
+ text/xml
+
+
+
+ xsd
+ text/xml
+
+
+
+ Customer.jsp
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log.ctrl b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log.ctrl
new file mode 100644
index 0000000000..07b131b33d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log.ctrl differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log1.dat
new file mode 100644
index 0000000000..a2b39d02ad
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/log1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/logmirror.ctrl b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/logmirror.ctrl
new file mode 100644
index 0000000000..07b131b33d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/log/logmirror.ctrl differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c10.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c10.dat
new file mode 100644
index 0000000000..ec5247397b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c10.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c101.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c101.dat
new file mode 100644
index 0000000000..56f1d60c9b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c101.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c111.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c111.dat
new file mode 100644
index 0000000000..d3b8b6f5e1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c111.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c121.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c121.dat
new file mode 100644
index 0000000000..3a207dc135
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c121.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c130.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c130.dat
new file mode 100644
index 0000000000..62e5dfb863
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c130.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c141.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c141.dat
new file mode 100644
index 0000000000..f695f44cd9
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c141.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c150.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c150.dat
new file mode 100644
index 0000000000..2c1e232161
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c150.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c161.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c161.dat
new file mode 100644
index 0000000000..9983bb5ba4
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c161.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c171.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c171.dat
new file mode 100644
index 0000000000..25800bbf47
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c171.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c180.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c180.dat
new file mode 100644
index 0000000000..8f4b0f0b5d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c180.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c191.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c191.dat
new file mode 100644
index 0000000000..b2d149a0f3
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c191.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1a1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1a1.dat
new file mode 100644
index 0000000000..9a15a565ca
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1a1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1b1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1b1.dat
new file mode 100644
index 0000000000..468738fdf3
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1b1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1c0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1c0.dat
new file mode 100644
index 0000000000..359525a31a
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1c0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1d1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1d1.dat
new file mode 100644
index 0000000000..9f257df932
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1d1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1e0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1e0.dat
new file mode 100644
index 0000000000..e43e52fb7f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1e0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1f1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1f1.dat
new file mode 100644
index 0000000000..7e6ee3b1e0
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c1f1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c20.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c20.dat
new file mode 100644
index 0000000000..1acd3470bd
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c20.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c200.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c200.dat
new file mode 100644
index 0000000000..cae919d022
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c200.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c211.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c211.dat
new file mode 100644
index 0000000000..c7e311b00e
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c211.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c221.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c221.dat
new file mode 100644
index 0000000000..28e89367ce
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c221.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c230.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c230.dat
new file mode 100644
index 0000000000..505d1595c5
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c230.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c241.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c241.dat
new file mode 100644
index 0000000000..e1de638de2
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c241.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c251.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c251.dat
new file mode 100644
index 0000000000..d3d6adf4fb
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c251.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c260.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c260.dat
new file mode 100644
index 0000000000..8d7333df7d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c260.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c271.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c271.dat
new file mode 100644
index 0000000000..af722f7d73
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c271.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c281.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c281.dat
new file mode 100644
index 0000000000..3972983c2e
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c281.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c290.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c290.dat
new file mode 100644
index 0000000000..31577b8124
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c290.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2a1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2a1.dat
new file mode 100644
index 0000000000..0f700d13a7
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2a1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2b1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2b1.dat
new file mode 100644
index 0000000000..1d6382fb3d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2b1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2c1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2c1.dat
new file mode 100644
index 0000000000..3bc60d886b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2c1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2d0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2d0.dat
new file mode 100644
index 0000000000..c542d3c91c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2d0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2e1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2e1.dat
new file mode 100644
index 0000000000..16abd20b5f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2e1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2f0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2f0.dat
new file mode 100644
index 0000000000..eb26be5932
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c2f0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c300.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c300.dat
new file mode 100644
index 0000000000..f3a3c65388
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c300.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c31.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c31.dat
new file mode 100644
index 0000000000..73d5c7fae4
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c31.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c311.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c311.dat
new file mode 100644
index 0000000000..f6a7e4f417
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c311.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c41.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c41.dat
new file mode 100644
index 0000000000..eb58d83e26
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c41.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c51.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c51.dat
new file mode 100644
index 0000000000..7d0eec8334
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c51.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c60.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c60.dat
new file mode 100644
index 0000000000..5e3d16c18a
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c60.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c71.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c71.dat
new file mode 100644
index 0000000000..9ca2ca97d1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c71.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c81.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c81.dat
new file mode 100644
index 0000000000..434cd610e1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c81.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c90.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c90.dat
new file mode 100644
index 0000000000..a7d7c228fa
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/c90.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ca1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ca1.dat
new file mode 100644
index 0000000000..bd89820d88
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ca1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cb1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cb1.dat
new file mode 100644
index 0000000000..3fcb1cc026
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cb1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cc0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cc0.dat
new file mode 100644
index 0000000000..5126021a83
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cc0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cd1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cd1.dat
new file mode 100644
index 0000000000..2e135b64ab
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cd1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ce1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ce1.dat
new file mode 100644
index 0000000000..076423c10a
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/ce1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cf0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cf0.dat
new file mode 100644
index 0000000000..b2ab11309b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/seg0/cf0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/service.properties b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/service.properties
new file mode 100644
index 0000000000..6a0ce30db7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/customers/src/main/webapp/customerdb/service.properties
@@ -0,0 +1,22 @@
+#C:\ossoa\trunk\samples\customers\src\webapp\customerdb
+# ********************************************************************
+# *** Please do NOT edit this file. ***
+# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. ***
+# ********************************************************************
+#Tue Nov 01 17:28:38 EST 2005
+SysschemasIndex2Identifier=225
+SyscolumnsIdentifier=144
+SysconglomeratesIndex1Identifier=49
+SysconglomeratesIdentifier=32
+SyscolumnsIndex2Identifier=177
+SysschemasIndex1Identifier=209
+SysconglomeratesIndex3Identifier=81
+SystablesIndex2Identifier=129
+SyscolumnsIndex1Identifier=161
+derby.serviceProtocol=org.apache.derby.database.Database
+SysschemasIdentifier=192
+derby.storage.propertiesId=16
+SysconglomeratesIndex2Identifier=65
+derby.serviceLocale=en_US
+SystablesIdentifier=96
+SystablesIndex1Identifier=113
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/pom.xml
new file mode 100644
index 0000000000..0ec1824e0c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/pom.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ org.apache.tuscany.samples
+ tuscany-samples
+ SNAPSHOT
+
+ 4.0.0
+ org.apache.tuscany.samples.bigbank
+ bigbank-samples
+ pom
+ Tuscany BigBank Samples
+ SNAPSHOT
+
+
+ customers
+ account
+ webclient
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/pom.xml
new file mode 100644
index 0000000000..7503f83246
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/pom.xml
@@ -0,0 +1,89 @@
+
+
+
+
+ org.apache.tuscany.samples.bigbank
+ bigbank-samples
+ SNAPSHOT
+
+ 4.0.0
+ webclient
+ war
+ Tuscany sample BigBank webclient
+ BigBank sample - webclient module
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ provided
+
+
+
+ tomcat
+ servlet-api
+ 5.0.18
+ provided
+
+
+ tomcat
+ jsp-api
+ 5.0.18
+ provided
+
+
+
+
+
+
+ org.apache.tuscany
+ tuscany-sdo-plugin
+
+
+
+ ${basedir}/src/main/resources/wsdl/AccountService.wsdl
+ true
+ true
+ true
+ true
+
+
+ generate
+
+
+
+
+
+ org.apache.tuscany
+ tuscany-sca-plugin
+
+
+
+ ${basedir}/src/main/resources/wsdl/AccountService.wsdl
+ org.apache.tuscany.samples.bigbank.account.services.account
+
+ generate
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/account/AccountServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/account/AccountServiceComponentImpl.java
new file mode 100644
index 0000000000..3a9e7a4e60
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/account/AccountServiceComponentImpl.java
@@ -0,0 +1,57 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.services.account;
+
+import org.apache.tuscany.samples.bigbank.account.AccountFactory;
+import org.apache.tuscany.samples.bigbank.account.AccountReport;
+import org.apache.tuscany.samples.bigbank.account.services.account.AccountService;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.ServiceUnavailableException;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ */
+@Service(AccountService.class)
+public class AccountServiceComponentImpl implements AccountService {
+
+ static {
+ SDOUtil.registerStaticTypes(AccountFactory.class);
+ }
+
+ @Reference
+ public AccountService accountService;
+
+ /**
+ *
+ */
+ public AccountServiceComponentImpl() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tuscany.samples.bigbank.webclient.services.account.AccountService#getAccountReport(java.lang.String)
+ */
+ public AccountReport getAccountReport(String customerID) {
+ try {
+ return accountService.getAccountReport(customerID);
+ } catch (Exception e) {
+ throw new ServiceUnavailableException(e);
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/LoginService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/LoginService.java
new file mode 100644
index 0000000000..7bb660082d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/LoginService.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.services.profile;
+
+public interface LoginService {
+
+ public static final int SUCCESS = 1;
+ public static final int INVALID_LOGIN = -1;
+ public static final int INVALID_PASSWORD = -2;
+
+ public int login(String userName, String password);
+}
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileService.java
new file mode 100644
index 0000000000..affbfe9700
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileService.java
@@ -0,0 +1,36 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.services.profile;
+
+public interface ProfileService {
+
+ public String getFirstName();
+
+ public void setFirstName(String pName);
+
+ public String getLastName();
+
+ public void setLastName(String pName);
+
+ public boolean isLoggedIn();
+
+ public void setLoggedIn(boolean pStatus);
+
+ public String getId();
+
+ public void setId(String pId);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileServiceImpl.java
new file mode 100644
index 0000000000..7d572154c6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/ProfileServiceImpl.java
@@ -0,0 +1,68 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.services.profile;
+
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+@Service(ProfileService.class)
+@Scope("session")
+public class ProfileServiceImpl implements ProfileService {
+
+ @Property
+ private String firstName;
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ private String lastName;
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ private boolean loggedIn;
+
+ public boolean isLoggedIn() {
+ return loggedIn;
+ }
+
+ public void setLoggedIn(boolean status) {
+ loggedIn = status;
+ }
+
+ private String id;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/SimpleLoginServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/SimpleLoginServiceImpl.java
new file mode 100644
index 0000000000..2689dc7020
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/services/profile/SimpleLoginServiceImpl.java
@@ -0,0 +1,45 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.services.profile;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+@Service(LoginService.class)
+public class SimpleLoginServiceImpl implements LoginService {
+
+ @Reference
+ public ProfileService profileService;
+
+ public int login(String userName, String password) {
+
+ if (!"test".equals(userName)) {
+ return INVALID_LOGIN;
+ }
+
+ if (!"password".equals(password)) {
+ return INVALID_PASSWORD;
+ }
+
+ profileService.setLoggedIn(true);
+ profileService.setFirstName("John");
+ profileService.setLastName("Doe");
+ profileService.setId("12345");
+
+ return SUCCESS;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/account/AccountStatusTag.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/account/AccountStatusTag.java
new file mode 100644
index 0000000000..ecdb0c49b4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/account/AccountStatusTag.java
@@ -0,0 +1,125 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.tags.account;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.apache.tuscany.samples.bigbank.account.services.account.AccountService;
+import org.apache.tuscany.samples.bigbank.webclient.services.profile.ProfileService;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+/**
+ * Retrieves and iterates over account summary information for the current
+ * profile by accessing the remotable account service component
+ */
+
+public class AccountStatusTag extends TagSupport {
+
+ // ----------------------------------
+ // Constructors
+ // ----------------------------------
+
+ public AccountStatusTag() {
+ super();
+ }
+
+ // ----------------------------------
+ // Methods
+ // ----------------------------------
+
+ private String mAccountService;
+
+ public String getAccountService() {
+ return mAccountService;
+ }
+
+ public void setAccountService(String pAccountService) {
+ mAccountService = pAccountService;
+ }
+
+ private String mProfileService;
+
+ public String getProfileService() {
+ return mProfileService;
+ }
+
+ public void setProfileService(String pProfileService) {
+ mProfileService = pProfileService;
+ }
+
+ private String mId;
+
+ public String getId() {
+ return mId;
+ }
+
+ public void setId(String pId) {
+ mId = pId;
+ }
+
+ private Iterator mIterator;
+
+ public int doStartTag() throws JspException {
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ ProfileService profile = (ProfileService) moduleContext
+ .locateService(mProfileService);
+ if (profile == null) {
+ throw new JspException("Profile [" + mProfileService
+ + "] not found in current module context");
+ }
+
+ AccountService service = (AccountService) moduleContext
+ .locateService(mAccountService);
+ if (service == null) {
+ throw new JspException("Service [" + mAccountService
+ + "] not found in current module context");
+ }
+ List summaries;
+ try {
+ summaries = service.getAccountReport(profile.getId()).getAccountSummaries();
+ } catch (Exception e) {
+ throw new JspException(e);
+ }
+ mIterator = summaries.iterator();
+ if (mIterator.hasNext()) {
+ pageContext.setAttribute(mId, mIterator.next());
+ return EVAL_BODY_INCLUDE;
+ } else {
+ return SKIP_BODY;
+ }
+ }
+
+ public int doAfterBody() {
+ if (mIterator.hasNext()) {
+ pageContext.setAttribute(mId, mIterator.next());
+ return EVAL_BODY_AGAIN;
+ } else {
+ return SKIP_BODY;
+ }
+ }
+
+ public void release() {
+ super.release();
+ mId = null;
+ mIterator = null;
+ }
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/LoginBarrierTag.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/LoginBarrierTag.java
new file mode 100644
index 0000000000..31fa27fa6f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/LoginBarrierTag.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.tags.sca;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.samples.bigbank.webclient.services.profile.ProfileService;
+
+public class LoginBarrierTag extends TagSupport {
+
+ public LoginBarrierTag() {
+ super();
+ }
+
+ private String mProfile;
+
+ public String getProfile() {
+ return mProfile;
+ }
+
+ public void setProfile(String pProfile) {
+ mProfile = pProfile;
+ }
+
+ private String mUrl;
+
+ public String getUrl() {
+ return mUrl;
+ }
+
+ public void setUrl(String pUrl) {
+ mUrl = pUrl;
+ }
+
+ public int doStartTag() throws JspException {
+ if (mProfile == null || mProfile.length() < 1) {
+ throw new JspException("Invalid profile location specified");
+ }
+
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ ProfileService profile = (ProfileService) moduleContext.locateService(mProfile);
+ if (profile == null) {
+ throw new JspException("Profile [" + mProfile + "] not found in current module context");
+ }
+ if (profile.isLoggedIn()) {
+ return EVAL_BODY_INCLUDE;
+ } else {
+ try {
+ pageContext.forward(mUrl);
+ return SKIP_BODY;
+ } catch (ServletException e) {
+ throw new JspException("Unable to forward to [" + mUrl + "]");
+ } catch (IOException e) {
+ throw new JspException("Unable to forward to [" + mUrl + "]");
+ }
+ }
+ }
+
+ public int doEndTag() throws JspException {
+ return EVAL_PAGE;
+ }
+
+ public void release() {
+ super.release();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/ServiceTag.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/ServiceTag.java
new file mode 100644
index 0000000000..df5697c11f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/tags/sca/ServiceTag.java
@@ -0,0 +1,100 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.tags.sca;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+
+/**
+ * Places an SCA service in the JSP page context, making it available to other
+ * tags corresponding to its id value.
+ */
+
+public class ServiceTag extends TagSupport {
+
+ // ----------------------------------
+ // Constructors
+ // ----------------------------------
+
+ public ServiceTag() {
+ super();
+ }
+
+ // ----------------------------------
+ // Methods
+ // ----------------------------------
+
+ private String mName;
+
+ /**
+ * Returns the name of the SCA service to import into the page context.
+ */
+ public String getName() {
+ return mName;
+ }
+
+ /**
+ * Sets name of the SCA service to import into the page context.
+ */
+ public void setName(String pName) {
+ mName = pName;
+ }
+
+ private String mId;
+
+ /**
+ * Returns the id of the service in the page context
+ */
+ public String getId() {
+ return mId;
+ }
+
+ /**
+ * Sets the id of the service for the page context
+ */
+
+ public void setId(String pId) {
+ mId = pId;
+ }
+
+ public int doStartTag() throws JspException {
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ Object service = moduleContext.locateService(mName);
+ if (service == null) {
+ throw new JspException("Service [" + mName + "] not found in current module context");
+ }
+ if (mId == null) {
+ // if the Id name was not specified, default to the basic name of the
+ // service
+ mId = mName;
+ }
+ pageContext.setAttribute(mId, service);
+ return EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ return EVAL_PAGE;
+ }
+
+ public void release() {
+ super.release();
+ }
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/ui/LoginServlet.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/ui/LoginServlet.java
new file mode 100644
index 0000000000..78bedbe4f7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/java/org/apache/tuscany/samples/bigbank/webclient/ui/LoginServlet.java
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.ui;
+
+import java.io.IOException;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tuscany.samples.bigbank.webclient.services.profile.LoginService;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+
+public class LoginServlet extends HttpServlet {
+
+ private ServletContext mContext;
+
+ public void init(ServletConfig pCfg) throws ServletException {
+ mContext = pCfg.getServletContext();
+ }
+
+ public void doPost(HttpServletRequest pReq, HttpServletResponse pResp) throws ServletException {
+
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ LoginService loginMgr = (LoginService)
+ moduleContext.locateService("LoginServiceComponent");
+
+ if (loginMgr == null) {
+ throw new ServletException("LoginManager not found");
+ }
+
+ String login = pReq.getParameter("login");
+ String password = pReq.getParameter("password");
+ try {
+ if (login == null || password == null) {
+ pResp.sendRedirect("summary.jsp");
+ }
+ int resp = loginMgr.login(login, password);
+ if (resp == LoginService.SUCCESS) {
+ mContext.getRequestDispatcher("/summary.jsp").forward(pReq, pResp);
+ } else {
+ mContext.getRequestDispatcher("/login.html").forward(pReq, pResp);
+ }
+ } catch (IOException e) {
+ throw new ServletException(e);
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.module
new file mode 100644
index 0000000000..6b4b17c6a7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.module
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+ ProfileServiceComponent
+
+
+
+
+
+
+ Anonymous
+
+
+
+
+
+
+ AccountService
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.subsystem b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.subsystem
new file mode 100644
index 0000000000..1c12f340c8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/sca.subsystem
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ bigbank.accountsunbsystem/AccountModuleComponent/AccountService
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/wsdl/AccountService.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/wsdl/AccountService.wsdl
new file mode 100644
index 0000000000..5d087530dd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/resources/wsdl/AccountService.wsdl
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/axis2.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/axis2.xml
new file mode 100644
index 0000000000..a38cf9864a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/axis2.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ admin
+ axis2
+
+ .
+
+ 127.0.0.1
+ 5555
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6060
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HTTP/1.1
+ chunked
+
+
+ HTTP/1.1
+ chunked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/bigbank-tags.tld b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/bigbank-tags.tld
new file mode 100644
index 0000000000..c8a4451691
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/bigbank-tags.tld
@@ -0,0 +1,79 @@
+
+
+
+ 1.0
+ 2.0
+ BigBank Tags
+ Tag library containing BigBank tags
+
+ service
+ org.apache.tuscany.samples.bigbank.webclient.tags.sca.ServiceTag
+ JSP
+ Places a reference to an SCA Service in the page context
+
+ id
+ true
+ false
+
+
+ name
+ true
+ false
+
+
+
+ login
+ org.apache.tuscany.samples.bigbank.webclient.tags.sca.LoginBarrierTag
+ JSP
+ Redirects if user is not logged in
+
+ profile
+ true
+ false
+
+
+ url
+ true
+ false
+
+
+
+
+ accountStatus
+ org.apache.tuscany.samples.bigbank.webclient.tags.account.AccountStatusTag
+ JSP
+ Accesses and iterates the account service
+
+ id
+ true
+ false
+
+
+ accountService
+ true
+ false
+
+
+ profileService
+ true
+ false
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..859fb927af
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ Tuscany Bigbank Web UI sample
+
+ login.html
+
+
+
+ LoginServlet
+ org.apache.tuscany.samples.bigbank.webclient.ui.LoginServlet
+ 1
+
+
+
+ LoginServlet
+ /loginAction/*
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/login.html b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/login.html
new file mode 100644
index 0000000000..72b180a29c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/login.html
@@ -0,0 +1,24 @@
+
+Welcome to Big Bank
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/summary.jsp b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/summary.jsp
new file mode 100644
index 0000000000..be56e2547c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/main/webapp/summary.jsp
@@ -0,0 +1,48 @@
+<%--
+ Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ --%>
+<%@ taglib uri="/WEB-INF/bigbank-tags.tld" prefix="sca" %>
+
+
+
+
+ BigBank Account Summary
+
+
+
+ Account Information for
+
+
+
+
+
+
+
+
Account
+
Balance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestAccountService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestAccountService.java
new file mode 100644
index 0000000000..de18ee0db2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestAccountService.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.client;
+
+import java.util.List;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.apache.tuscany.samples.bigbank.account.AccountReport;
+import org.apache.tuscany.samples.bigbank.account.services.account.AccountService;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+import org.osoa.sca.SCA;
+
+
+public class TestAccountService extends SCA {
+
+ public void start() {
+ }
+
+ public void stop() {
+ }
+
+ public static void main(String[] args) throws Exception {
+ TuscanyRuntime tuscany = new TuscanyRuntime("bigbank.webclient.testclient", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ AccountService accountService = (AccountService) moduleContext.locateService("AccountServiceComponent");
+
+ AccountReport report = accountService.getAccountReport("12345");
+ List summaries = report.getAccountSummaries();
+
+ System.out.println("retrieved " + summaries.size() + " summaries");
+
+ tuscany.stop();
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestLoginService.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestLoginService.java
new file mode 100644
index 0000000000..ac16890127
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/webclient/src/test/java/org/apache/tuscany/samples/bigbank/webclient/client/TestLoginService.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.bigbank.webclient.client;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+import org.osoa.sca.SCA;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.apache.tuscany.samples.bigbank.webclient.services.profile.LoginService;
+
+
+public class TestLoginService extends SCA {
+
+ public void start() {
+ }
+
+ public void stop() {
+ }
+
+ public static void main(String[] args) throws Exception {
+
+
+ TuscanyRuntime tuscany = new TuscanyRuntime("bigbank.webclient.testclient", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ LoginService loginService = (LoginService)
+ moduleContext.locateService("LoginServiceComponent");
+
+ if (loginService.login("test", "password") == LoginService.SUCCESS)
+ System.out.println("Success");
+ else
+ System.out.println("Failure");
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/CompanyAppGbl.xml b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/CompanyAppGbl.xml
new file mode 100644
index 0000000000..45d34aaac9
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/CompanyAppGbl.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/db.lck b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/db.lck
new file mode 100644
index 0000000000..9f6b4b3d4b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/db.lck differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log.ctrl b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log.ctrl
new file mode 100644
index 0000000000..edbd775299
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log.ctrl differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log1.dat
new file mode 100644
index 0000000000..7e85ac8e8f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/log1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/logmirror.ctrl b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/logmirror.ctrl
new file mode 100644
index 0000000000..edbd775299
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/log/logmirror.ctrl differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c10.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c10.dat
new file mode 100644
index 0000000000..5d8ecaa10f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c10.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c101.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c101.dat
new file mode 100644
index 0000000000..0f79fa7574
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c101.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c111.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c111.dat
new file mode 100644
index 0000000000..39d49e3d19
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c111.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c121.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c121.dat
new file mode 100644
index 0000000000..2a4311779b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c121.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c130.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c130.dat
new file mode 100644
index 0000000000..64e3c18d62
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c130.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c141.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c141.dat
new file mode 100644
index 0000000000..0632d04164
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c141.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c150.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c150.dat
new file mode 100644
index 0000000000..d7541026f6
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c150.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c161.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c161.dat
new file mode 100644
index 0000000000..6673bf1873
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c161.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c171.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c171.dat
new file mode 100644
index 0000000000..c2a753cc5d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c171.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c180.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c180.dat
new file mode 100644
index 0000000000..cb9391aed1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c180.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c191.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c191.dat
new file mode 100644
index 0000000000..d3cf1d6364
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c191.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1a1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1a1.dat
new file mode 100644
index 0000000000..a7a2d536e9
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1a1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1b1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1b1.dat
new file mode 100644
index 0000000000..19097e69e7
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1b1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1c0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1c0.dat
new file mode 100644
index 0000000000..359525a31a
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1c0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1d1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1d1.dat
new file mode 100644
index 0000000000..9f257df932
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1d1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1e0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1e0.dat
new file mode 100644
index 0000000000..e43e52fb7f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1e0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1f1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1f1.dat
new file mode 100644
index 0000000000..7e6ee3b1e0
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c1f1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c20.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c20.dat
new file mode 100644
index 0000000000..1be6390f06
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c20.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c200.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c200.dat
new file mode 100644
index 0000000000..b15d56855c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c200.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c211.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c211.dat
new file mode 100644
index 0000000000..84b0022312
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c211.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c221.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c221.dat
new file mode 100644
index 0000000000..63106a9523
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c221.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c230.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c230.dat
new file mode 100644
index 0000000000..9975f27c1f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c230.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c241.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c241.dat
new file mode 100644
index 0000000000..835c645a16
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c241.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c251.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c251.dat
new file mode 100644
index 0000000000..d3d6adf4fb
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c251.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c260.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c260.dat
new file mode 100644
index 0000000000..8d7333df7d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c260.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c271.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c271.dat
new file mode 100644
index 0000000000..af722f7d73
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c271.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c281.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c281.dat
new file mode 100644
index 0000000000..3972983c2e
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c281.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c290.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c290.dat
new file mode 100644
index 0000000000..31577b8124
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c290.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2a1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2a1.dat
new file mode 100644
index 0000000000..0f700d13a7
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2a1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2b1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2b1.dat
new file mode 100644
index 0000000000..1d6382fb3d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2b1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2c1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2c1.dat
new file mode 100644
index 0000000000..3bc60d886b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2c1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2d0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2d0.dat
new file mode 100644
index 0000000000..c542d3c91c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2d0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2e1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2e1.dat
new file mode 100644
index 0000000000..16abd20b5f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2e1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2f0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2f0.dat
new file mode 100644
index 0000000000..eb26be5932
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c2f0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c300.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c300.dat
new file mode 100644
index 0000000000..1214f1df4b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c300.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c31.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c31.dat
new file mode 100644
index 0000000000..18c16f1123
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c31.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c311.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c311.dat
new file mode 100644
index 0000000000..926cbf25b5
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c311.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c320.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c320.dat
new file mode 100644
index 0000000000..07e7bc023c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c320.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c331.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c331.dat
new file mode 100644
index 0000000000..fd827f9dc2
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c331.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c340.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c340.dat
new file mode 100644
index 0000000000..ca70319886
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c340.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c351.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c351.dat
new file mode 100644
index 0000000000..8fbe2a527c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c351.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c360.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c360.dat
new file mode 100644
index 0000000000..dcf9c746e1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c360.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c371.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c371.dat
new file mode 100644
index 0000000000..6f21a840ea
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c371.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c380.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c380.dat
new file mode 100644
index 0000000000..b512e8065f
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c380.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c391.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c391.dat
new file mode 100644
index 0000000000..27006e95a1
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c391.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3a0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3a0.dat
new file mode 100644
index 0000000000..565dca97ac
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3a0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3b1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3b1.dat
new file mode 100644
index 0000000000..36894c9818
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3b1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3c0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3c0.dat
new file mode 100644
index 0000000000..d0c538aede
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3c0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3d1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3d1.dat
new file mode 100644
index 0000000000..65bcec5527
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3d1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3e0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3e0.dat
new file mode 100644
index 0000000000..bdab359420
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3e0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3f1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3f1.dat
new file mode 100644
index 0000000000..dc2d278b57
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c3f1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c400.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c400.dat
new file mode 100644
index 0000000000..3072709cec
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c400.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c41.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c41.dat
new file mode 100644
index 0000000000..61086690f2
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c41.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c411.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c411.dat
new file mode 100644
index 0000000000..ca551d8249
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c411.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c420.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c420.dat
new file mode 100644
index 0000000000..f04de0840e
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c420.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c431.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c431.dat
new file mode 100644
index 0000000000..398b1672cc
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c431.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c440.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c440.dat
new file mode 100644
index 0000000000..af259d0872
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c440.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c451.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c451.dat
new file mode 100644
index 0000000000..772a18c658
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c451.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c460.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c460.dat
new file mode 100644
index 0000000000..505428362d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c460.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c471.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c471.dat
new file mode 100644
index 0000000000..484d0df42d
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c471.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c481.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c481.dat
new file mode 100644
index 0000000000..faac073076
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c481.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c490.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c490.dat
new file mode 100644
index 0000000000..7585319d21
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c490.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c4a1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c4a1.dat
new file mode 100644
index 0000000000..4fe8b786e3
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c4a1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c51.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c51.dat
new file mode 100644
index 0000000000..7fc7937b15
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c51.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c60.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c60.dat
new file mode 100644
index 0000000000..d1fb08c946
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c60.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c71.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c71.dat
new file mode 100644
index 0000000000..d4c2090a3b
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c71.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c81.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c81.dat
new file mode 100644
index 0000000000..38b6ea6520
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c81.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c90.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c90.dat
new file mode 100644
index 0000000000..a607a5969c
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/c90.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ca1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ca1.dat
new file mode 100644
index 0000000000..19b4c9e340
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ca1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cb1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cb1.dat
new file mode 100644
index 0000000000..73dc986572
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cb1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cc0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cc0.dat
new file mode 100644
index 0000000000..d1eef3bb56
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cc0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cd1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cd1.dat
new file mode 100644
index 0000000000..c7e6db3ef7
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cd1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ce1.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ce1.dat
new file mode 100644
index 0000000000..8fd3bf17a8
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/ce1.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cf0.dat b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cf0.dat
new file mode 100644
index 0000000000..332b3d9a8a
Binary files /dev/null and b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/seg0/cf0.dat differ
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/service.properties b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/service.properties
new file mode 100644
index 0000000000..8cfe3b09a5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/dastest/service.properties
@@ -0,0 +1,22 @@
+#C:\apacheSVN\java\target\dastest
+# ********************************************************************
+# *** Please do NOT edit this file. ***
+# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. ***
+# ********************************************************************
+#Fri Feb 17 08:55:29 MST 2006
+SysschemasIndex2Identifier=225
+SyscolumnsIdentifier=144
+SysconglomeratesIndex1Identifier=49
+SysconglomeratesIdentifier=32
+SyscolumnsIndex2Identifier=177
+SysschemasIndex1Identifier=209
+SysconglomeratesIndex3Identifier=81
+SystablesIndex2Identifier=129
+SyscolumnsIndex1Identifier=161
+derby.serviceProtocol=org.apache.derby.database.Database
+SysschemasIdentifier=192
+derby.storage.propertiesId=16
+SysconglomeratesIndex2Identifier=65
+derby.serviceLocale=en_US
+SystablesIdentifier=96
+SystablesIndex1Identifier=113
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/pom.xml
new file mode 100644
index 0000000000..942ccccb21
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/pom.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ org.apache.tuscany.samples.das
+ das-samples
+ SNAPSHOT
+
+
+ 4.0.0
+ companyWeb
+ war
+ Tuscany DAS sample Company WEB
+ Sample use of RDB DAS with JSP
+ SNAPSHOT
+
+
+
+
+ org.apache.tuscany.das
+ tuscany-das-rdb
+ ${pom.version}
+ provided
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/readme.htm
new file mode 100644
index 0000000000..f9bfd4c946
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/readme.htm
@@ -0,0 +1,567 @@
+
+
+
+
+
+
+
+
+Tuscany RDB DAS Sample
+
+
+
+
+
+
+
+
+
+
+
This stand-alone sample demonstrates usage of the SDO RDB
+Data Access Service in the context of a simple web application.
+
+
+
+
The application starts with a canned database of Companies
+and their related Departments.Through
+the web page interface, a user can:
+
+
+
+
+
Display
+ all Companies in the database
+
Display
+ all Companies and related Departments
+
Add a
+ new Department to a Company
+
Delete
+ all Departments from a Company
+
Change
+ the names of Departments in a Company
+
+
+
+
+
So, this simple application covers all CRUD operations as
+well as the some relationship manipulation (adding a Department associates that
+Department with the Company).The sample
+runs on Tomcat 5.5 and uses Derby
+database.Access to the database is via
+a DataSource.
Down
+ load the most recent official release of Derby
+ from here: http://db.apache.org/derby/index.html.The only file you’ll need from this
+ download is derby.jar
+
Stop
+ Tomcat
+
Move the
+ following files (details in appendix) to {Tomcat_Home}/common/lib:
+
+
tuscany-das-rdb-SNAPSHOT.jar
+
sdo-api-SNAPSHOT.jar
+
tuscany-sdo-impl-SNAPSHOT.jar
+
xsd{latest version}.jar
+
ecore-{latest
+ version}..jar
+
ecore-change-{latest
+ version}..jar
+
ecore-xmi-{latest version}.jar
+
common-{latest
+ version}.jar
+
derby.jar
+
+
Add
+ the following files to {Tomcat_Home}/work
+
+
companyWeb-SNAPSHOT.war
+
CompanyAppGbl.xml
+
+
Install
+ the canned Derby database by copying
+ the dastest directory to {Tomcat_Home}/Databases.The “dastest”
+ directory is found at /java/samples/das/companyweb.So, just copy this directory, create a
+ “Databases” directory from {Tomcat Home} and drop in the “dastest” folder with all it contents.
+
Define
+ a DataSource by adding a datasource definition
+ to {Tomcat_Home}/conf/server.xml.
+
+
Find
+ the end-of-section marker </GlobalNamingResources>
+ and add the following lines just above it:
+
+
+
+
+
+
<!-- Global Datasource for Derbydastest database -->
<Resource name="jdbc/dastest"
type="javax.sql.DataSource" auth="Container"
description="Derby database for DAS Company sample"
Scroll
+ down to the “deploy” section and enter the following:
+
+
+
+
+
+
Context Path (optional):/CompanyApp
XML Configuration file URL:work/CompanyAppGbl.xml
WAR or Directory URL:work/CompanyApp.war
+
+
+
+
Hit
+ the “deploy” button
+
+
+
+
+
+
+
Get to
+ the sample application by clicking the named application in the “path”
+ column of the application sectiom of the manager
+ console.Alternatively, you can
+ point your browser to http://localhost:8080/CompanyApp/
+
+
+
+
+
Sample Architecture
+
+
This is a simple, single-page, web application.The main components of this application are:
+
+
+
The
+ RDB Data Access Service (DAS)
+
SDO
+
CompanyClient.java
+
Company.jsp
+
The
+ canned Derby database
+
+
+
+
+
+
+
The CompanyClient
+uses the DAS directly and provides
+high-level services to the jsp such as:
+
+
public
+final List getCompanies()
+
+
This is a good place to look for how you might use the DAS
+in your own application.
+
+
+
+
The Company.jsp
+responds to client interaction by invoking services of the CompanyClient.It receives data from the CompanyClient
+as SDO data graphs and manipulates SDOs directly to
+display data.
+
+
+
+
The canned Derby
+database comes preloaded with Companies and related Departments.The database instance is a simple file
+folder.
+
+
+
+
The DAS accepts
+directives (commands) from the CompanyClientand
+reads and writes to the derby database instance appropriately.
+
+
+
+
Appendix
+
+
+
+
The following specifies where you can find the dependency
+jars you need to run this sample.These
+jars are available only after you
+have successfully downloaded and build Tuscany/java.Instructions for building can be found here:
ecore-xmi-{latest version}.jar jar
+ – {user}/.m2/repository/org/eclipse/emf/ecore-xmi
+
common-{latest
+ version}.jar jar –
+ {user}/.m2/repository/org/eclipse/emf/common
+
derby.jar
+
+
+
+
+
Conventions:
+
+
+
{user} refers the directory where Maven2 is installed on
+ your machine.On my machine,
+ “{user}” is “C:\Documents and Settings\Administrator”
+
{Tomcat_Home} refers to the directory that Tomcat is
+ installed on your machine.On my
+ machine, this is “C:\Program Files\Apache Software Foundation\Tomcat 5.5”
+
{latest version} means the tag associated with the
+ latest version available in the maven2 repository.For example the version of ecore-{latest version}.jar that I used for testing
+ this sample is “ecore-2.2.0-I200602160000.jar”
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/java/org/apache/tuscany/samples/companyweb/CompanyClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/java/org/apache/tuscany/samples/companyweb/CompanyClient.java
new file mode 100644
index 0000000000..32711609e1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/java/org/apache/tuscany/samples/companyweb/CompanyClient.java
@@ -0,0 +1,133 @@
+package org.apache.tuscany.samples.das.companyweb;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+
+import org.apache.tuscany.das.rdb.ApplyChangesCommand;
+import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.CommandGroup;
+
+import commonj.sdo.DataObject;
+
+public class CompanyClient {
+
+ private Random generator = new Random();
+
+ private CommandGroup commandGroup = CommandGroup.FACTORY.createCommandGroup(getConfig("CompanyConfig.xml"));
+
+ public final List getCompanies() {
+
+ Command read = commandGroup.getCommand("all companies");
+ DataObject root = read.executeQuery();
+ return root.getList("COMPANY");
+
+ }
+
+ public final List getCompaniesWithDepartments() {
+
+ Command read = commandGroup.getCommand("all companies and departments");
+ DataObject root = read.executeQuery();
+ return root.getList("COMPANY");
+ }
+
+ public final List getDepartmentsForCompany(int id) {
+ Command read = commandGroup.getCommand("all departments for company");
+ read.setParameterValue("ID", new Integer(id));
+ DataObject root = read.executeQuery();
+ return root.getList("COMPANY");
+ }
+
+ public final void addDepartmentToFirstCompany() {
+ Command read = commandGroup.getCommand("all companies and departments");
+ DataObject root = read.executeQuery();
+ DataObject firstCustomer = root.getDataObject("COMPANY[1]");
+
+ DataObject newDepartment = root.createDataObject("DEPARTMENT");
+ newDepartment.setString("NAME", "Default Name");
+ firstCustomer.getList("departments").add(newDepartment);
+
+ ApplyChangesCommand apply = commandGroup.getApplyChangesCommand();
+ apply.execute(root);
+
+ }
+
+ public final void deleteDepartmentsFromFirstCompany() {
+
+ // This section gets the ID of the first Company just so I can
+ // demonstrate a parameterized command next
+ Command readAll = commandGroup.getCommand("all companies and departments");
+ DataObject root = readAll.executeQuery();
+ int idOfFirstCustomer = root.getInt("COMPANY[1]/ID");
+ System.out.println("ID of first company is: " + idOfFirstCustomer);
+
+ // Read a specific company based on the known ID
+ Command readCust = commandGroup.getCommand("company by id with departments");
+ readCust.setParameterValue("ID", new Integer(idOfFirstCustomer));
+ root = readCust.executeQuery();
+
+ // Delete all the comany's departments from the graph
+ DataObject firstCustomer = root.getDataObject("COMPANY[1]");
+
+ // Shallow copy of list for deleting. This is required to avoid the
+ // dreaded
+ // ConcurrentModificationException since #delete operation also removes
+ // from the original list
+ List allDepartments = new ArrayList(firstCustomer.getList("departments"));
+
+ Iterator i = allDepartments.iterator();
+ DataObject department;
+ while (i.hasNext()) {
+ department = (DataObject) i.next();
+ System.out.println("Deleting department named: " + department.getString("NAME"));
+ department.delete();
+ }
+
+ ApplyChangesCommand apply = commandGroup.getApplyChangesCommand();
+ apply.execute(root);
+
+ }
+
+ public final void changeFirstCompanysDepartmentNames() {
+
+ // This section gets the ID of the first Company just so I can
+ // demonstrate a parameterized command next
+ Command readAll = commandGroup.getCommand("all companies and departments");
+ DataObject root = readAll.executeQuery();
+ int idOfFirstCustomer = root.getInt("COMPANY[1]/ID");
+ System.out.println("ID of first company is: " + idOfFirstCustomer);
+
+ // Read a specific company based on the known ID
+ Command readCust = commandGroup.getCommand("company by id with departments");
+ readCust.setParameterValue("ID", new Integer(idOfFirstCustomer));
+ root = readCust.executeQuery();
+
+ // Modify all the comany's department names
+ DataObject firstCustomer = root.getDataObject("COMPANY[1]");
+ Iterator i = firstCustomer.getList("departments").iterator();
+ DataObject department;
+ while (i.hasNext()) {
+ department = (DataObject) i.next();
+ System.out.println("Modifying department: " + department.getString("NAME"));
+ department.setString("NAME", getRandomDepartmentName());
+ }
+
+ ApplyChangesCommand apply = commandGroup.getApplyChangesCommand();
+ apply.execute(root);
+
+ }
+
+ // Utilities
+
+ private String getRandomDepartmentName() {
+ int number = generator.nextInt(1000) + 1;
+ return "Dept-" + number;
+ }
+
+ private InputStream getConfig(String fileName) {
+ return getClass().getClassLoader().getResourceAsStream(fileName);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/resources/CompanyConfig.xml b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/resources/CompanyConfig.xml
new file mode 100644
index 0000000000..dc28804336
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/resources/CompanyConfig.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/webapp/Company.jsp b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/webapp/Company.jsp
new file mode 100644
index 0000000000..c064f0a4fe
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/das/companyweb/src/main/webapp/Company.jsp
@@ -0,0 +1,151 @@
+
+
+<%--
+ * Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ --%>
+
+
+
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+
+ pageEncoding="ISO-8859-1"
+
+ import="org.apache.tuscany.samples.das.companyweb.CompanyClient"
+ import="commonj.sdo.*"
+%>
+
+
+Company Test
+
+
+
+
The Tuscany helloworld sample shows using the Tuscany SCA
+ runtime in a J2SE environment loading a component that
+ implements the classic introductory hello world example.
+
+
+
Setup
The jars for a J2SE setup not requiring web
+services are required including the sample's own jar helloworld-SNAPSHOT.jar.
+
+
+
+
+
+
Running
+
+Using JDK 1.5 java command with the previous jars run the class org.apache.tuscany.samples.helloworld.HelloWorldClient
+
+
+
Results
+
+
The sample when run should simply display to the standard
+ output:
+
+ Hello World
+
+
+
Code Overview
+
+The source files are physically organized as shown below:
+
Defines the SCA module and component. Defines for the
+ HelloWorldServiceComponent component the Java class that
+ implements that component
+
+
+
+
+
+
HelloWorldService.java
+
+
Defines the Java interface implemented by the component.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.java
+
+
Implements the SCA component. Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented.
+
+
+
+
+
+
HelloWorldClient.java
+
+
Creates a Tuscany runtime and starts it.
+ Obtains the module context which was defined by the
+ sca.module file. From the module context locates the
+ HelloWorldServiceComponent and then calls the getGreetings
+ method to invoke the component.
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldClient.java
new file mode 100644
index 0000000000..0dca894fde
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldClient.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworld;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+
+/**
+ * This client program shows how to create an SCA runtime, start it, locate a simple HelloWorld service component
+ * and invoke it.
+ */
+public class HelloWorldClient {
+
+ public static final void main(String[] args) throws Exception {
+
+ // Obtain Tuscany runtime
+ TuscanyRuntime tuscany = new TuscanyRuntime("hello", null);
+
+ // Start the runtime
+ tuscany.start();
+
+ // Obtain SCA module context.
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ // Locate the HelloWorld service component and invoke it
+ HelloWorldService helloworldService = (HelloWorldService) moduleContext.locateService("HelloWorldServiceComponent");
+
+ String value = helloworldService.getGreetings("World");
+
+ System.out.println(value);
+
+ // Stop the runtime
+ tuscany.stop();
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldService.java
new file mode 100644
index 0000000000..312b46ed41
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworld;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldService {
+
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..6aa0fa611e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworld;
+
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldServiceComponentImpl implements HelloWorldService {
+
+ /*
+ * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings()
+ */
+ public String getGreetings(String name) {
+ return "Hello " + name;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/resources/sca.module
new file mode 100644
index 0000000000..f5f26e5994
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/main/resources/sca.module
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/test/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/test/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentTestCase.java
new file mode 100644
index 0000000000..2681ce02bc
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworld/src/test/java/org/apache/tuscany/samples/helloworld/HelloWorldServiceComponentTestCase.java
@@ -0,0 +1,79 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworld;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+/**
+ *
+ */
+public class HelloWorldServiceComponentTestCase extends TestCase {
+ public boolean verbose = true;
+
+ public void testGeetings() throws Exception {
+
+ if (verbose)
+ System.out.println("starting test..");
+ System.out.flush();
+
+
+ TuscanyRuntime tuscany = new TuscanyRuntime("test", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ assertNotNull(moduleContext);
+ System.out.println("module context name '"
+ + moduleContext.getName() + "'");
+ System.out.println("module context uri '" + moduleContext.getURI()
+ + "'");
+ HelloWorldService helloworldService = (HelloWorldService) moduleContext.locateService("HelloWorldServiceComponent");
+
+ assertNotNull(helloworldService);
+
+
+ String value = helloworldService
+ .getGreetings("World");
+
+ if (verbose)
+ System.out.println("Value = '" + value + "'");
+
+ assertEquals("Hello World", value);
+
+ tuscany.stop();
+
+ }
+
+ public final static void main(String[] args) throws Exception {
+ HelloWorldServiceComponentTestCase hwc = new HelloWorldServiceComponentTestCase();
+ hwc.setVerbose(true);
+ hwc.testGeetings();
+
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/axiscmds.bat b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/axiscmds.bat
new file mode 100644
index 0000000000..554d9f4d07
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/axiscmds.bat
@@ -0,0 +1,2 @@
+wsdl2java -s -S true -o wsdl2javaOut helloworld.wsdl
+java2wsdl -o helloworld.wsdl -l http://localhost:8080/axis/services/helloworld -y WRAPPED org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/helloworld.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/helloworld.wsdl
new file mode 100644
index 0000000000..6f18227b06
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/helloworld.wsdl
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldService.java
new file mode 100644
index 0000000000..e5ac65c462
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldService.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ *
+ */
+
+public interface HelloWorldService{
+ public static final String DEFAULT_NAME= "World";
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
new file mode 100644
index 0000000000..7ed491112f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/orig-java-to-create-wsdl/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+
+/**
+ *
+ */
+public class HelloWorldServiceImpl implements HelloWorldService {
+ public final static String greetings = "Hello ";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings()
+ */
+ public String getGreetings(String name) {
+ return greetings + name ;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/pom.xml
new file mode 100644
index 0000000000..831c7b269e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/pom.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldaxis
+ jar
+ Tuscany sample HelloWorld Axis
+ Sample classic helloworld Axis to test with Tuscany SCA
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-container-java
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-binding-axis
+ ${pom.version}
+ compile
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/readme.htm
new file mode 100644
index 0000000000..4969bbf20e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/readme.htm
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+ Tuscany Hello World Axis
+
+
+
+
Tuscany Hello World Axis
+
+
Overview
+
+
The Tuscany hello world axis sample is not an SCA application.
+ This sample is a simple Apache Axis service. Starting from
+ a Java source using Axis's
+ java2wsdl to create a document literal WSDL. And then using
+ that WSDL in wsdl2java to create all the Axis service and client
+ artifacts. Details on this can be found reviewing the Axis
+ documentation.
The purpose for it's inclusion in the samples is to
+ demonstrate the interoperability of Tuscany's web service
+ binding with another SOAP implementation.
+
+
Setup
+
+The following jars are required from the Maven repository in
+the classpath to run the sample client
+
Using JDK 1.5 java command with the previous jars run the class
+org.apache.tuscany.samples.helloworldaxis.HelloWorldAxisClient Optional arguments:
+
+
Run against sample Tuscany SCA service: (default no arguments)
+ http://localhost:8080/helloworldws-SNAPSHOT/services/HelloWorldService
+ World Run against sample Axis Service:
+ http://localhost:8080/helloworldaxissvc-SNAPSHOT/services/helloworld World
+
+
Results
+
+
The sample when run should simply display to the standard
+ output:
+
+ Hello World
+
+
+
Code Overview
+
+More detailed information about Axis web services can be found on the
+Apache Axis website.
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldAxisClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldAxisClient.java
new file mode 100644
index 0000000000..735f6804b5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldAxisClient.java
@@ -0,0 +1,53 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+import java.net.URL;
+import javax.xml.rpc.ServiceException;
+
+public class HelloWorldAxisClient {
+
+ final static String urlstrAxisService = "http://localhost:8080/tuscany-samples-helloworldaxissvc/services/helloworld";
+ final static String urlstrTuscanyService = "http://localhost:8080/tuscany-samples-helloworldws-service/services/HelloWorldService";
+
+ public String getGreetings(String urlstr, String name) throws Exception {
+ URL url = new URL(urlstr);
+
+ HelloWorldServiceImpl helloworld = (new HelloWorldServiceImplServiceLocator())
+ .gethelloworld(url);
+
+ return helloworld.getGreetings(name);
+ }
+
+ /**
+ * @param args either <name> or <service url> <name>
+ * @throws ServiceException
+ */
+ public static void main(String[] args) throws Exception {
+
+ String urlstr = args.length > 1 ? args[0]
+ : urlstrTuscanyService;
+
+ String name = args.length < 1 ? "World" : (args.length > 1 ? args[1]
+ : args[0]);
+
+ System.out.println((new HelloWorldAxisClient()).getGreetings(urlstr,
+ name));
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
new file mode 100644
index 0000000000..3ad4376c6c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImpl.java
@@ -0,0 +1,21 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public interface HelloWorldServiceImpl extends java.rmi.Remote {
+ public java.lang.String getGreetings(java.lang.String in0) throws java.rmi.RemoteException;
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplService.java
new file mode 100644
index 0000000000..fd84ab2449
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplService.java
@@ -0,0 +1,25 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public interface HelloWorldServiceImplService extends javax.xml.rpc.Service {
+ public java.lang.String gethelloworldAddress();
+
+ public org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl gethelloworld() throws javax.xml.rpc.ServiceException;
+
+ public org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl gethelloworld(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplServiceLocator.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplServiceLocator.java
new file mode 100644
index 0000000000..9d4be5e7e6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplServiceLocator.java
@@ -0,0 +1,148 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public class HelloWorldServiceImplServiceLocator extends org.apache.axis.client.Service implements org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplService {
+
+ public HelloWorldServiceImplServiceLocator() {
+ }
+
+
+ public HelloWorldServiceImplServiceLocator(org.apache.axis.EngineConfiguration config) {
+ super(config);
+ }
+
+ public HelloWorldServiceImplServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException {
+ super(wsdlLoc, sName);
+ }
+
+ // Use to get a proxy class for helloworld
+ private java.lang.String helloworld_address = "http://localhost:8080/axis/services/helloworld";
+
+ public java.lang.String gethelloworldAddress() {
+ return helloworld_address;
+ }
+
+ // The WSDD service name defaults to the port name.
+ private java.lang.String helloworldWSDDServiceName = "helloworld";
+
+ public java.lang.String gethelloworldWSDDServiceName() {
+ return helloworldWSDDServiceName;
+ }
+
+ public void sethelloworldWSDDServiceName(java.lang.String name) {
+ helloworldWSDDServiceName = name;
+ }
+
+ public org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl gethelloworld() throws javax.xml.rpc.ServiceException {
+ java.net.URL endpoint;
+ try {
+ endpoint = new java.net.URL(helloworld_address);
+ }
+ catch (java.net.MalformedURLException e) {
+ throw new javax.xml.rpc.ServiceException(e);
+ }
+ return gethelloworld(endpoint);
+ }
+
+ public org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl gethelloworld(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+ try {
+ org.apache.tuscany.samples.helloworldaxis.HelloworldSoapBindingStub _stub = new org.apache.tuscany.samples.helloworldaxis.HelloworldSoapBindingStub(portAddress, this);
+ _stub.setPortName(gethelloworldWSDDServiceName());
+ return _stub;
+ }
+ catch (org.apache.axis.AxisFault e) {
+ return null;
+ }
+ }
+
+ public void sethelloworldEndpointAddress(java.lang.String address) {
+ helloworld_address = address;
+ }
+
+ /**
+ * For the given interface, get the stub implementation.
+ * If this service has no port for the given interface,
+ * then ServiceException is thrown.
+ */
+ public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+ try {
+ if (org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl.class.isAssignableFrom(serviceEndpointInterface)) {
+ org.apache.tuscany.samples.helloworldaxis.HelloworldSoapBindingStub _stub = new org.apache.tuscany.samples.helloworldaxis.HelloworldSoapBindingStub(new java.net.URL(helloworld_address), this);
+ _stub.setPortName(gethelloworldWSDDServiceName());
+ return _stub;
+ }
+ }
+ catch (java.lang.Throwable t) {
+ throw new javax.xml.rpc.ServiceException(t);
+ }
+ throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+ }
+
+ /**
+ * For the given interface, get the stub implementation.
+ * If this service has no port for the given interface,
+ * then ServiceException is thrown.
+ */
+ public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+ if (portName == null) {
+ return getPort(serviceEndpointInterface);
+ }
+ java.lang.String inputPortName = portName.getLocalPart();
+ if ("helloworld".equals(inputPortName)) {
+ return gethelloworld();
+ } else {
+ java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+ ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+ return _stub;
+ }
+ }
+
+ public javax.xml.namespace.QName getServiceName() {
+ return new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "HelloWorldServiceImplService");
+ }
+
+ private java.util.HashSet ports = null;
+
+ public java.util.Iterator getPorts() {
+ if (ports == null) {
+ ports = new java.util.HashSet();
+ ports.add(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "helloworld"));
+ }
+ return ports.iterator();
+ }
+
+ /**
+ * Set the endpoint address for the specified port name.
+ */
+ public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+
+ if ("helloworld".equals(portName)) {
+ sethelloworldEndpointAddress(address);
+ } else { // Unknown Port Name
+ throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+ }
+ }
+
+ /**
+ * Set the endpoint address for the specified port name.
+ */
+ public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+ setEndpointAddress(portName.getLocalPart(), address);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingImpl.java
new file mode 100644
index 0000000000..f3b00e2ea5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingImpl.java
@@ -0,0 +1,24 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public class HelloworldSoapBindingImpl implements org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl {
+ public java.lang.String getGreetings(java.lang.String in0) throws java.rmi.RemoteException {
+ return "Hello " + in0;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingSkeleton.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingSkeleton.java
new file mode 100644
index 0000000000..276cf5cf0e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingSkeleton.java
@@ -0,0 +1,69 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public class HelloworldSoapBindingSkeleton implements org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl, org.apache.axis.wsdl.Skeleton {
+ private org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl impl;
+ private static java.util.Map _myOperations = new java.util.Hashtable();
+ private static java.util.Collection _myOperationsList = new java.util.ArrayList();
+
+ /**
+ * Returns List of OperationDesc objects with this name
+ */
+ public static java.util.List getOperationDescByName(java.lang.String methodName) {
+ return (java.util.List) _myOperations.get(methodName);
+ }
+
+ /**
+ * Returns Collection of OperationDescs
+ */
+ public static java.util.Collection getOperationDescs() {
+ return _myOperationsList;
+ }
+
+ static {
+ org.apache.axis.description.OperationDesc _oper;
+ org.apache.axis.description.FaultDesc _fault;
+ org.apache.axis.description.ParameterDesc [] _params;
+ _params = new org.apache.axis.description.ParameterDesc []{
+ new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "in0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false),
+ };
+ _oper = new org.apache.axis.description.OperationDesc("getGreetings", _params, new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetingsReturn"));
+ _oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ _oper.setElementQName(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings"));
+ _oper.setSoapAction("");
+ _myOperationsList.add(_oper);
+ if (_myOperations.get("getGreetings") == null) {
+ _myOperations.put("getGreetings", new java.util.ArrayList());
+ }
+ ((java.util.List) _myOperations.get("getGreetings")).add(_oper);
+ }
+
+ public HelloworldSoapBindingSkeleton() {
+ this.impl = new org.apache.tuscany.samples.helloworldaxis.HelloworldSoapBindingImpl();
+ }
+
+ public HelloworldSoapBindingSkeleton(org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl impl) {
+ this.impl = impl;
+ }
+
+ public java.lang.String getGreetings(java.lang.String in0) throws java.rmi.RemoteException {
+ java.lang.String ret = impl.getGreetings(in0);
+ return ret;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingStub.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingStub.java
new file mode 100644
index 0000000000..7fd9622c7e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloworldSoapBindingStub.java
@@ -0,0 +1,133 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+public class HelloworldSoapBindingStub extends org.apache.axis.client.Stub implements org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl {
+ private java.util.Vector cachedSerClasses = new java.util.Vector();
+ private java.util.Vector cachedSerQNames = new java.util.Vector();
+ private java.util.Vector cachedSerFactories = new java.util.Vector();
+ private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+ static org.apache.axis.description.OperationDesc [] _operations;
+
+ static {
+ _operations = new org.apache.axis.description.OperationDesc[1];
+ _initOperationDesc1();
+ }
+
+ private static void _initOperationDesc1() {
+ org.apache.axis.description.OperationDesc oper;
+ org.apache.axis.description.ParameterDesc param;
+ oper = new org.apache.axis.description.OperationDesc();
+ oper.setName("getGreetings");
+ param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "in0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
+ oper.addParameter(param);
+ oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ oper.setReturnClass(java.lang.String.class);
+ oper.setReturnQName(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetingsReturn"));
+ oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
+ oper.setUse(org.apache.axis.constants.Use.LITERAL);
+ _operations[0] = oper;
+
+ }
+
+ public HelloworldSoapBindingStub() throws org.apache.axis.AxisFault {
+ this(null);
+ }
+
+ public HelloworldSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+ this(service);
+ super.cachedEndpoint = endpointURL;
+ }
+
+ public HelloworldSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+ if (service == null) {
+ super.service = new org.apache.axis.client.Service();
+ } else {
+ super.service = service;
+ }
+ ((org.apache.axis.client.Service) super.service).setTypeMappingVersion("1.2");
+ }
+
+ protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+ try {
+ org.apache.axis.client.Call _call = super._createCall();
+ if (super.maintainSessionSet) {
+ _call.setMaintainSession(super.maintainSession);
+ }
+ if (super.cachedUsername != null) {
+ _call.setUsername(super.cachedUsername);
+ }
+ if (super.cachedPassword != null) {
+ _call.setPassword(super.cachedPassword);
+ }
+ if (super.cachedEndpoint != null) {
+ _call.setTargetEndpointAddress(super.cachedEndpoint);
+ }
+ if (super.cachedTimeout != null) {
+ _call.setTimeout(super.cachedTimeout);
+ }
+ if (super.cachedPortName != null) {
+ _call.setPortName(super.cachedPortName);
+ }
+ java.util.Enumeration keys = super.cachedProperties.keys();
+ while (keys.hasMoreElements()) {
+ java.lang.String key = (java.lang.String) keys.nextElement();
+ _call.setProperty(key, super.cachedProperties.get(key));
+ }
+ return _call;
+ }
+ catch (java.lang.Throwable _t) {
+ throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+ }
+ }
+
+ public java.lang.String getGreetings(java.lang.String in0) throws java.rmi.RemoteException {
+ if (super.cachedEndpoint == null) {
+ throw new org.apache.axis.NoEndPointException();
+ }
+ org.apache.axis.client.Call _call = createCall();
+ _call.setOperation(_operations[0]);
+ _call.setUseSOAPAction(true);
+ _call.setSOAPActionURI("");
+ _call.setEncodingStyle(null);
+ _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+ _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+ _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+ _call.setOperationName(new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings"));
+
+ setRequestHeaders(_call);
+ setAttachments(_call);
+ try {
+ java.lang.Object _resp = _call.invoke(new java.lang.Object[]{in0});
+
+ if (_resp instanceof java.rmi.RemoteException) {
+ throw (java.rmi.RemoteException) _resp;
+ } else {
+ extractAttachments(_call);
+ try {
+ return (java.lang.String) _resp;
+ } catch (java.lang.Exception _exception) {
+ return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+ }
+ }
+ } catch (org.apache.axis.AxisFault axisFaultException) {
+ throw axisFaultException;
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/deploy.wsdd b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/deploy.wsdd
new file mode 100644
index 0000000000..dd837f016b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/deploy.wsdd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/undeploy.wsdd b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/undeploy.wsdd
new file mode 100644
index 0000000000..eeecfa17c4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis/src/main/java/org/apache/tuscany/samples/helloworldaxis/undeploy.wsdd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/build.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/build.xml
new file mode 100644
index 0000000000..2d9badbf87
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/build.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/pom.xml
new file mode 100644
index 0000000000..cdb6171241
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/pom.xml
@@ -0,0 +1,205 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldaxis2
+ jar
+ Tuscany sample HelloWorld Axis2
+
+ Sample classic helloworld Axis2 to test with Tuscany SCA
+
+ SNAPSHOT
+
+
+
+
+ axis2
+ axis2-core
+ 0.94
+
+
+ axis2
+ axis2-adb
+ 0.94
+
+
+ axis2
+ axis2-doom
+ 0.94
+
+
+ geronimo-spec
+ geronimo-spec-activation
+ 1.0.2-rc4
+
+
+ geronimo-spec
+ geronimo-spec-javamail
+ 1.3.1-rc5
+
+
+ geronimo-spec
+ geronimo-spec-jms
+ 1.1-rc4
+
+
+
+ axis2
+ addressing
+ 0.94
+ mar
+
+
+
+ commons-logging
+ commons-logging
+ 1.0.4
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.0
+
+
+ commons-codec
+ commons-codec
+ 1.3
+
+
+ log4j
+ log4j
+ 1.2.12
+
+
+ woodstox
+ wstx-asl
+ 2.8.2
+
+
+ stax
+ stax-api
+ 1.0
+
+
+ axis
+ axis-wsdl4j
+ 1.2
+
+
+ ws-commons
+ ws-policy
+ SNAPSHOT
+
+
+
+
+ xml-apis
+ xml-apis
+ 1.3.02
+
+
+ jaxen
+ jaxen
+ 1.1-beta-7
+
+
+ backport-util-concurrent
+ backport-util-concurrent
+ 2.0_01_pd
+
+
+
+
+ annogen
+ annogen
+ 0.1.0
+
+
+ xmlbeans
+ xbean
+ 2.1.0
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetings.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetings.java
new file mode 100644
index 0000000000..a7c332f9e7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetings.java
@@ -0,0 +1,94 @@
+/**
+ * GetGreetings.java This file was auto-generated from WSDL by the Apache Axis2
+ * version: #axisVersion# #today#
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ * GetGreetings bean class
+ */
+public class GetGreetings implements org.apache.axis2.databinding.ADBBean {
+ public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org",
+ "getGreetings", "ns1");
+
+ /** field for In0 */
+ private java.lang.String localIn0;
+
+ /**
+ * Auto generated getter method
+ *
+ * @return java.lang.String
+ */
+ public java.lang.String getIn0() {
+ return localIn0;
+ }
+
+ /**
+ * Auto generated setter method
+ *
+ * @param param In0
+ */
+ public void setIn0(java.lang.String param) {
+ this.localIn0 = param;
+ }
+
+ /**
+ * databinding method to get an XML representation of this object
+ */
+ public javax.xml.stream.XMLStreamReader getPullParser(
+ javax.xml.namespace.QName qName) {
+ java.util.ArrayList elementList = new java.util.ArrayList();
+ java.util.ArrayList attribList = new java.util.ArrayList();
+
+ elementList.add(new javax.xml.namespace.QName(
+ "http://helloworldaxis.samples.tuscany.apache.org", "in0"));
+ elementList.add(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(
+ localIn0));
+
+ return org.apache.axis2.databinding.utils.ADBPullParser.createPullParser(qName,
+ elementList.toArray(), attribList.toArray());
+ }
+
+ /**
+ * static method to create the object Note - This is not complete
+ */
+ public static GetGreetings parse(javax.xml.stream.XMLStreamReader reader)
+ throws java.lang.Exception {
+ GetGreetings object = new GetGreetings();
+
+ try {
+ int event = reader.getEventType();
+ int count = 0;
+ int argumentCount = 1;
+ boolean done = false;
+
+ //event better be a START_ELEMENT. if not we should go up to the start element here
+ while (!reader.isStartElement()) {
+ event = reader.next();
+ }
+
+ while (!done) {
+ if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event) {
+ if ("in0".equals(reader.getLocalName())) {
+ String content = reader.getElementText();
+ object.setIn0(org.apache.axis2.databinding.utils.ConverterUtil.convertTostring(
+ content));
+ count++;
+ }
+ }
+
+ if (argumentCount == count) {
+ done = true;
+ }
+
+ if (!done) {
+ event = reader.next();
+ }
+ }
+ } catch (javax.xml.stream.XMLStreamException e) {
+ throw new java.lang.Exception(e);
+ }
+
+ return object;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetingsResponse.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetingsResponse.java
new file mode 100644
index 0000000000..8cee6c1e93
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/GetGreetingsResponse.java
@@ -0,0 +1,96 @@
+/**
+ * GetGreetingsResponse.java This file was auto-generated from WSDL by the
+ * Apache Axis2 version: #axisVersion# #today#
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ * GetGreetingsResponse bean class
+ */
+public class GetGreetingsResponse
+ implements org.apache.axis2.databinding.ADBBean {
+ public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName("http://helloworldaxis.samples.tuscany.apache.org",
+ "getGreetingsResponse", "ns1");
+
+ /** field for GetGreetingsReturn */
+ private java.lang.String localGetGreetingsReturn;
+
+ /**
+ * Auto generated getter method
+ *
+ * @return java.lang.String
+ */
+ public java.lang.String getGetGreetingsReturn() {
+ return localGetGreetingsReturn;
+ }
+
+ /**
+ * Auto generated setter method
+ *
+ * @param param GetGreetingsReturn
+ */
+ public void setGetGreetingsReturn(java.lang.String param) {
+ this.localGetGreetingsReturn = param;
+ }
+
+ /**
+ * databinding method to get an XML representation of this object
+ */
+ public javax.xml.stream.XMLStreamReader getPullParser(
+ javax.xml.namespace.QName qName) {
+ java.util.ArrayList elementList = new java.util.ArrayList();
+ java.util.ArrayList attribList = new java.util.ArrayList();
+
+ elementList.add(new javax.xml.namespace.QName(
+ "http://helloworldaxis.samples.tuscany.apache.org",
+ "getGreetingsReturn"));
+ elementList.add(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(
+ localGetGreetingsReturn));
+
+ return org.apache.axis2.databinding.utils.ADBPullParser.createPullParser(qName,
+ elementList.toArray(), attribList.toArray());
+ }
+
+ /**
+ * static method to create the object Note - This is not complete
+ */
+ public static GetGreetingsResponse parse(
+ javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception {
+ GetGreetingsResponse object = new GetGreetingsResponse();
+
+ try {
+ int event = reader.getEventType();
+ int count = 0;
+ int argumentCount = 1;
+ boolean done = false;
+
+ //event better be a START_ELEMENT. if not we should go up to the start element here
+ while (!reader.isStartElement()) {
+ event = reader.next();
+ }
+
+ while (!done) {
+ if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event) {
+ if ("getGreetingsReturn".equals(reader.getLocalName())) {
+ String content = reader.getElementText();
+ object.setGetGreetingsReturn(org.apache.axis2.databinding.utils.ConverterUtil.convertTostring(
+ content));
+ count++;
+ }
+ }
+
+ if (argumentCount == count) {
+ done = true;
+ }
+
+ if (!done) {
+ event = reader.next();
+ }
+ }
+ } catch (javax.xml.stream.XMLStreamException e) {
+ throw new java.lang.Exception(e);
+ }
+
+ return object;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplCallbackHandler.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplCallbackHandler.java
new file mode 100644
index 0000000000..ee30587946
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplCallbackHandler.java
@@ -0,0 +1,39 @@
+/**
+ * HelloWorldServiceImplCallbackHandler.java This file was auto-generated from
+ * WSDL by the Apache Axis2 version: 0.94-SNAPSHOT Jan 10, 2006 (10:21:58 LKT)
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ * HelloWorldServiceImplCallbackHandler Callback class
+ */
+public abstract class HelloWorldServiceImplCallbackHandler {
+ private Object clientData;
+
+ /**
+ * User can pass in any object that needs to be accessed once the
+ * NonBlocking Web service call is finished and appropreate method of
+ * this CallBack is called.
+ *
+ * @param clientData Object mechanism by which the user can pass in user
+ * data that will be avilable at the time this callback is called.
+ */
+ public HelloWorldServiceImplCallbackHandler(Object clientData) {
+ this.clientData = clientData;
+ }
+
+ /**
+ * auto generated Axis2 call back method for getGreetings method
+ */
+ public void receiveResultgetGreetings(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param9) {
+ //Fill here with the code to handle the response
+ }
+
+ /**
+ * auto generated Axis2 Error handler
+ */
+ public void receiveErrorgetGreetings(java.lang.Exception e) {
+ //Fill here with the code to handle the exception
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplMessageReceiver.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplMessageReceiver.java
new file mode 100644
index 0000000000..90e9af80b2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplMessageReceiver.java
@@ -0,0 +1,146 @@
+/**
+ * HelloWorldServiceImplMessageReceiver.java This file was auto-generated from
+ * WSDL by the Apache Axis2 version: 0.94-SNAPSHOT Jan 10, 2006 (10:21:58 LKT)
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ * HelloWorldServiceImplMessageReceiver message receiver
+ */
+public class HelloWorldServiceImplMessageReceiver
+ extends org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver {
+ public void invokeBusinessLogic(
+ org.apache.axis2.context.MessageContext msgContext,
+ org.apache.axis2.context.MessageContext newMsgContext)
+ throws org.apache.axis2.AxisFault {
+ try {
+ // get the implementation class for the Web Service
+ Object obj = getTheImplementationObject(msgContext);
+
+ //Inject the Message Context if it is asked for
+ org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,
+ msgContext, newMsgContext);
+
+ HelloWorldServiceImplSkeleton skel = (HelloWorldServiceImplSkeleton) obj;
+
+ //Out Envelop
+ org.apache.axis2.soap.SOAPEnvelope envelope = null;
+
+ //Find the axisOperation that has been set by the Dispatch phase.
+ org.apache.axis2.description.AxisOperation op = msgContext.getOperationContext()
+ .getAxisOperation();
+
+ if (op == null) {
+ throw new org.apache.axis2.AxisFault(
+ "Operation is not located, if this is doclit style the SOAP-ACTION should specified via the SOAP Action to use the RawXMLProvider");
+ }
+
+ String methodName;
+
+ if ((op.getName() != null) &
+ ((methodName = op.getName().getLocalPart()) != null)) {
+ if ("getGreetings".equals(methodName)) {
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param5 =
+ null;
+
+ //doc style
+ param5 = skel.getGreetings((org.apache.tuscany.samples.helloworldaxis.GetGreetings) fromOM(
+ msgContext.getEnvelope().getBody()
+ .getFirstElement(),
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings.class));
+
+ envelope = toEnvelope(getSOAPFactory(msgContext), param5);
+ }
+
+ newMsgContext.setEnvelope(envelope);
+ }
+ } catch (Exception e) {
+ throw org.apache.axis2.AxisFault.makeFault(e);
+ }
+ }
+
+ //
+ private org.apache.axis2.om.OMElement toOM(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings param) {
+ if (param instanceof org.apache.axis2.databinding.ADBBean) {
+ org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder(org.apache.axis2.om.OMAbstractFactory.getOMFactory(),
+ param.getPullParser(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings.MY_QNAME));
+ org.apache.axis2.om.OMElement documentElement = builder.getDocumentElement();
+ ((org.apache.axis2.om.impl.OMNodeEx) documentElement).setParent(null); // remove the parent link
+
+ return documentElement;
+ } else {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.soap.SOAPEnvelope toEnvelope(
+ org.apache.axis2.soap.SOAPFactory factory,
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings param) {
+ if (param instanceof org.apache.axis2.databinding.ADBBean) {
+ org.apache.axis2.databinding.ADBSOAPModelBuilder builder = new org.apache.axis2.databinding.ADBSOAPModelBuilder(param.getPullParser(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings.MY_QNAME),
+ factory);
+
+ return builder.getEnvelope();
+ } else {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.om.OMElement toOM(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param) {
+ if (param instanceof org.apache.axis2.databinding.ADBBean) {
+ org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder(org.apache.axis2.om.OMAbstractFactory.getOMFactory(),
+ param.getPullParser(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.MY_QNAME));
+ org.apache.axis2.om.OMElement documentElement = builder.getDocumentElement();
+ ((org.apache.axis2.om.impl.OMNodeEx) documentElement).setParent(null); // remove the parent link
+
+ return documentElement;
+ } else {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.soap.SOAPEnvelope toEnvelope(
+ org.apache.axis2.soap.SOAPFactory factory,
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param) {
+ if (param instanceof org.apache.axis2.databinding.ADBBean) {
+ org.apache.axis2.databinding.ADBSOAPModelBuilder builder = new org.apache.axis2.databinding.ADBSOAPModelBuilder(param.getPullParser(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.MY_QNAME),
+ factory);
+
+ return builder.getEnvelope();
+ } else {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private java.lang.Object fromOM(org.apache.axis2.om.OMElement param,
+ java.lang.Class type) {
+ Object obj;
+
+ try {
+ java.lang.reflect.Method parseMethod = type.getMethod("parse",
+ new Class[] { javax.xml.stream.XMLStreamReader.class });
+ obj = null;
+
+ if (parseMethod != null) {
+ obj = parseMethod.invoke(null,
+ new Object[] { param.getXMLStreamReaderWithoutCaching() });
+ } else {
+ //oops! we don't know how to deal with this. Perhaps the reflective one is a good choice here
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ return obj;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplSkeleton.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplSkeleton.java
new file mode 100644
index 0000000000..7796e08873
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplSkeleton.java
@@ -0,0 +1,24 @@
+/**
+ * HelloWorldServiceImplSkeleton.java This file was auto-generated from WSDL by
+ * the Apache Axis2 version: 0.94-SNAPSHOT Jan 10, 2006 (10:21:58 LKT)
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/**
+ * HelloWorldServiceImplSkeleton java skeleton for the axisService
+ */
+public class HelloWorldServiceImplSkeleton
+{
+ /**
+ * Auto generated method signature
+ *
+ * @param greetings
+ */
+ public org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse getGreetings(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings greetings )
+ {
+ GetGreetingsResponse response = new GetGreetingsResponse();
+ response.setGetGreetingsReturn( "Greeting: " + greetings.getIn0() );
+ return response;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplStub.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplStub.java
new file mode 100644
index 0000000000..440a5aa36f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplStub.java
@@ -0,0 +1,269 @@
+/**
+ * HelloWorldServiceImplStub.java This file was auto-generated from WSDL by the
+ * Apache Axis2 version: 0.94-SNAPSHOT Jan 10, 2006 (10:21:58 LKT)
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+/*
+ * HelloWorldServiceImplStub java implementation
+ */
+public class HelloWorldServiceImplStub
+ extends org.apache.axis2.client.Stub
+{
+ //default axis home being null forces the system to pick up the mars from the axis2 library
+ public static final String AXIS2_HOME = null;
+
+ protected static org.apache.axis2.description.AxisOperation[] _operations;
+
+ static
+ {
+ //creating the Service
+ _service = new org.apache.axis2.description.AxisService( "HelloWorldServiceImpl" );
+
+ //creating the operations
+ org.apache.axis2.description.AxisOperation __operation;
+ _operations = new org.apache.axis2.description.OutInAxisOperation[1];
+
+ __operation = new org.apache.axis2.description.OutInAxisOperation();
+ __operation.setName( new javax.xml.namespace.QName( "http://helloworldaxis.samples.tuscany.apache.org",
+ "getGreetings" ) );
+ _operations[0] = __operation;
+ _service.addOperation( __operation );
+ }
+
+ public HelloWorldServiceImplStub( org.apache.axis2.context.ConfigurationContext configurationContext,
+ String targetEndpoint )
+ throws java.lang.Exception
+ {
+ _serviceClient = new org.apache.axis2.client.ServiceClient( configurationContext, _service );
+ _serviceClient.getOptions().setTo( new org.apache.axis2.addressing.EndpointReference( targetEndpoint ) );
+ }
+
+ /**
+ * Default Constructor
+ */
+ public HelloWorldServiceImplStub()
+ throws java.lang.Exception
+ {
+ this( "http://localhost:8080/axis2/services/HelloWorldServiceImplService" );
+ }
+
+ /**
+ * Constructor taking the traget endpoint
+ */
+ public HelloWorldServiceImplStub( String targetEndpoint )
+ throws java.lang.Exception
+ {
+ this( new org.apache.axis2.context.ConfigurationContextFactory()
+ .createConfigurationContextFromFileSystem( AXIS2_HOME ), targetEndpoint );
+ }
+
+ /**
+ * Auto generated method signature
+ *
+ * @param param10
+ *
+ * @see org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl#getGreetings
+ */
+ public org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse getGreetings(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings param10 )
+ throws java.rmi.RemoteException
+ {
+ org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient( _operations[0]
+ .getName() );
+ _operationClient.getOptions().setSoapAction( "" );
+ _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault( true );
+
+ // create SOAP envelope with that payload
+ org.apache.axis2.soap.SOAPEnvelope env = null;
+
+ //Style is Doc.
+ env = toEnvelope( getFactory( _options.getSoapVersionURI() ), param10 );
+
+ // create message context with that soap envelope
+ org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+ _messageContext.setEnvelope( env );
+
+ // add the message contxt to the operation client
+ _operationClient.addMessageContext( _messageContext );
+
+ //set the options hierarchy
+ _options.setParent( _operationClient.getOptions() );
+ _operationClient.setOptions( _options );
+
+ //execute the operation client
+ _operationClient.execute( true );
+
+ org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient
+ .getMessageContext( org.apache.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE );
+ org.apache.axis2.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();
+
+ java.lang.Object object = fromOM( getElement( _returnEnv, "doc" ),
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.class );
+
+ return (org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse) object;
+ }
+
+ /**
+ * Auto generated method signature for Asynchronous Invocations
+ *
+ * @param param10
+ *
+ * @see org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImpl#startgetGreetings
+ */
+ public void startgetGreetings(
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings param10,
+ final org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplCallbackHandler callback )
+ throws java.rmi.RemoteException
+ {
+ org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient( _operations[0]
+ .getName() );
+ _operationClient.getOptions().setSoapAction( "" );
+ _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault( true );
+
+ // create SOAP envelope with that payload
+ org.apache.axis2.soap.SOAPEnvelope env;
+
+ //Style is Doc.
+ env = toEnvelope( getFactory( _options.getSoapVersionURI() ), param10 );
+
+ // create message context with that soap envelope
+ org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
+ _messageContext.setEnvelope( env );
+
+ // add the message contxt to the operation client
+ _operationClient.addMessageContext( _messageContext );
+
+ //set the options hierarchy
+ _options.setParent( _operationClient.getOptions() );
+ _operationClient.setOptions( _options );
+
+ _operationClient.setCallback( new org.apache.axis2.client.async.Callback()
+ {
+ public void onComplete( org.apache.axis2.client.async.AsyncResult result )
+ {
+ java.lang.Object object = fromOM( getElement( result.getResponseEnvelope(), "doc" ),
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.class );
+ callback
+ .receiveResultgetGreetings( (org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse) object );
+ }
+
+ public void onError( java.lang.Exception e )
+ {
+ callback.receiveErrorgetGreetings( e );
+ }
+ } );
+
+ //execute the operation client
+ _operationClient.execute( true );
+ }
+
+ //http://localhost:8080/axis2/services/HelloWorldServiceImplService
+ private org.apache.axis2.om.OMElement toOM( org.apache.tuscany.samples.helloworldaxis.GetGreetings param )
+ {
+ if ( param instanceof org.apache.axis2.databinding.ADBBean )
+ {
+ org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder(
+ org.apache.axis2.om.OMAbstractFactory
+ .getOMFactory(),
+ param
+ .getPullParser( org.apache.tuscany.samples.helloworldaxis.GetGreetings.MY_QNAME ) );
+ org.apache.axis2.om.OMElement documentElement = builder.getDocumentElement();
+ ( (org.apache.axis2.om.impl.OMNodeEx) documentElement ).setParent( null ); // remove the parent link
+
+ return documentElement;
+ }
+ else
+ {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.soap.SOAPEnvelope toEnvelope( org.apache.axis2.soap.SOAPFactory factory,
+ org.apache.tuscany.samples.helloworldaxis.GetGreetings param )
+ {
+ if ( param instanceof org.apache.axis2.databinding.ADBBean )
+ {
+ org.apache.axis2.databinding.ADBSOAPModelBuilder builder = new org.apache.axis2.databinding.ADBSOAPModelBuilder(
+ param
+ .getPullParser( org.apache.tuscany.samples.helloworldaxis.GetGreetings.MY_QNAME ),
+ factory );
+
+ return builder.getEnvelope();
+ }
+ else
+ {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.om.OMElement toOM( org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param )
+ {
+ if ( param instanceof org.apache.axis2.databinding.ADBBean )
+ {
+ org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder(
+ org.apache.axis2.om.OMAbstractFactory
+ .getOMFactory(),
+ param
+ .getPullParser( org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.MY_QNAME ) );
+ org.apache.axis2.om.OMElement documentElement = builder.getDocumentElement();
+ ( (org.apache.axis2.om.impl.OMNodeEx) documentElement ).setParent( null ); // remove the parent link
+
+ return documentElement;
+ }
+ else
+ {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private org.apache.axis2.soap.SOAPEnvelope toEnvelope(
+ org.apache.axis2.soap.SOAPFactory factory,
+ org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse param )
+ {
+ if ( param instanceof org.apache.axis2.databinding.ADBBean )
+ {
+ org.apache.axis2.databinding.ADBSOAPModelBuilder builder = new org.apache.axis2.databinding.ADBSOAPModelBuilder(
+ param
+ .getPullParser( org.apache.tuscany.samples.helloworldaxis.GetGreetingsResponse.MY_QNAME ),
+ factory );
+
+ return builder.getEnvelope();
+ }
+ else
+ {
+ //todo finish this onece the bean serializer has the necessary methods
+ return null;
+ }
+ }
+
+ private java.lang.Object fromOM( org.apache.axis2.om.OMElement param, java.lang.Class type )
+ {
+ Object obj;
+
+ try
+ {
+ java.lang.reflect.Method parseMethod = type
+ .getMethod( "parse", new Class[] { javax.xml.stream.XMLStreamReader.class } );
+ obj = null;
+
+ if ( parseMethod != null )
+ {
+ obj = parseMethod.invoke( null, new Object[] { param.getXMLStreamReaderWithoutCaching() } );
+ }
+ else
+ {
+ //oops! we don't know how to deal with this. Perhaps the reflective one is a good choice here
+ }
+ }
+ catch ( Exception e )
+ {
+ throw new RuntimeException( e );
+ }
+
+ return obj;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/helloworld.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/helloworld.wsdl
new file mode 100644
index 0000000000..79bd6e45a0
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/helloworld.wsdl
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/services.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/services.xml
new file mode 100644
index 0000000000..18d83e759e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/main/resources/services.xml
@@ -0,0 +1,7 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplSkeleton
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/META-INF/MANIFEST.MF b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..5e9495128c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplTest.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplTest.java
new file mode 100644
index 0000000000..149c3d2390
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxis2/src/test/java/org/apache/tuscany/samples/helloworldaxis/HelloWorldServiceImplTest.java
@@ -0,0 +1,63 @@
+/**
+ * HelloWorldServiceImplTest.java This file was auto-generated from WSDL by the
+ * Apache Axis2 version: 0.94-SNAPSHOT Jan 10, 2006 (10:21:58 LKT)
+ */
+package org.apache.tuscany.samples.helloworldaxis;
+
+
+/*
+ * HelloWorldServiceImplTest Junit test case
+*/
+public class HelloWorldServiceImplTest extends junit.framework.TestCase {
+
+//FIXME we don't want to run this test as part of the main build, AXIS2 is not necessarily set up to run it
+ /**
+ * Auto generated test method
+ */
+ public void testgetGreetings() throws java.lang.Exception {
+// org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplStub stub =
+// new org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplStub("http://localhost:8080/axis2/services/HelloWorldServiceImplService"); //the default implementation should point to the right endpoint
+//
+// org.apache.tuscany.samples.helloworldaxis.GetGreetings param14 = (org.apache.tuscany.samples.helloworldaxis.GetGreetings) getTestObject(org.apache.tuscany.samples.helloworldaxis.GetGreetings.class);
+// param14.setIn0("Hello, World!");
+//
+// // todo Fill in the param14 here
+// assertNotNull(stub.getGreetings(param14));
+ }
+
+ /**
+ * Auto generated test method
+ */
+ public void testStartgetGreetings() throws java.lang.Exception {
+// org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplStub stub =
+// new org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplStub("http://localhost:8080/axis2/services/HelloWorldServiceImplService");
+// org.apache.tuscany.samples.helloworldaxis.GetGreetings param14 = (org.apache.tuscany.samples.helloworldaxis.GetGreetings) getTestObject(org.apache.tuscany.samples.helloworldaxis.GetGreetings.class);
+// param14.setIn0("Hello, World!");
+//
+// // todo Fill in the param14 here
+// stub.startgetGreetings(param14, new tempCallbackN1000C());
+ }
+
+ //Create an ADBBean and provide it as the test object
+ public org.apache.axis2.databinding.ADBBean getTestObject(
+ java.lang.Class type) throws Exception {
+ return (org.apache.axis2.databinding.ADBBean) type.newInstance();
+ }
+
+ private class tempCallbackN1000C
+ extends org.apache.tuscany.samples.helloworldaxis.HelloWorldServiceImplCallbackHandler {
+ public tempCallbackN1000C() {
+ super(null);
+ }
+
+ public void receiveResultgetGreetings(
+ org.apache.axis2.client.async.AsyncResult result) {
+ assertNotNull(result.getResponseEnvelope().getBody()
+ .getFirstElement());
+ }
+
+ public void receiveErrorgetGreetings(java.lang.Exception e) {
+ fail();
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/pom.xml
new file mode 100644
index 0000000000..6a1f53146f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldaxissvc
+ war
+ Tuscany sample HelloWorld Axis Service
+ Sample classic helloworld Axis to test with Tuscany SCA
+ SNAPSHOT
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworldaxis
+ ${pom.version}
+ compile
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/readme.htm
new file mode 100644
index 0000000000..dba269fad2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldaxissvc/readme.htm
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+ Tuscany Hello World Axis Service Sample
+
+
+
Tuscany Hello World Axis Service Sample
+
+
Overview
+
+
The Tuscany hello world Axis service sample uses the code
+generated in the hello world Axis sample. This
+project just includes a standard J2EE web.xml and uses Maven's war
+plugin to build a J2EE war that can be deployed into a web server.
+ Note that the configuring of the web application
+server for Tuscany makes the Axis services available to all deployed web
+applications, so it's not required to add Axis jars specifically to
+this web application.
+
+
+
Setup
Set up your server as described in the Tomcat Setup. If you are not configuring with the acceptance test the server, you will need to add helloworldws-SNAPSHOT.war to your tomcat's webapp directory.
Review Axis documentation on configuring and deploying web services.
+
+
+
+
+
The Tuscany helloworld sample shows using the Tuscany SCA
+ runtime in a J2SE environment loading a JavaScript component that
+ implements the classic introductory hello world example.
+
+
+
Setup
The jars for a J2SE setup not requiring web
+services are required including the sample's own jar helloworldjs-SNAPSHOT.jar.
+
+
+
+
+
+
Running
+
+Using JDK 1.5 java command with the previous jars run the class org.apache.tuscany.samples.helloworldjs.HelloWorldClient
+
+
+
Results
+
+
The sample when run should simply display to the standard
+ output:
+
+ jsHello World
+
+
+
Code Overview
+
+The source files are physically organized as shown below:
+
Defines the SCA module and component. Defines for the
+ HelloWorldServiceComponent component the Java class that
+ implements that component
+
+
+
+
+
+
HelloWorldService.java
+
+
Defines the Java interface implemented by the component.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.js
+
+
JavaScript implementation of the SCA component.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.componentType
+
+
The SCA componentType side file defining the service interface implemented by the JavaScript component.
+
+
+
+
+
+
HelloWorldClient.java
+
+
Creates a Tuscany runtime and starts it.
+ Obtains the module context which was defined by the
+ sca.module file. From the module context locates the
+ HelloWorldServiceComponent and then calls the getGreetings
+ method to invoke the component.
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java
new file mode 100644
index 0000000000..b4ea3e6abb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldjs;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+
+/**
+ * This client program shows how to create an SCA runtime, start it, locate a simple HelloWorld service component
+ * and invoke it.
+ */
+public class HelloWorldClient {
+
+ public static final void main(String[] args) throws Exception {
+
+ // Obtain Tuscany runtime
+ TuscanyRuntime tuscany = new TuscanyRuntime("hello", null);
+
+ // Start the runtime
+ tuscany.start();
+
+ // Obtain SCA module context.
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ // Locate the HelloWorld service component and invoke it
+ HelloWorldServiceComponent helloworldService = (HelloWorldServiceComponent) moduleContext.locateService("HelloWorldServiceComponent");
+
+ String value = helloworldService.getGreetings("World");
+
+ System.out.println(value);
+
+ // Stop the runtime
+ tuscany.stop();
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java
new file mode 100644
index 0000000000..4de4948561
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldjs;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldServiceComponent {
+
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType
new file mode 100644
index 0000000000..dab815733e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js
new file mode 100644
index 0000000000..b3104f78a5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js
@@ -0,0 +1,20 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+function getGreetings(name) {
+ return "jsHello " + name;
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module
new file mode 100644
index 0000000000..1ec0f7ed94
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java
new file mode 100644
index 0000000000..6a61e7e13a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java
@@ -0,0 +1,80 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldjs;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+/**
+ *
+ */
+public class HelloWorldServiceComponentTestCase extends TestCase {
+ public boolean verbose = true;
+
+ public void testGeetings() throws Exception {
+
+ if (verbose)
+ System.out.println("starting test..");
+ System.out.flush();
+
+
+ TuscanyRuntime tuscany = new TuscanyRuntime("test", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ assertNotNull(moduleContext);
+ System.out.println("module context name '"
+ + moduleContext.getName() + "'");
+ System.out.println("module context uri '" + moduleContext.getURI()
+ + "'");
+ HelloWorldServiceComponent helloworldService = (HelloWorldServiceComponent) moduleContext
+ .locateService("HelloWorldServiceComponent");
+
+ assertNotNull(helloworldService);
+
+
+ String value = helloworldService
+ .getGreetings("World");
+
+ if (verbose)
+ System.out.println("Value = '" + value + "'");
+
+ assertEquals("jsHello World", value);
+
+ tuscany.stop();
+
+ }
+
+ public final static void main(String[] args) throws Exception {
+ HelloWorldServiceComponentTestCase hwc = new HelloWorldServiceComponentTestCase();
+ hwc.setVerbose(true);
+ hwc.testGeetings();
+
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml
new file mode 100644
index 0000000000..99d58e9a8a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml
@@ -0,0 +1,57 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldmc
+ jar
+ Tuscany sample multi-component HelloWorld
+ Sample helloworld with multiple components
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-container-java
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-container-js
+ ${pom.version}
+ compile
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm
new file mode 100644
index 0000000000..f37ae9dda8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+ Tuscany Hello World Multi-Component Sample
+
+
+
+
+
Tuscany Hello World Multi-Component Sample
+
+
Overview
+
+
The Tuscany hello world multi-component sample shows using the Tuscany SCA
+ runtime in a J2SE environment loading a component that
+ implements the classic introductory hello world example. This sample
+ shows the wiring of multiple components in a single SCA module.
+
+
+
Setup
The jars for a J2SE setup not requiring web
+services are required including the sample's own jar helloworldmc-SNAPSHOT.jar.
+
+
Running
+Using JDK 1.5 java command with the previous jars run the class
+org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentImpl
+
+
Results
+
+
The sample when run should simply display to the standard
+ output:
+
+ Hello SCA World
+
+
+
Code Overview
+
+The source files are physically organized as shown below:
+
+
Defines the SCA module and the
+ HelloWorldServiceComponent,
+ GreetingPrefixComponent
+ and GreetingSuffixComponent
+ components Wires the HelloWorldServiceComponent
+ to reference the GreetingPrefixComponent
+ and GreetingSuffixComponent.
+ Customizes the GreetingPrefixComponent
+ and GreetingSuffixComponent
+ components with the greetings.
+
+
+
+
+
+
GreetingPortionProvider.java
+
+
Defines the Java interface implemented by the
+ component. GreetingPrefixComponent
+ and GreetingSuffixComponent
+
+
+
+
+
+
GreetingPortionProviderImpl.java
+
+
Implements the SCA components GreetingPrefixComponent
+ and GreetingSuffixComponent
+ . Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented. Uses the SCA defined Property
+ Java annotation on the greetingPortion Java
+ field to customize the component in the sca.module file.
+
+
+
+
+
+
HelloWorldService.java
+
+
Defines the Java interface implemented by the
+ component. HelloWorldServiceComponent.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.java
+
+
+
+
Implements the HelloWorldServiceComponent
+ component. Shows two Java fields being used to reference the
+ and GreetingPrefixComponentGreetingSuffixComponent
+ components.
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java
new file mode 100644
index 0000000000..d023b3023b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java
@@ -0,0 +1,22 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+public interface GreetingPortionProvider {
+
+ public String getGreetingPortion();
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java
new file mode 100644
index 0000000000..a881a17dae
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Service;
+
+@Service(GreetingPortionProvider.class)
+public class GreetingPortionProviderImpl implements GreetingPortionProvider {
+
+ @Property
+ public String greetingPortion;
+
+ public String getGreetingPortion() {
+ return greetingPortion;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java
new file mode 100644
index 0000000000..36d7e3eb03
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+
+/**
+ * This client program shows how to create an SCA runtime, start it, locate a simple HelloWorld service component
+ * and invoke it.
+ */
+public class HelloWorldClient {
+
+ public static final void main(String[] args) throws Exception {
+
+ // Obtain Tuscany runtime
+ TuscanyRuntime tuscany = new TuscanyRuntime("hello", null);
+
+ // Start the runtime
+ tuscany.start();
+
+ // Obtain SCA module context.
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ // Locate the HelloWorld service component and invoke it
+ HelloWorldService helloworldService = (HelloWorldService) moduleContext.locateService("HelloWorldServiceComponent");
+
+ String value = helloworldService.getGreetings();
+
+ System.out.println(value);
+
+ // Stop the runtime
+ tuscany.stop();
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java
new file mode 100644
index 0000000000..3d455aca68
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldService {
+
+ public String getGreetings();
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..664c6343d3
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldServiceComponentImpl implements HelloWorldService {
+
+ @Property
+ public String greetingMiddle;
+
+ @Reference
+ public GreetingPortionProvider greetingPrefix;
+
+ @Reference
+ public GreetingPortionProvider greetingSuffix;
+
+ /**
+ * @return
+ */
+ public String getGreetings() {
+ String middle;
+ if (greetingMiddle == null)
+ middle = "";
+ else
+ middle = greetingMiddle;
+
+ return greetingPrefix.getGreetingPortion() + " " + middle + " " + greetingSuffix.getGreetingPortion();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module
new file mode 100644
index 0000000000..13892eff7b
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+ GreetingPrefixComponent
+ GreetingSuffixComponent
+
+
+ SCA
+
+
+
+
+
+
+ Hello
+
+
+
+
+
+
+ World
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java
new file mode 100644
index 0000000000..a53973b9ed
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java
@@ -0,0 +1,74 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldmc;
+
+import junit.framework.TestCase;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+
+public class HelloWorldServiceComponentTestCase extends TestCase {
+ public boolean verbose = true;
+
+ public void testGeetings() throws Exception {
+
+ if (verbose)
+ System.out.println("starting test..");
+ System.out.flush();
+
+ TuscanyRuntime tuscany = new TuscanyRuntime("test", null);
+ tuscany.start();
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ assertNotNull(moduleContext);
+ System.out.println("module context name '"
+ + moduleContext.getName() + "'");
+ System.out.println("module context uri '" + moduleContext.getURI()
+ + "'");
+ HelloWorldService helloworldService =
+ (HelloWorldService) moduleContext.locateService
+ ("HelloWorldServiceComponent");
+
+ assertNotNull(helloworldService);
+
+ String value = helloworldService.getGreetings();
+
+ if (verbose)
+ System.out.println("Value = '" + value + "'");
+
+ assertEquals("Hello SCA World", value);
+
+ tuscany.stop();
+ }
+
+ public final static void main(String[] args) throws Exception {
+ HelloWorldServiceComponentTestCase hwc =
+ new HelloWorldServiceComponentTestCase();
+ hwc.setVerbose(true);
+ hwc.testGeetings();
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml
new file mode 100644
index 0000000000..7eb7c0ec0f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml
@@ -0,0 +1,51 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldWeb
+ war
+ Tuscany sample HelloWorld WEB
+ Sample classic helloworld with JSP
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ provided
+
+
+ org.apache.tuscany
+ tuscany-container-java
+ ${pom.version}
+ provided
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm
new file mode 100644
index 0000000000..158d379e16
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+ Tuscany Hello World Web Sample
+
+
+
+
Tuscany Hello World Web Sample
+
+
Overview
+
+
The Tuscany hello world web sample shows using the Tuscany SCA
+ runtime in a Tomcat environment being accessed from a JSP
+ page that
+ implements the classic introductory hello world example.
+
+
+
Setup
Set up your server as described in the Tomcat
+ Setup. If you are not configuring with the acceptance test the server, you will need to add helloworldWeb-SNAPSHOT.war to your tomcat's webapp directory.
+
+
Running
+
+Once you've started your web server, use your browse to view the
+following URL: http://localhost:8080/helloworldWeb-SNAPSHOT/
+
+
+You should see a form you can supply your name and a submit button.
+ Once you submit the form the JSP page calls a Java class that
+gets the CurrentModuleContext and locates the SCA component to execute
+the greeting service. Note, unlike the a J2SE in a Tomcat environment the Tuscany runtime is automatically
+initialized and running.
+
Results
+
+
The page should be updated with the greeting displayed below
+ the form.
+
+
+
+
Code Overview
+
+The source files are physically organized as shown below:
+
Defines the SCA module and component. Defines for the
+ HelloWorldServiceComponent component and the Java class that
+ implements that component
+
+
+
+
+
+
HelloWorldService.java
+
+
Defines the Java interface implemented by the component.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.java
+
+
Implements the SCA component. Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented.
+
+
+
+
+
+
HelloWorldWeb.jsp
+
Handles Web form input.. Obtains the module context which was defined by the
+ sca.module file. From the module context locates the
+ HelloWorldServiceComponent and then calls the getGreetings
+ method to invoke the component. and formats returned results.
+
+
+
web.xml
+
Standard J2EE web application's web.xml
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java
new file mode 100644
index 0000000000..4775291e27
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldweb;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldServiceComponent {
+
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..1441f9ff36
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldweb;
+
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldServiceComponent.class)
+public class HelloWorldServiceComponentImpl implements HelloWorldServiceComponent {
+
+ /*
+ * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings()
+ */
+ public String getGreetings(String name) {
+ return "Hello " + name;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module
new file mode 100644
index 0000000000..aa045e4a80
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp
new file mode 100644
index 0000000000..9a54d0cbf9
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp
@@ -0,0 +1,79 @@
+
+<%--
+ * Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ --%>
+
+
+
+ <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1" session="true" autoFlush="true"
+ isThreadSafe="true" isErrorPage="false"
+ import="org.apache.tuscany.samples.helloworldweb.HelloWorldServiceComponent"
+ import="java.io.PrintWriter"
+ import="java.io.StringWriter"
+ import="org.osoa.sca.CurrentModuleContext"
+ import="org.osoa.sca.ModuleContext"
+ %>
+
+
+ Tuscany HelloWorld WEB Example
+ <%
+ String name = request.getParameter("name");
+ %>
+
+
+
+
+<%
+
+ }%>
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..9765b182dc
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ Tuscany sample HelloWorld WEB
+
+
+ HelloWorldWeb.jsp
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java
new file mode 100644
index 0000000000..72c7cedb49
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java
@@ -0,0 +1,84 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldweb;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+/**
+ *
+ */
+public class HelloWorldServiceComponentTestCase extends TestCase {
+ public boolean verbose = false;
+
+ public void testGeetings() throws Exception {
+ // todo should use SCA ;-)
+ final boolean viaSCA = false;
+ TuscanyRuntime tuscany;
+ ModuleContext moduleContext = null;
+ if (verbose)
+ System.out.println("starting test..");
+ System.out.flush();
+ HelloWorldServiceComponent helloworldService = null;
+
+ if (viaSCA) {
+ tuscany = new TuscanyRuntime("test", null);
+ tuscany.start();
+ moduleContext = CurrentModuleContext.getContext();
+
+ assertNotNull(moduleContext);
+ System.out.println("module context name '"
+ + moduleContext.getName() + "'");
+ System.out.println("module context uri '" + moduleContext.getURI()
+ + "'");
+ helloworldService = (HelloWorldServiceComponent) moduleContext
+ .locateService("HelloWorldServiceComponent");
+
+ assertNotNull(helloworldService);
+ } else
+ helloworldService = new HelloWorldServiceComponentImpl();
+
+ String value = helloworldService
+ .getGreetings("World");
+
+ if (verbose)
+ System.out.println("Value = '" + value + "'");
+ assertEquals("Hello World", value);
+ if (viaSCA)
+ tuscany.stop();
+
+ }
+
+ public final static void main(String[] args) throws Exception {
+ HelloWorldServiceComponentTestCase hwc = new HelloWorldServiceComponentTestCase();
+ hwc.setVerbose(true);
+ hwc.testGeetings();
+
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/pom.xml
new file mode 100644
index 0000000000..bd63c96676
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/pom.xml
@@ -0,0 +1,87 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldws
+ war
+ Tuscany sample HelloWorld WS Service
+ Sample classic helloworld SCA Service
+ SNAPSHOT
+
+
+
+
+
+
+
+
+ SCA API
+
+ org.osoa
+ sca-api
+ ${pom.version}
+ provided
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ provided
+
+
+ org.apache.tuscany
+ tuscany-container-java
+ ${pom.version}
+ provided
+
+
+ org.apache.tuscany
+ tuscany-binding-axis2
+ ${pom.version}
+ provided
+
+
+ org.apache.tuscany
+ tuscany-tomcat
+ ${pom.version}
+ provided
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/readme.htm
new file mode 100644
index 0000000000..2fce89cf02
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/readme.htm
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+ Tuscany Hello World Web Sample
+
+
+
+
+
Tuscany Hello World WS Sample
+
+
+
Overview
+
+
+
The Tuscany hello world ws sample shows using the Tuscany SCA
+ runtime in a Tomcat environment providing a web service..
+
+
+
Setup
+
+
+Set up your server as described in the Tomcat Setup. If
+you are not configuring with the acceptance test the server, you will need to add helloworldws-SNAPSHOT.war
+to your Tomcat's webapp directory.
+
+
+
Defines the SCA module, entryPoint
+ and component. Defines for the
+ HelloWorldServiceComponent component and the Java class that
+ implements the component For the entryPoint it defines WSDL for the
+ service, the Java interface provided by the service, and wires the
+ service to the HelloWorldServiceComponent
+
+
+
+
+
+
+
+
+
HelloWorldService.java
+
+
+
Defines the Java interface implemented by the component.
+
+
+
+
+
+
+
+
+
HelloWorldServiceComponentImpl.java
+
+
+
Implements the SCA component. Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented. Also uses the SCA Java annotation "Remotable" to
+ indicate that a component implemented by this class can be
+ referenced out side of the SCA module it resides in.
+
+
+
+
+
+
+
+
tuscany-model.config
+
+
Maps the SCA Entry point WSDL to the physical WSDL file location.
+
+
+
+
+
helloworld.wsdl
+
WSDL for the service.
+
+
+
+
web.xml
+
+
Standard J2EE web application's web.xml
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldService.java
new file mode 100644
index 0000000000..535e7ae5dc
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldws;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldService {
+
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..cbbdce7619
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/java/org/apache/tuscany/samples/helloworldws/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldws;
+
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldServiceComponentImpl implements HelloWorldService {
+
+ /*
+ * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings()
+ */
+ public String getGreetings(String name) {
+ return "Hello " + name;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/sca.module
new file mode 100644
index 0000000000..95b0126553
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/sca.module
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+ HelloWorldServiceComponent/HelloWorldService
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/wsdl/helloworld.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/wsdl/helloworld.wsdl
new file mode 100644
index 0000000000..b1189031e7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/resources/wsdl/helloworld.wsdl
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/axis2.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/axis2.xml
new file mode 100644
index 0000000000..d42457fdf6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/axis2.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ admin
+ axis2
+
+ .
+
+ 127.0.0.1
+ 5555
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6060
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HTTP/1.1
+ chunked
+
+
+ HTTP/1.1
+ chunked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..e537b650e4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldws/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ Tuscany sample HelloWorld WS
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/pom.xml
new file mode 100644
index 0000000000..4953fa5b02
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/pom.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ SNAPSHOT
+
+ 4.0.0
+ helloworldwsclient
+ jar
+ Tuscany sample HelloWorld Webservice SCA Client
+ Sample classic helloworldws client
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-container-java
+ ${pom.version}
+ compile
+
+
+ org.apache.tuscany
+ tuscany-binding-axis2
+ ${pom.version}
+ compile
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/readme.htm
new file mode 100644
index 0000000000..03e1323cee
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/readme.htm
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+ Tuscany Hello World Web Sample
+
+
+
+
Tuscany Hello World WS Client Sample
+
+
Overview
+
+
The Tuscany hello world WS client sample shows using the Tuscany SCA
+ runtime in a J2SE environment invoking a web service.
+
+
Setup
+
+The jars for a J2SE setup including those necessary
+for web services are required including the sample's own jar helloworldwsclient-SNAPSHOT.jar.
+
+
Running
+Using JDK 1.5 java command with the previous mentioned jars run the
+class org.apache.tuscany.samples.helloworldwsclient.HelloWorldClient
+
+
Results
+
+
The sample when run should simply display to the standard
+ output:
+
+ Hello World
+
+
Code Overview
+
+The source files are physically organized as shown below:
+
+
Defines the SCA module,
+ externalService
+ and component. Defines for the
+ HelloWorldServiceComponent component and the Java class that
+ implements the component For the externalService it defines WSDL for
+ the
+ service, the Java interface provided by the service.
+ The the HelloWorldServiceComponent is via a
+ referenced wired to the externalService
+
+
+
+
+
+
HelloWorldClient.java
+
+
Creates a Tuscany runtime and starts it.
+ Obtains the module context which was defined by the
+ sca.module file. From the module context locates the
+ HelloWorldServiceComponent and then calls the getGreetings
+ method to invoke the component.
+
+
+
+
+
+
HelloWorldService.java
+
+
Defines the Java interface
+ implemented by the component.
+
+
+
+
+
+
HelloWorldServiceComponentImpl.java
+
+
It does not directly implement the service; instead it
+ has an SCA reference that is wired in the sca.module to an
+ externalService that will provide the service. The service providing the implementation is the helloworldws sample.
+
+
+
+
+
+
+
+
tuscany-model.config
+
+
Maps the SCA Entry point WSDL to the physical WSDL file
+ location.
+
+
+
+
+
+
helloworld.wsdl
+
+
WSDL for the service.
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldClient.java
new file mode 100644
index 0000000000..beece1cae4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldClient.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldwsclient;
+
+import org.osoa.sca.CurrentModuleContext;
+import org.osoa.sca.ModuleContext;
+
+import org.apache.tuscany.core.client.TuscanyRuntime;
+
+/**
+ * This client program shows how to create an SCA runtime, start it, locate a simple HelloWorld service component
+ * and invoke it.
+ */
+public class HelloWorldClient {
+
+ public static final void main(String[] args) throws Exception {
+
+ // Obtain Tuscany runtime
+ TuscanyRuntime tuscany = new TuscanyRuntime("hello", null);
+
+ // Start the runtime
+ tuscany.start();
+
+ // Obtain SCA module context.
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+
+ // Locate the HelloWorld service component and invoke it
+ HelloWorldService helloworldService = (HelloWorldService) moduleContext.locateService("HelloWorldServiceComponent");
+
+ String value = helloworldService.getGreetings("World");
+
+ System.out.println(value);
+
+ // Stop the runtime
+ tuscany.stop();
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldService.java
new file mode 100644
index 0000000000..00e0af3a9d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldwsclient;
+
+/**
+ * This is the business interface of the HelloWorld service component.
+ */
+public interface HelloWorldService {
+
+ public String getGreetings(String name);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..62702b50bb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/java/org/apache/tuscany/samples/helloworldwsclient/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.samples.helloworldwsclient;
+
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Reference;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldService.class)
+//FIXME workaround for JIRA TUSCANY-41
+@Scope("MODULE")
+public class HelloWorldServiceComponentImpl implements HelloWorldService {
+
+ @Reference
+ public HelloWorldService hellowWorldService = null; // Injected by the SCA container.
+
+ /**
+ * @see org.apache.tuscany.samples.helloworldwsclient.HelloWorldService#getGreetings(java.lang.String)
+ */
+ public String getGreetings(final String name) {
+ assert null != hellowWorldService : "helloWorldService was not set by the SCA runtime!";
+
+ return hellowWorldService.getGreetings(name);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/axis2.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/axis2.xml
new file mode 100644
index 0000000000..a38cf9864a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/axis2.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ admin
+ axis2
+
+ .
+
+ 127.0.0.1
+ 5555
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6060
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HTTP/1.1
+ chunked
+
+
+ HTTP/1.1
+ chunked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/sca.module
new file mode 100644
index 0000000000..9642b2157d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/sca.module
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+ HelloWorldService
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/wsdl/helloworld.wsdl b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/wsdl/helloworld.wsdl
new file mode 100644
index 0000000000..75b732e3a5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldwsclient/src/main/resources/wsdl/helloworld.wsdl
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/pom.xml
new file mode 100644
index 0000000000..f9cefafaca
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/pom.xml
@@ -0,0 +1,42 @@
+
+
+
+
+ org.apache.tuscany.samples
+ tuscany-samples
+ SNAPSHOT
+
+ 4.0.0
+ org.apache.tuscany.samples.helloworld
+ helloworld-samples
+ pom
+ Tuscany HelloWorld Samples
+ SNAPSHOT
+
+
+ helloworld
+
+ helloworldjs
+ helloworldmc
+ helloworldweb
+ helloworldws
+ helloworldwsclient
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/pom.xml
new file mode 100644
index 0000000000..e77e18d1ab
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/pom.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ org.apache.tuscany
+ tuscany-project
+ SNAPSHOT
+
+ 4.0.0
+ org.apache.tuscany.samples
+ tuscany-samples
+ pom
+ Tuscany Samples
+ SNAPSHOT
+
+
+ helloworld
+ bigbank
+ das
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/LICENSE.txt b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/LICENSE.txt
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/pom.xml b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/pom.xml
new file mode 100644
index 0000000000..64e3dcb19c
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/pom.xml
@@ -0,0 +1,70 @@
+
+
+
+
+ org.apache.tuscany
+ tuscany-sca
+ SNAPSHOT
+
+ 4.0.0
+ tuscany-binding-axis
+ Tuscany Axis Binding
+ Implementation of the SCA Web Services binding using Axis.
+ SNAPSHOT
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ compile
+
+
+
+ axis
+ axis
+ 1.2.1
+ compile
+
+
+ axis
+ axis-jaxrpc
+ 1.2.1
+ compile
+
+
+ axis
+ axis-saaj
+ 1.2.1
+ compile
+
+
+
+ tomcat
+ servlet-api
+ 5.0.18
+ provided
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java
new file mode 100644
index 0000000000..5d8f286944
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly;
+
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+
+/**
+ * The Factory for the model.
+ */
+public interface WebServiceAssemblyFactory extends AssemblyFactory {
+
+ /**
+ * Returns a new WebServiceBinding.
+ */
+ WebServiceBinding createWebServiceBinding();
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java
new file mode 100644
index 0000000000..3c223ffa8e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+
+import org.apache.tuscany.model.assembly.Binding;
+
+/**
+ * Represents a Web service binding.
+ */
+public interface WebServiceBinding extends Binding {
+
+ /**
+ * Returns the WSDL port defining this binding.
+ */
+ Port getWSDLPort();
+
+ /**
+ * Returns the WSDL definition containing the WSDL port.
+ * @return
+ */
+ Definition getWSDLDefinition();
+
+ /**
+ * Sets the WSDL port defining this binding.
+ */
+ void setWSDLPort(Port value);
+
+ /**
+ * Sets the WSDL definition containing the WSDL port.
+ * @param definition
+ */
+ void setWSDLDefinition(Definition definition);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java
new file mode 100644
index 0000000000..4a3154f2c1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.impl;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory;
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
+
+/**
+ * An implementation of the model Factory.
+ */
+public class WebServiceAssemblyFactoryImpl extends AssemblyFactoryImpl implements WebServiceAssemblyFactory {
+
+ /**
+ * Creates an instance of the factory.
+ */
+ public WebServiceAssemblyFactoryImpl() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory#createWebServiceBinding()
+ */
+ public WebServiceBinding createWebServiceBinding() {
+ return new WebServiceBindingImpl();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java
new file mode 100644
index 0000000000..37ed0191e6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.impl.BindingImpl;
+
+/**
+ * An implementation of WebServiceBinding.
+ */
+public class WebServiceBindingImpl extends BindingImpl implements WebServiceBinding {
+
+ private Definition definition;
+ private Port port;
+ private String portURI;
+
+ /**
+ * Constructor
+ */
+ protected WebServiceBindingImpl() {
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#getWSDLPort()
+ */
+ public Port getWSDLPort() {
+ return port;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#setWSDLPort(javax.wsdl.Port)
+ */
+ public void setWSDLPort(Port value) {
+ checkNotFrozen();
+ this.port=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#getWSDLDefinition()
+ */
+ public Definition getWSDLDefinition() {
+ return definition;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#setWSDLDefinition(javax.wsdl.Definition)
+ */
+ public void setWSDLDefinition(Definition definition) {
+ checkNotFrozen();
+ this.definition=definition;
+ }
+
+ /**
+ * @param portURI The portURI to set.
+ */
+ public void setPortURI(String portURI) {
+ this.portURI = portURI;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.impl.BindingImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+ */
+ public void initialize(AssemblyModelContext modelContext) {
+ if (isInitialized())
+ return;
+ super.initialize(modelContext);
+
+ // Get the WSDL port namespace and name
+ if (port==null && portURI!=null) {
+ int h=portURI.indexOf('#');
+ String portNamespace=portURI.substring(0,h);
+ String portName=portURI.substring(h+1);
+
+ // Load the WSDL definitions for the given namespace
+ List definitions=modelContext.getAssemblyLoader().loadDefinitions(portNamespace);
+ if (definitions==null)
+ throw new IllegalArgumentException("Cannot find WSDL definition for "+portNamespace);
+ for (Definition definition: definitions) {
+
+ // Find the port with the given name
+ for (Service service : (Collection)definition.getServices().values()) {
+ Port port=service.getPort(portName);
+ if (port!=null) {
+ this.definition=definition;
+ this.port=port;
+ return;
+ }
+ }
+ }
+ throw new IllegalArgumentException("Cannot find WSDL port "+portURI);
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java
new file mode 100644
index 0000000000..c9c87e1e11
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java
@@ -0,0 +1,150 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.builder;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis.config.ExternalWebServiceRuntimeConfiguration;
+import org.apache.tuscany.binding.axis.handler.ExternalWebServiceClient;
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.Context;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.injection.SingletonObjectFactory;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.MethodHashMap;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.impl.InvokerInterceptor;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ServiceContract;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+/**
+ * Creates a RuntimeConfigurationBuilder for an external service configured with the {@link WebServiceBinding}
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("MODULE")
+public class ExternalWebServiceConfigurationBuilder implements RuntimeConfigurationBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ private ProxyFactoryFactory proxyFactoryFactory;
+
+ private MessageFactory messageFactory;
+
+ private RuntimeConfigurationBuilder policyBuilder;
+
+ public ExternalWebServiceConfigurationBuilder() {
+ }
+
+ @Init(eager = true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ /**
+ * Sets the factory used to construct proxies implmementing the business interface required by a reference
+ */
+ @Autowire
+ public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
+ this.proxyFactoryFactory = factory;
+ }
+
+ /**
+ * Sets the factory used to construct invocation messages
+ *
+ * @param msgFactory
+ */
+ @Autowire
+ public void setMessageFactory(MessageFactory msgFactory) {
+ this.messageFactory = msgFactory;
+ }
+
+ /**
+ * Sets a builder responsible for creating source-side and target-side invocation chains for a reference. The
+ * reference builder may be hierarchical, containing other child reference builders that operate on specific
+ * metadata used to construct and invocation chain.
+ *
+ * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
+ */
+ public void setPolicyBuilder(RuntimeConfigurationBuilder builder) {
+ policyBuilder = builder;
+ }
+
+ public void build(AssemblyModelObject object, Context context) throws BuilderException {
+ if (!(object instanceof ExternalService)) {
+ return;
+ }
+ ExternalService externalService = (ExternalService) object;
+ if (externalService.getBindings().size() < 1 || !(externalService.getBindings().get(0) instanceof WebServiceBinding)) {
+ return;
+ }
+
+ WebServiceBinding wsBinding=(WebServiceBinding)externalService.getBindings().get(0);
+
+ ExternalWebServiceClient externalWebServiceClient=new ExternalWebServiceClient(externalService, wsBinding);
+ ExternalWebServiceRuntimeConfiguration config = new ExternalWebServiceRuntimeConfiguration(externalService.getName(), new SingletonObjectFactory(externalWebServiceClient));
+
+ ConfiguredService configuredService = externalService.getConfiguredService();
+ Service service = configuredService.getService();
+ ServiceContract serviceContract = service.getServiceContract();
+ Map iConfigMap = new MethodHashMap();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
+ Set javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
+ for (Method method : javaMethods) {
+ InvocationConfiguration iConfig = new InvocationConfiguration(method);
+ iConfigMap.put(method, iConfig);
+ }
+ QualifiedName qName = new QualifiedName(externalService.getName() + QualifiedName.NAME_SEPARATOR + service.getName());
+ ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
+ proxyFactory.setBusinessInterface(serviceContract.getInterface());
+ proxyFactory.setProxyConfiguration(pConfiguration);
+ config.addTargetProxyFactory(service.getName(), proxyFactory);
+ configuredService.setProxyFactory(proxyFactory);
+ if (policyBuilder != null) {
+ // invoke the reference builder to handle additional policy metadata
+ policyBuilder.build(configuredService, context);
+ }
+ // add tail interceptor
+ for (InvocationConfiguration iConfig : (Collection) iConfigMap.values()) {
+ iConfig.addTargetInterceptor(new InvokerInterceptor());
+ }
+
+ externalService.getConfiguredService().setRuntimeConfiguration(config);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java
new file mode 100644
index 0000000000..e006b0e4ff
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java
@@ -0,0 +1,61 @@
+package org.apache.tuscany.binding.axis.builder;
+
+import org.apache.tuscany.binding.axis.config.ExternalWebServiceRuntimeConfiguration;
+import org.apache.tuscany.binding.axis.handler.ExternalWebServiceTargetInvoker;
+import org.apache.tuscany.core.builder.BuilderConfigException;
+import org.apache.tuscany.core.builder.WireBuilder;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("MODULE")
+public class ExternalWebServiceWireBuilder implements WireBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ /**
+ * Constructs a new ExternalWebServiceWireBuilder.
+ */
+ public ExternalWebServiceWireBuilder() {
+ super();
+ }
+
+ @Autowire
+ public void setRuntimeContext(RuntimeContext context) {
+ runtimeContext = context;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ public void connect(ProxyFactory sourceFactory, ProxyFactory targetFactory, Class targetType, boolean downScope, ScopeContext targetScopeContext) throws BuilderConfigException {
+ if (!(ExternalWebServiceRuntimeConfiguration.class.isAssignableFrom(targetType))) {
+ return;
+ }
+ for (InvocationConfiguration sourceInvocationConfig : sourceFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+
+ ExternalWebServiceTargetInvoker invoker = new ExternalWebServiceTargetInvoker(sourceFactory.getProxyConfiguration().getTargetName(), sourceInvocationConfig.getMethod(), targetScopeContext);
+
+ // if (downScope) {
+ // // the source scope is shorter than the target, so the invoker can cache the target instance
+ // invoker.setCacheable(true);
+ // } else {
+ // invoker.setCacheable(false);
+ // }
+ sourceInvocationConfig.setTargetInvoker(invoker);
+ }
+
+ }
+
+ public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext)
+ throws BuilderConfigException {
+ //TODO implement
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java
new file mode 100644
index 0000000000..ac4b8b16eb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.builder;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis.config.WebServiceEntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.invocation.Interceptor;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.InvocationRuntimeException;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.TargetInvoker;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.message.Message;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ServiceContract;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+/**
+ * Creates a RuntimeConfigurationBuilder for an entry point configured with the {@link WebServiceBinding}
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("MODULE")
+public class WebServiceEntryPointConfigurationBuilder implements RuntimeConfigurationBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ private ProxyFactoryFactory proxyFactoryFactory;
+
+ private MessageFactory messageFactory;
+
+ private RuntimeConfigurationBuilder policyBuilder;
+
+ public WebServiceEntryPointConfigurationBuilder() {
+ }
+
+ @Init(eager = true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ /**
+ * Sets the factory used to construct proxies implmementing the business interface required by a reference
+ */
+ @Autowire
+ public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
+ this.proxyFactoryFactory = factory;
+ }
+
+ /**
+ * Sets the factory used to construct invocation messages
+ *
+ * @param msgFactory
+ */
+ @Autowire
+ public void setMessageFactory(MessageFactory msgFactory) {
+ this.messageFactory = msgFactory;
+ }
+
+ /**
+ * Sets a builder responsible for creating source-side and target-side invocation chains for a reference. The
+ * reference builder may be hierarchical, containing other child reference builders that operate on specific
+ * metadata used to construct and invocation chain.
+ *
+ * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
+ */
+ public void setPolicyBuilder(RuntimeConfigurationBuilder builder) {
+ policyBuilder = builder;
+ }
+
+ public void build(AssemblyModelObject object, AggregateContext parentContext) throws BuilderException {
+ if (!(object instanceof EntryPoint)) {
+ return;
+ }
+ EntryPoint entryPoint = (EntryPoint) object;
+ if (entryPoint.getBindings().size() < 1 || !(entryPoint.getBindings().get(0) instanceof WebServiceBinding)) {
+ return;
+ }
+
+ EntryPointRuntimeConfiguration config = new WebServiceEntryPointRuntimeConfiguration(entryPoint.getName(), entryPoint.getConfiguredService().getService().getName(), messageFactory);
+
+ ConfiguredService configuredService = entryPoint.getConfiguredService();
+ Service service = configuredService.getService();
+ ServiceContract serviceContract = service.getServiceContract();
+ Map iConfigMap = new HashMap();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
+ Set javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
+ for (Method method : javaMethods) {
+ InvocationConfiguration iConfig = new InvocationConfiguration(method);
+ iConfigMap.put(method, iConfig);
+ }
+ QualifiedName qName = new QualifiedName(entryPoint.getConfiguredReference().getTargetConfiguredServices().get(0).getAggregatePart().getName() + QualifiedName.NAME_SEPARATOR + service.getName());
+ ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
+ proxyFactory.setBusinessInterface(serviceContract.getInterface());
+ proxyFactory.setProxyConfiguration(pConfiguration);
+ config.addSourceProxyFactory(service.getName(), proxyFactory);
+ configuredService.setProxyFactory(proxyFactory);
+ if (policyBuilder != null) {
+ // invoke the reference builder to handle additional policy metadata
+ policyBuilder.build(configuredService, parentContext);
+ }
+ // add tail interceptor
+ for (InvocationConfiguration iConfig : (Collection) iConfigMap.values()) {
+ iConfig.addTargetInterceptor(new EntryPointInvokerInterceptor());
+ }
+ entryPoint.getConfiguredReference().setRuntimeConfiguration(config);
+ }
+
+ //FIXME same as the InvokerInterceptor except that it doesn't throw an exception in setNext
+ // For some reason another InvokerInterceptor is added after this one, need Jim to look into it
+ // and figure out why.
+ public class EntryPointInvokerInterceptor implements Interceptor {
+
+ public EntryPointInvokerInterceptor() {
+ }
+
+ public Message invoke(Message msg) throws InvocationRuntimeException {
+ TargetInvoker invoker = msg.getTargetInvoker();
+ if (invoker == null) {
+ throw new InvocationRuntimeException("No target invoker specified on message");
+ }
+ return invoker.invoke(msg);
+ }
+
+ public void setNext(Interceptor next) {
+ }
+
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java
new file mode 100644
index 0000000000..c3145137dd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.config;
+
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.builder.impl.BaseExternalServiceRuntimeConfiguration;
+
+/**
+ * Creates instances of {@link org.apache.tuscany.core.context.ExternalServiceContext} configured with the appropriate
+ * invocation chains and bindings. This implementation serves as a marker for
+ * {@link org.apache.tuscany.binding.axis.builder.ExternalWebServiceWireBuilder}
+ *
+ * @version $Rev$ $Date$
+ */
+public class ExternalWebServiceRuntimeConfiguration extends BaseExternalServiceRuntimeConfiguration {
+
+ public ExternalWebServiceRuntimeConfiguration(String name, ObjectFactory objectFactory) {
+ super(name, objectFactory);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java
new file mode 100644
index 0000000000..37fbd325e5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.config;
+
+import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.message.MessageFactory;
+
+/**
+ * Creates instances of {@link org.apache.tuscany.core.context.EntryPointContext} configured with the appropriate
+ * invocation chains and bindings. This implementation serves as a marker for
+ * {@link org.apache.tuscany.binding.axis.builder.WebServiceEntryPointWireBuilder}
+ *
+ * @version $Rev$ $Date$
+ */
+public class WebServiceEntryPointRuntimeConfiguration extends EntryPointRuntimeConfiguration {
+
+ public WebServiceEntryPointRuntimeConfiguration(String name, String serviceName, MessageFactory messageFactory) {
+ super(name, serviceName, messageFactory);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java
new file mode 100644
index 0000000000..a14f3de037
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java
@@ -0,0 +1,265 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.engine.config;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.servlet.ServletConfig;
+import javax.wsdl.Definition;
+import javax.wsdl.Operation;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.xml.namespace.QName;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceException;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.EngineConfigurationFactory;
+import org.apache.axis.MessageContext;
+import org.apache.axis.configuration.FileProvider;
+import org.apache.axis.configuration.SimpleProvider;
+import org.apache.axis.constants.Style;
+import org.apache.axis.constants.Use;
+import org.apache.axis.description.JavaServiceDesc;
+import org.apache.axis.description.OperationDesc;
+import org.apache.axis.description.ParameterDesc;
+import org.apache.axis.handlers.soap.SOAPService;
+import org.apache.axis.providers.java.RPCProvider;
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis.handler.WebServicePortMetaData;
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.webapp.TuscanyWebAppRuntime;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.Binding;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.Module;
+import org.osoa.sca.ServiceRuntimeException;
+import org.osoa.sca.ServiceUnavailableException;
+
+/**
+ */
+public class AxisEngineConfigurationFactory implements EngineConfigurationFactory {
+
+ private TuscanyWebAppRuntime tuscanyRuntime;
+
+ /**
+ * Constructor
+ *
+ */
+ public AxisEngineConfigurationFactory(TuscanyWebAppRuntime tuscanyRuntime) {
+ this.tuscanyRuntime = tuscanyRuntime;
+ }
+
+ /**
+ * Creates a new factory.
+ *
+ * @see org.apache.axis.configuration.EngineConfigurationFactoryFinder
+ */
+ public static EngineConfigurationFactory newFactory(Object param) {
+ if (param instanceof ServletConfig) {
+
+ // Only configure Tuscany apps
+ // Get the Tuscany runtime out of the servlet context
+ TuscanyWebAppRuntime tuscanyRuntime = (TuscanyWebAppRuntime) ((ServletConfig) param).getServletContext().getAttribute(TuscanyWebAppRuntime.class.getName());
+ if (tuscanyRuntime == null)
+ return null;
+
+ return new AxisEngineConfigurationFactory(tuscanyRuntime);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * @see org.apache.axis.EngineConfigurationFactory#getClientEngineConfig()
+ */
+ public EngineConfiguration getClientEngineConfig() {
+
+ // Used only on the server side
+ return null;
+ }
+
+ /**
+ * @see org.apache.axis.EngineConfigurationFactory#getServerEngineConfig()
+ */
+ public EngineConfiguration getServerEngineConfig() {
+
+ // Get the current SCA module context
+ AggregateContext moduleContext = tuscanyRuntime.getModuleComponentContext();
+ tuscanyRuntime.start();
+ try {
+
+ Module module = (Module)moduleContext.getAggregate();
+ AssemblyModelContext modelContext = module.getAssemblyModelContext();
+
+ // Load the .wsdd configuration
+ ResourceLoader bundleContext = modelContext.getApplicationResourceLoader();
+ InputStream wsdd;
+ try {
+ URL url = bundleContext.getResource("org/apache/tuscany/binding/axis/engine/config/server-config.wsdd");
+ wsdd = url.openStream();
+ } catch (IOException e1) {
+ throw new ServiceRuntimeException(e1);
+ }
+ FileProvider wsddConfigurationProvider = new FileProvider(wsdd);
+
+ // Create our dynamic configuration
+ SimpleProvider dynamicConfigurationProvider = new SimpleProvider(wsddConfigurationProvider);
+
+ // Register all the Web service entry points
+ for (Iterator i = module.getEntryPoints().iterator(); i.hasNext();) {
+ EntryPoint entryPoint = (EntryPoint) i.next();
+ Binding binding = (Binding) entryPoint.getBindings().get(0);
+ if (binding instanceof WebServiceBinding) {
+ //FIXME This should not use the proxy factory - use EntryPointContext#getInstance()
+ // Get the proxy factory associated with the entry point
+ final ProxyFactory proxyFactory=(ProxyFactory)entryPoint.getConfiguredService().getProxyFactory();
+
+ // Create a new SOAP service
+ SOAPService service = new SOAPService(new RPCProvider() {
+ protected Object makeNewServiceObject(MessageContext arg0, String arg1) throws Exception {
+
+ // The SOAP service will delegate to a dynamic proxy
+ return proxyFactory.createProxy();
+ }
+ });
+
+ // Get the WSDL definition and port
+ WebServiceBinding wsBinding = (WebServiceBinding) binding;
+ Definition definition=wsBinding.getWSDLDefinition();
+ Port port=wsBinding.getWSDLPort();
+ WebServicePortMetaData wsPortMetaData = new WebServicePortMetaData(definition, port, null, false);
+
+ // Configure the SOAP service
+ service.setOption(RPCProvider.OPTION_WSDL_TARGETNAMESPACE, wsPortMetaData.getPortName().getNamespaceURI());
+ service.setOption(RPCProvider.OPTION_WSDL_SERVICEELEMENT, wsPortMetaData.getServiceName().getLocalPart());
+ service.setOption(RPCProvider.OPTION_WSDL_SERVICEPORT, wsPortMetaData.getPortName().getLocalPart());
+ service.setOption(RPCProvider.OPTION_WSDL_PORTTYPE, wsPortMetaData.getPortTypeName().getLocalPart());
+ //FIXME RPCProvider is not happy if you don't give it a class name...
+ service.setOption(RPCProvider.OPTION_CLASSNAME, Object.class.getName());
+
+ // Create a service description
+ JavaServiceDesc serviceDesc = (JavaServiceDesc) service.getServiceDescription();
+ serviceDesc.setName(entryPoint.getName());
+ String wsdlFile = definition.getDocumentBaseURI();
+ if (wsdlFile.startsWith("file:"))
+ wsdlFile = wsdlFile.substring(5);
+ serviceDesc.setWSDLFile(wsdlFile);
+ serviceDesc.setDefaultNamespace(wsPortMetaData.getPortName().getNamespaceURI());
+ serviceDesc.setStyle(Style.DOCUMENT);
+ serviceDesc.setUse(Use.LITERAL);
+
+ // Get the service interface
+ Class serviceInterface=entryPoint.getConfiguredService().getService().getServiceContract().getInterface();
+ Set methods=JavaIntrospectionHelper.getAllUniqueMethods(serviceInterface);
+ serviceDesc.setAllowedMethods(new ArrayList(methods));
+
+ // Create a JAX-RPC service
+ QName wsdlServiceName = wsPortMetaData.getService().getQName();
+ Service jaxrpcService;
+ try {
+ URL url=new URL(wsBinding.getWSDLDefinition().getDocumentBaseURI());
+ jaxrpcService = ServiceFactory.newInstance().createService(url, wsdlServiceName);
+ } catch (ServiceException e) {
+ throw new ServiceUnavailableException(e);
+ } catch (MalformedURLException e) {
+ throw new ServiceUnavailableException(e);
+ }
+
+ // Create operation descriptions for all the operations
+ PortType wsdlPortType = wsPortMetaData.getPortType();
+ for (Iterator j = wsdlPortType.getOperations().iterator(); j.hasNext();) {
+ Operation wsdlOperation = (Operation) j.next();
+ String operationName = wsdlOperation.getName();
+
+ // Create a JAX RPC call object
+ QName portName = wsPortMetaData.getPortName();
+ org.apache.axis.client.Call call;
+ try {
+ call = (org.apache.axis.client.Call) jaxrpcService.createCall(portName, operationName);
+ } catch (ServiceException e) {
+ throw new IllegalArgumentException(e);
+ }
+
+ OperationDesc operationDesc = call.getOperation();
+ operationDesc.setName(operationName);
+ List argTypes=new ArrayList();
+ for (ParameterDesc parameterDesc : (List)operationDesc.getAllInParams()) {
+ argTypes.add(parameterDesc.getJavaType());
+ }
+ Method method=JavaIntrospectionHelper.findClosestMatchingMethod(operationName, argTypes.toArray(new Class[argTypes.size()]), methods);
+ operationDesc.setMethod(method);
+
+// OperationDesc operationDesc = new OperationDesc();
+// operationDesc.setName(operationName);
+// Method method=JavaIntrospectionHelper.findClosestMatchingMethod(operationName, new Class[]{String.class}, methods);
+// operationDesc.setMethod(method);
+//
+// WebServiceOperationMetaData wsOperationMetaData = wsPortMetaData.getOperationMetaData(operationName);
+// String soapAction = wsOperationMetaData.getSOAPAction();
+// if (soapAction != null && soapAction.length()!=0)
+// operationDesc.setSoapAction(soapAction);
+//
+// operationDesc.setElementQName((QName) wsOperationMetaData.getOperationSignature().get(0));
+//
+// Message inputMessage=wsdlOperation.getInput()!=null? wsdlOperation.getInput().getMessage():null;
+// if (inputMessage!=null & !inputMessage.getParts().isEmpty()) {
+// ParameterDesc parameterDesc = new ParameterDesc();
+// QName anyQName = new QName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "any");
+// parameterDesc.setTypeQName(anyQName);
+// parameterDesc.setQName(anyQName);
+// parameterDesc.setJavaType(Object.class);
+// operationDesc.addParameter(parameterDesc);
+// }
+//
+// Message outputMessage=wsdlOperation.getOutput()!=null? wsdlOperation.getOutput().getMessage():null;
+// if (outputMessage!=null & !outputMessage.getParts().isEmpty()) {
+// QName anyQName = new QName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "any");
+// operationDesc.setReturnType(anyQName);
+// operationDesc.setReturnQName(anyQName);
+// operationDesc.setReturnClass(Object.class);
+// }
+
+ serviceDesc.addOperationDesc(operationDesc);
+ }
+
+ // Deploy the service
+ dynamicConfigurationProvider.deployService(entryPoint.getName(), service);
+
+ }
+ }
+ return dynamicConfigurationProvider;
+
+ } finally {
+ tuscanyRuntime.stop();
+ }
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java
new file mode 100644
index 0000000000..9d024bb036
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java
@@ -0,0 +1,119 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.handler;
+
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.rmi.RemoteException;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceException;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.invocation.MethodHashMap;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.osoa.sca.ServiceRuntimeException;
+import org.osoa.sca.ServiceUnavailableException;
+
+/**
+ * A mock client for a transport binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class ExternalWebServiceClient {
+
+
+ private WebServicePortMetaData wsPortMetaData;
+ private Service jaxrpcService;
+ private Map jaxrpcCalls=new MethodHashMap();
+
+ /**
+ * Constructs a new ExternalWebServiceClient.
+ * @param externalService
+ * @param wsBinding
+ */
+ public ExternalWebServiceClient(ExternalService externalService, WebServiceBinding wsBinding) {
+
+ // Create a port metadata info object to hold the port information
+ wsPortMetaData = new WebServicePortMetaData(wsBinding.getWSDLDefinition(), wsBinding.getWSDLPort(), wsBinding.getURI(), false);
+
+ // Create a JAX-RPC service
+ QName wsdlServiceName = wsPortMetaData.getService().getQName();
+ try {
+ URL url=new URL(wsBinding.getWSDLDefinition().getDocumentBaseURI());
+ jaxrpcService = ServiceFactory.newInstance().createService(url, wsdlServiceName);
+ } catch (ServiceException e) {
+ throw new ServiceUnavailableException(e);
+ } catch (MalformedURLException e) {
+ throw new ServiceUnavailableException(e);
+ }
+
+ // Create JAX-RPC calls for all the methods on the service contract
+ Set methods=JavaIntrospectionHelper.getAllUniqueMethods(externalService.getConfiguredService().getService().getServiceContract().getInterface());
+ for (Method method : methods) {
+ Call call=createCall(method);
+ jaxrpcCalls.put(method, call);
+ }
+
+ }
+
+ /**
+ * Create a JAX-RPC call for the given method.
+ * @param method
+ * @return
+ */
+ private Call createCall(Method method) {
+
+ // Create a JAX RPC call object
+ QName portName = wsPortMetaData.getPortName();
+ Call call;
+ try {
+ call = (Call) jaxrpcService.createCall(portName, method.getName());
+ } catch (ServiceException e) {
+ throw new IllegalArgumentException(e);
+ }
+
+ // Set the target endpoint address
+ String endpoint = wsPortMetaData.getEndpoint();
+ if (endpoint != null) {
+ String originalEndpoint = call.getTargetEndpointAddress();
+ if (!endpoint.equals(originalEndpoint))
+ call.setTargetEndpointAddress(endpoint);
+ }
+
+ return call;
+ }
+
+ /**
+ * Invoke an operation on the external Web service.
+ * @param method
+ * @param args
+ * @return
+ */
+ public Object invoke(Method method, Object[] args) {
+ Call call=jaxrpcCalls.get(method);
+ try {
+ return call.invoke(args);
+ } catch (RemoteException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java
new file mode 100644
index 0000000000..64f33a1829
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java
@@ -0,0 +1,109 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.handler;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.core.context.ExternalServiceContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.invocation.Interceptor;
+import org.apache.tuscany.core.invocation.TargetInvoker;
+import org.apache.tuscany.core.message.Message;
+
+/**
+ * Responsible for invoking an external web service
+ *
+ * @version $Rev$ $Date$
+ */
+public class ExternalWebServiceTargetInvoker implements TargetInvoker {
+
+ private QualifiedName serviceName;
+ private String esName;
+ private Method method;
+ private ScopeContext container;
+
+ private ExternalServiceContext context;
+
+ /**
+ * Constructs a new ExternalWebServiceTargetInvoker.
+ * @param esName
+ * @param container
+ */
+ public ExternalWebServiceTargetInvoker(QualifiedName serviceName, Method method, ScopeContext container) {
+ assert (serviceName != null) : "No service name specified";
+ assert (method != null) : "No method specified";
+ assert (container != null) : "No scope container specified";
+ this.serviceName = serviceName;
+ this.esName=serviceName.getPartName();
+ this.method = method;
+ this.container = container;
+ }
+
+ public Object invokeTarget(Object payload) throws InvocationTargetException {
+ if (context == null) {
+ InstanceContext iContext = container.getContext(esName);
+ if (!(iContext instanceof ExternalServiceContext)) {
+ TargetException te = new TargetException("Unexpected target context type");
+ te.setIdentifier(iContext.getClass().getName());
+ te.addContextName(iContext.getName());
+ throw te;
+ }
+ context = (ExternalServiceContext) iContext;
+ }
+ ExternalWebServiceClient client = (ExternalWebServiceClient) context.getImplementationInstance(true);
+ if (payload != null) {
+ return client.invoke(method, (Object[])payload);
+ } else {
+ return client.invoke(method, null);
+ }
+ }
+
+ public boolean isCacheable() {
+ return false;
+ }
+
+ public Message invoke(Message msg) {
+ try {
+ Object resp = invokeTarget(msg.getBody());
+ msg.setBody(resp);
+ } catch (InvocationTargetException e) {
+ msg.setBody(e.getCause());
+ } catch (Throwable e) {
+ msg.setBody(e);
+ }
+ return msg;
+ }
+
+ public void setNext(Interceptor next) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object clone() {
+ try {
+ ExternalWebServiceTargetInvoker invoker = (ExternalWebServiceTargetInvoker) super.clone();
+ invoker.container = container;
+ invoker.context = this.context;
+ invoker.esName = this.esName;
+ invoker.method = this.method;
+ invoker.serviceName = this.serviceName;
+ return invoker;
+ } catch (CloneNotSupportedException e) {
+ return null; // will not happen
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java
new file mode 100644
index 0000000000..d3773ca415
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java
@@ -0,0 +1,82 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.handler;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.axis.AxisEngine;
+import org.apache.axis.AxisFault;
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.server.AxisServer;
+import org.apache.axis.transport.http.AxisServlet;
+
+import org.apache.tuscany.binding.axis.engine.config.AxisEngineConfigurationFactory;
+import org.apache.tuscany.core.context.webapp.TuscanyWebAppRuntime;
+
+/**
+ */
+public class WebServiceEntryPointServlet extends AxisServlet {
+
+ /**
+ *
+ */
+ public WebServiceEntryPointServlet() {
+ super();
+ }
+
+ /**
+ * @see org.apache.axis.transport.http.AxisServletBase#getEngine()
+ */
+ public AxisServer getEngine() throws AxisFault {
+ AxisServer engine = null;
+ ServletContext context = getServletContext();
+ synchronized (context) {
+ engine = (AxisServer) getServletContext().getAttribute(getServletName() + ".WebServiceEntryPointAxisEngine");
+ if (engine == null) {
+ Map environment = new HashMap();
+ environment.put(AxisEngine.ENV_SERVLET_CONTEXT, context);
+ String webInfPath = context.getRealPath("/WEB-INF");
+ if (webInfPath != null)
+ environment.put(AxisEngine.ENV_SERVLET_REALPATH, webInfPath + File.separator + "attachments");
+ TuscanyWebAppRuntime tuscanyRuntime = (TuscanyWebAppRuntime) context.getAttribute(TuscanyWebAppRuntime.class.getName());
+ EngineConfiguration config = new AxisEngineConfigurationFactory(tuscanyRuntime).getServerEngineConfig();
+ if (config != null) {
+ environment.put(EngineConfiguration.PROPERTY_NAME, config);
+ }
+ engine = AxisServer.getServer(environment);
+ engine.setName(getServletName());
+ context.setAttribute(getServletName() + ".WebServiceEntryPointAxisEngine", engine);
+ }
+ }
+ return engine;
+ }
+
+ /**
+ * @see org.apache.axis.transport.http.AxisServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ */
+ public void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
+ super.doPost(arg0, arg1);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java
new file mode 100644
index 0000000000..99aa62f78f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java
@@ -0,0 +1,484 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import javax.wsdl.Binding;
+import javax.wsdl.BindingInput;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingOutput;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.wsdl.extensions.soap.SOAPHeader;
+import javax.wsdl.extensions.soap.SOAPOperation;
+import javax.xml.namespace.QName;
+
+/**
+ * Metadata for a WSDL operation
+ *
+ */
+public class WebServiceOperationMetaData {
+ // WSDL Binding and BindingOperation
+ private Binding binding;
+ private BindingOperation bindingOperation;
+
+ // Fields to cache derived metadata
+ private transient Set inputHeaderParts;
+ private transient Set outputHeaderParts;
+ private transient String style;
+ private transient String use;
+ private transient String soapAction;
+ private transient List signature;
+ private String encoding;
+ private transient QName rpcOperationName;
+
+ public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation) {
+ this.binding = binding;
+ this.bindingOperation = bindingOperation;
+ }
+
+ public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation, String style, String use, String encoding, String soapAction) {
+ this.binding = binding;
+ this.bindingOperation = bindingOperation;
+ this.style = style;
+ this.use = use;
+ this.encoding = encoding;
+ this.soapAction = soapAction;
+ }
+
+ public Set getInputHeaderParts() {
+ if (inputHeaderParts == null) {
+ // Build a set of header parts that we need to exclude
+ inputHeaderParts = new HashSet();
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+
+ if (bindingInput != null) {
+ Operation operation = bindingOperation.getOperation();
+ javax.wsdl.Message message = operation.getInput().getMessage();
+ List elements = bindingInput.getExtensibilityElements();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object extensibilityElement = i.next();
+ Part part = getPartFromSOAPHeader(message, extensibilityElement);
+ if (part != null) {
+ inputHeaderParts.add(part);
+ }
+ }
+ }
+ }
+ return inputHeaderParts;
+ }
+
+ public Set getOutputHeaderParts() {
+ if (outputHeaderParts == null) {
+ // Build a set of header parts that we need to exclude
+ outputHeaderParts = new HashSet();
+ BindingOutput bindingOutput = bindingOperation.getBindingOutput();
+
+ if (bindingOutput != null) {
+ Operation operation = bindingOperation.getOperation();
+ javax.wsdl.Message message = operation.getOutput().getMessage();
+ List elements = bindingOutput.getExtensibilityElements();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object extensibilityElement = i.next();
+ Part part = getPartFromSOAPHeader(message, extensibilityElement);
+ if (part != null) {
+ outputHeaderParts.add(part);
+ }
+ }
+ }
+ }
+ return outputHeaderParts;
+ }
+
+ private Part getPartFromSOAPHeader(Message message, Object extensibilityElement) {
+ Part part = null;
+ if (extensibilityElement instanceof SOAPHeader) {
+ SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
+ QName msgName = soapHeader.getMessage();
+ if (message.getQName().equals(msgName)) {
+ part = message.getPart(soapHeader.getPart());
+ }
+ } else if (extensibilityElement instanceof SOAPHeader) {
+ SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
+ QName msgName = soapHeader.getMessage();
+ if (message.getQName().equals(msgName)) {
+ part = message.getPart(soapHeader.getPart());
+ }
+ }
+ return part;
+ }
+
+ public String getStyle() {
+ if (style == null) {
+ SOAPOperation soapOperation = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(bindingOperation.getExtensibilityElements(), SOAPOperation.class);
+ if (soapOperation != null)
+ style = soapOperation.getStyle();
+ if (style == null) {
+ SOAPBinding soapBinding = (SOAPBinding) WebServicePortMetaData.getExtensibilityElement(binding.getExtensibilityElements(), SOAPBinding.class);
+ if (soapBinding != null)
+ style = soapBinding.getStyle();
+ }
+ if (style == null)
+ style = "document";
+ }
+ return style;
+ }
+
+ /**
+ * Returns the SOAP action for the given operation.
+ *
+ * @param wsdlBindingOperation
+ * @return
+ */
+ public String getSOAPAction() {
+ if (soapAction == null) {
+ final List wsdlBindingOperationExtensions = bindingOperation.getExtensibilityElements();
+ final SOAPOperation soapOp = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(wsdlBindingOperationExtensions, SOAPOperation.class);
+ if (soapOp != null)
+ soapAction = soapOp.getSoapActionURI();
+ }
+ return soapAction;
+ }
+
+ public QName getRPCOperationName() {
+ if (rpcOperationName == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ String ns = (soapBody != null) ? soapBody.getNamespaceURI() : binding.getPortType().getQName().getNamespaceURI();
+ String name = bindingOperation.getOperation().getName();
+ rpcOperationName = new QName(ns, name);
+ }
+ return rpcOperationName;
+ }
+
+ private List getSOAPBodyParts(boolean input) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(input);
+ if (soapBody != null) {
+ List parts = soapBody.getParts();
+ if (parts!=null) {
+ List names = new ArrayList();
+ for (Iterator i = parts.iterator(); i.hasNext();) {
+ Object part = i.next();
+ if (part instanceof String)
+ names.add(part);
+ else if (part instanceof Part) {
+ names.add(((Part) part).getName());
+ }
+ }
+ return names;
+ } else
+ return null;
+ } else
+ return null;
+ }
+
+ private javax.wsdl.extensions.soap.SOAPBody getSOAPBody(boolean input) {
+ List elements = null;
+ if (input) {
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ if (bindingInput == null)
+ return null;
+ elements = bindingInput.getExtensibilityElements();
+ } else {
+ BindingOutput bindingOutput = bindingOperation.getBindingOutput();
+ if (bindingOutput == null)
+ return null;
+ elements = bindingOutput.getExtensibilityElements();
+ }
+ javax.wsdl.extensions.soap.SOAPBody soapBody = (javax.wsdl.extensions.soap.SOAPBody) WebServicePortMetaData.getExtensibilityElement(elements,
+ javax.wsdl.extensions.soap.SOAPBody.class);
+ return soapBody;
+ }
+
+ /**
+ * Returns the use attribute
+ *
+ * @param wsdlOperation
+ * @return
+ */
+ public String getUse() {
+ if (use == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ if (soapBody != null) {
+ use = soapBody.getUse();
+ }
+ if (use == null)
+ use = "literal";
+ }
+ return use;
+ }
+
+ public String getEncoding() {
+ if (encoding == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ if (soapBody != null) {
+ List styles=(List)soapBody.getEncodingStyles();
+ if (styles!=null && !styles.isEmpty())
+ encoding = styles.get(0);
+ }
+ if (encoding == null)
+ encoding = "";
+ }
+ return encoding;
+ }
+
+ public boolean isDocLitWrapped() {
+ boolean flag = getStyle().equals("document") && getUse().equals("literal");
+ if (!flag)
+ return false;
+ Message msg = getMessage(true);
+ if (msg == null)
+ return false;
+ List parts = msg.getOrderedParts(null);
+ if (parts.size() != 1)
+ return false;
+ Part part = (Part) parts.get(0);
+ QName element = part.getElementName();
+ if (element == null)
+ return false;
+ return element.getLocalPart().equals(bindingOperation.getOperation().getName());
+ }
+
+ /*
+ public SOAPMediator createMediator(boolean serverMode)
+ throws SOAPException {
+ // create a new mediator for each invoke for thread-safety
+ boolean rpcStyle = getStyle().equals("rpc");
+ boolean rpcEncoded = isEncoded();
+
+ SOAPMediator mediator = null;
+
+ if (!rpcStyle) {
+ // Document
+ mediator = new SOAPDocumentLiteralMediatorImpl(this, serverMode);
+ } else {
+ if (!rpcEncoded)
+ mediator = new SOAPRPCLiteralMediatorImpl(this, serverMode); // RPC-literal
+ else
+ mediator = new SOAPRPCEncodedMediatorImpl(this, serverMode); // RPC-encoded
+ }
+ return mediator;
+ }
+ */
+
+ /**
+ * Get the operation signature from the WSDL operation
+ *
+ * @param wsdlBinding
+ * @param bindingOperation
+ * @return
+ */
+ public List getOperationSignature() {
+ if (signature == null) {
+ signature = new ArrayList();
+
+ Operation operation = bindingOperation.getOperation();
+ if (operation == null)
+ return signature;
+
+ final Input input = operation.getInput();
+ if (input == null) {
+ return signature;
+ }
+
+ String style = getStyle();
+
+ if (style.equals("rpc")) {
+ Collection partNames = input.getMessage().getParts().values();
+ for (Iterator i = partNames.iterator(); i.hasNext();) {
+ Part part = (Part) i.next();
+ signature.add(part.getName());
+ }
+ } else {
+ /*
+ * WS-I Basic Profile 1.1 4.7.6 Operation Signatures
+ * Definition: operation signature
+ *
+ * The profile defines the "operation signature" to be the
+ * fully qualified name of the child element of SOAP body of
+ * the SOAP input message described by an operation in a
+ * WSDL binding.
+ *
+ * In the case of rpc-literal binding, the operation name is
+ * used as a wrapper for the part accessors. In the
+ * document-literal case, since a wrapper with the operation
+ * name is not present, the message signatures must be
+ * correctly designed so that they meet this requirement.
+ *
+ * An endpoint that supports multiple operations must
+ * unambiguously identify the operation being invoked based
+ * on the input message that it receives. This is only
+ * possible if all the operations specified in the
+ * wsdl:binding associated with an endpoint have a unique
+ * operation signature.
+ *
+ * R2710 The operations in a wsdl:binding in a DESCRIPTION
+ * MUST result in operation signatures that are different
+ * from one another.
+ */
+ List bodyParts = getSOAPBodyParts(true);
+
+ Collection parts = input.getMessage().getParts().values();
+ // Exclude the parts to be transmitted in SOAP header
+ if (bodyParts == null)
+ parts.removeAll(getInputHeaderParts());
+ for (Iterator i = parts.iterator(); i.hasNext();) {
+ Part part = (Part) i.next();
+ if (bodyParts == null) {
+ // All parts
+ QName elementName = part.getElementName();
+ if (elementName == null) {
+ elementName = new QName("", part.getName());
+ // TODO: [rfeng] throw new
+ // ServiceRuntimeException("Message part for
+ // document style must refer to an XSD element
+ // using a QName: " + part);
+ }
+ signature.add(elementName);
+ } else {
+ // "parts" in soap:body
+ if (bodyParts.contains(part.getName())) {
+ QName elementName = part.getElementName();
+ if (elementName == null) {
+ elementName = new QName("", part.getName());
+ // TODO: [rfeng] throw new
+ // ServiceRuntimeException("Message part for
+ // document style must refer to an XSD
+ // element using a QName: " + part);
+ }
+ signature.add(elementName);
+ }
+
+ }
+ }
+ }
+ }
+ return signature;
+ }
+
+ public Message getMessage(boolean isInput) {
+ Operation operation = bindingOperation.getOperation();
+ if (operation == null)
+ return null;
+
+ if (isInput) {
+ final Input input = operation.getInput();
+ return input == null ? null : input.getMessage();
+ } else {
+ final Output output = operation.getOutput();
+ return output == null ? null : output.getMessage();
+ }
+ }
+
+ public Part getInputPart(int index) {
+ Part part = null;
+ Message message = getMessage(true);
+ if (message == null)
+ return part;
+
+ List parts = message.getOrderedParts(null);
+ return (Part) parts.get(index);
+
+ }
+
+ public Part getOutputPart(int index) {
+ Part part = null;
+ Message message = getMessage(false);
+ if (message == null)
+ return part;
+
+ List parts = message.getOrderedParts(null);
+ return (Part) parts.get(index);
+
+ }
+
+ /**
+ * Get a list of indexes for each part in the SOAP body
+ *
+ * @param isInput TODO
+ * @return
+ */
+ public List getBodyPartIndexes(boolean isInput) {
+ List indexes = new ArrayList();
+
+ Message message = getMessage(isInput);
+ if (message == null)
+ return indexes;
+
+ List bodyParts = getSOAPBodyParts(isInput);
+ List parts = message.getOrderedParts(null);
+ Set headerParts = (isInput) ? getInputHeaderParts() : getOutputHeaderParts();
+
+ int index = 0;
+ for (Iterator i = parts.iterator(); i.hasNext(); index++) {
+ Part part = (Part) i.next();
+ if (headerParts.contains(part))
+ continue;
+ if (bodyParts == null) {
+ // All parts
+ indexes.add(new Integer(index));
+ } else {
+ // "parts" in soap:body
+ if (bodyParts.contains(part.getName()))
+ indexes.add(new Integer(index));
+
+ }
+ }
+ return indexes;
+ }
+
+ /**
+ * Get the corresponding index for a part in the SOAP header by element
+ * name
+ *
+ * @param elementName
+ * @param isInput TODO
+ * @return
+ */
+ public int getHeaderPartIndex(QName elementName, boolean isInput) {
+
+ Message message = getMessage(isInput);
+ if (message == null)
+ return -1;
+
+ List parts = message.getOrderedParts(null);
+ Set headerParts = isInput ? getInputHeaderParts() : getOutputHeaderParts();
+
+ int index = 0;
+ for (Iterator i = parts.iterator(); i.hasNext(); index++) {
+ Part part = (Part) i.next();
+ // Test if the part is in header section
+ if (headerParts.contains(part) && elementName.equals(part.getElementName())) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ public BindingOperation getBindingOperation() {
+ return bindingOperation;
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java
new file mode 100644
index 0000000000..9ce85d3ca8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java
@@ -0,0 +1,362 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.wsdl.Binding;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.wsdl.Service;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.xml.namespace.QName;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPElement;
+
+import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
+
+/**
+ * Metadata for a WSDL port
+ *
+ */
+public class WebServicePortMetaData {
+
+ private final static String SOAP_ENCODING_URI = "http://schemas.xmlsoap.org/wsdl/soap/";
+
+ private Service wsdlService;
+ private QName wsdlServiceName;
+ private Port wsdlPort;
+ private Binding wsdlBinding;
+ private QName wsdlPortName;
+ private PortType wsdlPortType;
+ private QName wsdlPortTypeName;
+ private String endpoint;
+ private boolean managed;
+ private List allOperationMetaData;
+ private WSDLServiceContract interfaceType;
+
+ /**
+ * Constructor
+ *
+ * @param wsdlDefinition
+ * @param portName
+ */
+ public WebServicePortMetaData(Definition wsdlDefinition, Port wsdlPort, String endpoint, boolean managed) {
+
+ // Lookup the named port
+ this.wsdlPort=wsdlPort;
+ wsdlPortName = new QName(wsdlDefinition.getTargetNamespace(), wsdlPort.getName());
+
+ Collection services=(Collection)wsdlDefinition.getServices().values();
+ for (Service service : services) {
+ if (service.getPorts().containsValue(wsdlPort)) {
+ wsdlService = service;
+ wsdlServiceName = service.getQName();
+ break;
+ }
+ }
+
+ // Save the binding
+ wsdlBinding = wsdlPort.getBinding();
+ if (wsdlBinding == null) {
+ throw new IllegalArgumentException("WSDL binding cannot be found for " + wsdlPortName);
+ }
+
+ // Save the portType
+ wsdlPortType = wsdlBinding.getPortType();
+ if (wsdlPortType == null) {
+ throw new IllegalArgumentException("WSDL portType cannot be found for " + wsdlPortName);
+ }
+ wsdlPortTypeName = wsdlPortType.getQName();
+
+ // Save the endpoint
+ this.endpoint = endpoint;
+
+ // Track if this endpoint is managed or not
+ this.managed = managed;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param serviceName
+ * @param portName
+ * @param portType
+ */
+ public WebServicePortMetaData(QName serviceName, String portName, QName portTypeName, String endpoint) {
+ wsdlServiceName = serviceName;
+ wsdlPortName = new QName(serviceName.getNamespaceURI(), portName);
+ wsdlPortTypeName = portTypeName;
+ this.endpoint = endpoint;
+ }
+
+ /**
+ * @return Returns the wsdlPort.
+ */
+ public javax.wsdl.Port getPort() {
+ return wsdlPort;
+ }
+
+ /**
+ * @return Returns the wsdlService.
+ */
+ public QName getServiceName() {
+ return wsdlServiceName;
+ }
+
+ /**
+ * @return Returns the wsdlService.
+ */
+ public javax.wsdl.Service getService() {
+ return wsdlService;
+ }
+
+ /**
+ * @return Returns the wsdlPortType.
+ */
+ public PortType getPortType() {
+ return wsdlPortType;
+ }
+
+ /**
+ * @return Returns the wsdlPortType.
+ */
+ public QName getPortTypeName() {
+ return wsdlPortTypeName;
+ }
+
+ /**
+ * @return Returns the wsdlBinding.
+ */
+ public Binding getBinding() {
+ return wsdlBinding;
+ }
+
+ /**
+ * @return Returns the wsdlPortName.
+ */
+ public QName getPortName() {
+ return wsdlPortName;
+ }
+
+ /**
+ * Returns the endpoint of a given port.
+ *
+ * @param wsdlPort
+ * @return
+ */
+ public String getEndpoint() {
+
+ // Return the specified endpoint
+ if (endpoint != null)
+ return endpoint;
+
+ // Find the target endpoint on the port
+ if (wsdlPort != null) {
+ final List wsdlPortExtensions = wsdlPort.getExtensibilityElements();
+ for (Iterator i = wsdlPortExtensions.iterator(); i.hasNext();) {
+ final Object extension = i.next();
+ if (extension instanceof SOAPAddress) {
+ final SOAPAddress address = (SOAPAddress) extension;
+ return address.getLocationURI();
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the SOAP binding style.
+ * @return
+ */
+ public String getStyle() {
+
+ // Find the binding style
+ String style = null;
+ if (wsdlBinding != null) {
+ final List wsdlBindingExtensions = wsdlBinding.getExtensibilityElements();
+ SOAPBinding soapBinding = (SOAPBinding) getExtensibilityElement(wsdlBindingExtensions, SOAPBinding.class);
+ if (soapBinding != null)
+ style = soapBinding.getStyle();
+ }
+
+ // Default to document
+ return (style == null) ? "document" : style;
+ }
+
+ /**
+ * Returns the use attribute
+ * @return
+ */
+ public String getUse() {
+ List list = getAllOperationMetaData();
+ WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
+ return operationMetaData.getUse();
+ }
+
+ /**
+ * Returns the encoding attribute
+ * @return
+ */
+ public String getEncoding() {
+ List list = getAllOperationMetaData();
+ WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
+ return operationMetaData.getEncoding();
+ }
+
+ /**
+ * @return Returns true if this is a managed web service.
+ */
+ public boolean isManaged() {
+ return managed;
+ }
+
+ /**
+ * Returns the first extensibility element of the given type.
+ * @param elements
+ * @param type
+ * @return
+ */
+ public static Object getExtensibilityElement(List elements, Class type) {
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object element = i.next();
+ if (type.isInstance(element))
+ return element;
+ }
+ return null;
+ }
+
+ /**
+ * Returns the extensibility elements of the given type.
+ * @param elements
+ * @param type
+ * @return
+ */
+ public static List getExtensibilityElements(List elements, Class type) {
+ List result = new ArrayList();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object element = i.next();
+ if (type.isInstance(element))
+ result.add(element);
+ }
+ return result;
+ }
+
+ /**
+ * Get the operation signature from the SOAP Body
+ * @param body
+ * @return A list of QNames
+ */
+ public static List getOperationSignature(javax.xml.soap.SOAPBody body) {
+ List signature = new ArrayList();
+ for (Iterator i = body.getChildElements(); i.hasNext();) {
+ Object child = i.next();
+ if (child instanceof SOAPBodyElement) {
+ Name name = ((SOAPBodyElement) child).getElementName();
+ QName qname = new QName(name.getURI(), name.getLocalName(), name.getPrefix());
+ signature.add(qname);
+ }
+ }
+ return signature;
+ }
+
+ public static List getRPCOperationSignature(javax.xml.soap.SOAPBody body) {
+ List signature = new ArrayList();
+ for (Iterator i = body.getChildElements(); i.hasNext();) {
+ Object child = i.next();
+ if (child instanceof SOAPBodyElement) {
+ SOAPBodyElement op = ((SOAPBodyElement) child);
+ for (Iterator j = op.getChildElements(); j.hasNext();) {
+ Object part = i.next();
+ if (part instanceof SOAPElement) {
+ SOAPElement p = (SOAPElement) part;
+ signature.add(p.getLocalName());
+ }
+ }
+ }
+ }
+ return signature;
+ }
+
+ public WebServiceOperationMetaData getOperationMetaData(javax.xml.soap.SOAPBody body) {
+ List s1 = getOperationSignature(body);
+ // List rpcParts = getRPCOperationSignature(body);
+ for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
+ WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
+
+ String style = descriptor.getStyle();
+
+ if (style.equals("document")) {
+ List s2 = descriptor.getOperationSignature();
+ if (s1.equals(s2))
+ return descriptor;
+ } else {
+ QName op1 = (QName) s1.get(0);
+ QName op2 = descriptor.getRPCOperationName();
+ if (op1.equals(op2)) {
+ /*
+ * // FIXME: [rfeng] We don't support method overloading
+ * List partNames = getOperationSignature(binding,
+ * bindingOperation); if (rpcParts.equals(partNames))
+ */
+ return descriptor;
+ }
+ }
+ }
+ return null;
+ }
+
+ public List getAllOperationMetaData() {
+ if (allOperationMetaData == null) {
+ allOperationMetaData = new ArrayList();
+ for (Iterator it = wsdlBinding.getBindingOperations().iterator(); it.hasNext();) {
+ final BindingOperation bindingOperation = (BindingOperation) it.next();
+ if (bindingOperation.getOperation() != null)
+ allOperationMetaData.add(new WebServiceOperationMetaData(wsdlBinding, bindingOperation));
+ }
+ }
+ return allOperationMetaData;
+ }
+
+ public WebServiceOperationMetaData getOperationMetaData(String operationName) {
+ for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
+ WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
+ String opName = descriptor.getBindingOperation().getOperation().getName();
+
+ if (opName.equals(operationName))
+ return descriptor;
+ }
+ return null;
+ }
+
+ /**
+ * Returns the WSDL service contract
+ * @return
+ */
+ public WSDLServiceContract getInterfaceType() {
+ return interfaceType;
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
new file mode 100644
index 0000000000..e60d77525f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
@@ -0,0 +1,74 @@
+package org.apache.tuscany.binding.axis.loader;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory;
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis.assembly.impl.WebServiceAssemblyFactoryImpl;
+import org.apache.tuscany.binding.axis.assembly.impl.WebServiceBindingImpl;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.core.loader.SCDLModelLoaderRegistry;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Destroy;
+
+/**
+ * Populates the assembly model from an SCDL model
+ */
+@org.osoa.sca.annotations.Scope("MODULE")
+public class WebServiceSCDLModelLoader implements SCDLModelLoader {
+
+ private RuntimeContext runtimeContext;
+ private SCDLModelLoaderRegistry loaderRegistry;
+ private WebServiceAssemblyFactory wsFactory;
+
+ /**
+ * Constructs a new WebServiceSCDLModelLoader.
+ */
+ public WebServiceSCDLModelLoader() {
+ this.wsFactory=new WebServiceAssemblyFactoryImpl();
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ // @Autowire
+ public void setLoaderRegistry(SCDLModelLoaderRegistry registry) {
+ this.loaderRegistry = registry;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addLoader(this);
+// loaderRegistry.registerLoader(this);
+ }
+
+ @Destroy
+ public void destroy() {
+ loaderRegistry.unregisterLoader(this);
+ }
+
+ /**
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
+ */
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
+ if (object instanceof org.apache.tuscany.model.scdl.WebServiceBinding) {
+ org.apache.tuscany.model.scdl.WebServiceBinding scdlBinding=(org.apache.tuscany.model.scdl.WebServiceBinding)object;
+ WebServiceBinding binding=wsFactory.createWebServiceBinding();
+ binding.setURI(scdlBinding.getUri());
+
+ // Set the port URI into the assembly binding, it'll be resolved in the initialize method
+ ((WebServiceBindingImpl)binding).setPortURI(scdlBinding.getPort());
+
+ return binding;
+
+ } else
+ return null;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/Messages.properties b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/Messages.properties
new file mode 100644
index 0000000000..ac3fc641e5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/Messages.properties
@@ -0,0 +1,28 @@
+# ====================================================================
+# Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ====================================================================
+
+# ====================================================================
+# To code developer:
+# Do NOT change the properties between this line and the
+# "%%% END OF TRANSLATED PROPERTIES %%%" line.
+# Make a new property name, append to the end of the file and change
+# the code to use the new property.
+# ====================================================================
+
+# =====================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# =====================================================================
+# NLS_MESSAGEFORMAT_ALL
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/engine/config/server-config.wsdd b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/engine/config/server-config.wsdd
new file mode 100644
index 0000000000..6790888ee6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/org/apache/tuscany/binding/axis/engine/config/server-config.wsdd
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/system.fragment b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/system.fragment
new file mode 100644
index 0000000000..ebfefa309a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/main/resources/system.fragment
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/WebServiceAssemblyLoaderTestCase.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/WebServiceAssemblyLoaderTestCase.java
new file mode 100644
index 0000000000..6c8b58b0d1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/WebServiceAssemblyLoaderTestCase.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis.loader.WebServiceSCDLModelLoader;
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.Binding;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.apache.tuscany.model.assembly.Module;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
+import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
+
+/**
+ */
+public class WebServiceAssemblyLoaderTestCase extends TestCase {
+
+ /**
+ *
+ */
+ public WebServiceAssemblyLoaderTestCase() {
+ super();
+ }
+
+ public void testLoader() {
+
+ ResourceLoader resourceLoader=new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
+ WebServiceSCDLModelLoader wsLoader=new WebServiceSCDLModelLoader();
+ List scdlLoaders=new ArrayList();
+ scdlLoaders.add(wsLoader);
+ AssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl(scdlLoaders);
+ AssemblyFactory assemblyFactory=new AssemblyFactoryImpl();
+ AssemblyModelContext modelContext=new AssemblyModelContextImpl(assemblyFactory, assemblyLoader, resourceLoader);
+
+ Module module = assemblyLoader.loadModule(getClass().getResource("sca.module").toString());
+ module.initialize(modelContext);
+
+ Assert.assertTrue(module.getName().equals("tuscany.binding.axis.assembly.tests.bigbank.account"));
+
+ Component component = module.getComponent("AccountServiceComponent");
+ Assert.assertTrue(component != null);
+
+ EntryPoint entryPoint = module.getEntryPoint("AccountService");
+ Assert.assertTrue(entryPoint != null);
+
+ ExternalService externalService = module.getExternalService("StockQuoteService");
+ Assert.assertTrue(externalService != null);
+
+ Binding binding = externalService.getBindings().get(0);
+ Assert.assertTrue(binding instanceof WebServiceBinding);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountReport.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountReport.java
new file mode 100644
index 0000000000..6ac32e9c9a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountReport.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.account;
+
+import java.util.List;
+
+/**
+ * @model
+ */
+
+public interface AccountReport {
+
+ /**
+ * @model type="services.account.AccountSummary"
+ */
+
+ List getAccountSummaries();
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.java
new file mode 100644
index 0000000000..58f842878d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.java
@@ -0,0 +1,25 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.account;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface AccountService {
+
+ public AccountReport getAccountReport(String customerID);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
new file mode 100644
index 0000000000..91fd5e0164
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.account;
+
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+
+import org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata.AccountDataService;
+import org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.stockquote.StockQuoteService;
+
+public class AccountServiceImpl implements AccountService {
+
+ @Property
+ public String currency = "USD";
+
+ @Reference
+ public AccountDataService accountDataService;
+ @Reference
+ public StockQuoteService stockQuoteService;
+
+ public AccountServiceImpl() {
+ }
+
+ public AccountReport getAccountReport(String customerID) {
+ return null;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountSummary.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountSummary.java
new file mode 100644
index 0000000000..85825013a2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountSummary.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.account;
+
+/**
+ * @model
+ */
+
+public interface AccountSummary {
+
+ /**
+ * @model
+ */
+ String getAccountNumber();
+
+ void setAccountNumber(String accountNumber);
+
+ /**
+ * @model
+ */
+ String getAccountType();
+
+ void setAccountType(String accountType);
+
+ /**
+ * @model
+ */
+ float getBalance();
+
+ void setBalance(float balance);
+}
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
new file mode 100644
index 0000000000..4242d2fcc7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata;
+
+public interface AccountDataService {
+
+ CheckingAccount getCheckingAccount(String customerID);
+
+ SavingsAccount getSavingsAccount(String customerID);
+
+ StockAccount getStockAccount(String customerID);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
new file mode 100644
index 0000000000..66ae034d9a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata;
+
+public class AccountDataServiceImpl implements AccountDataService {
+
+ public CheckingAccount getCheckingAccount(String customerID) {
+
+ CheckingAccount checkingAccount = new CheckingAccount();
+ checkingAccount.setAccountNumber(customerID + "_" + "CHA12345");
+ checkingAccount.setBalance(1500.0f);
+
+ return checkingAccount;
+ }
+
+ public SavingsAccount getSavingsAccount(String customerID) {
+
+ SavingsAccount savingsAccount = new SavingsAccount();
+ savingsAccount.setAccountNumber(customerID + "_" + "SAA12345");
+ savingsAccount.setBalance(1500.0f);
+
+ return savingsAccount;
+ }
+
+ public StockAccount getStockAccount(String customerID) {
+
+ StockAccount stockAccount = new StockAccount();
+ stockAccount.setAccountNumber(customerID + "_" + "STA12345");
+ stockAccount.setSymbol("IBM");
+ stockAccount.setQuantity(100);
+
+ return stockAccount;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
new file mode 100644
index 0000000000..6c48b7120a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata;
+
+public class CheckingAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
new file mode 100644
index 0000000000..718145feb5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata;
+
+public class SavingsAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/StockAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
new file mode 100644
index 0000000000..05f7644d80
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.accountdata;
+
+public class StockAccount {
+
+ private String accountNumber;
+ private String symbol;
+ private int quantity;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public String getSymbol() {
+ return symbol;
+ }
+
+ public void setSymbol(String symbol) {
+ this.symbol = symbol;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
new file mode 100644
index 0000000000..a1c8f131a1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/java/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
@@ -0,0 +1,24 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis.assembly.tests.bigbank.account.services.stockquote;
+
+public interface StockQuoteService {
+
+ public float getQuote(String symbol);
+}
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.wsdl
new file mode 100644
index 0000000000..921218c5b9
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/account/AccountService.wsdl
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
new file mode 100644
index 0000000000..9678d9d6ea
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/sca.module b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/sca.module
new file mode 100644
index 0000000000..7057907864
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/assembly/tests/sca.module
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ AccountExternalService
+
+
+
+
+
+ AccountExternalService
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLit.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLit.wsdl
new file mode 100644
index 0000000000..4aec526803
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLit.wsdl
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLitWrapped.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLitWrapped.wsdl
new file mode 100644
index 0000000000..7839d3ea71
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/DocLitWrapped.wsdl
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/RpcLit.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/RpcLit.wsdl
new file mode 100644
index 0000000000..8f94f9c66f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/RpcLit.wsdl
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/sca.module b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/sca.module
new file mode 100644
index 0000000000..7d8bb7861f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis/src/test/resources/org/apache/tuscany/binding/axis/mediator/tests/sca.module
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/LICENSE.txt b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/LICENSE.txt
new file mode 100644
index 0000000000..75b52484ea
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/pom.xml b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/pom.xml
new file mode 100644
index 0000000000..813a1765de
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/pom.xml
@@ -0,0 +1,130 @@
+
+
+
+
+ org.apache.tuscany
+ tuscany-sca
+ SNAPSHOT
+
+ 4.0.0
+ tuscany-binding-axis2
+ Tuscany Axis2 Binding
+ Implementation of the SCA Web Services binding using Axis2.
+ SNAPSHOT
+
+
+
+ jeremy
+ http://people.apache.org/~jboynes/maven2
+
+ true
+
+
+
+
+
+
+ org.apache.tuscany
+ tuscany-core
+ ${pom.version}
+ compile
+
+
+
+ axis2
+ axis2-core
+ 0.94
+ compile
+
+
+
+ ws-commons
+ ws-policy
+ SNAPSHOT
+ runtime
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.0
+ runtime
+
+
+
+ commons-codec
+ commons-codec
+ 1.3
+ runtime
+
+
+
+ axis
+ axis-wsdl4j
+ 1.2
+
+
+
+
+ stax
+ stax-api
+ 1.0
+ compile
+
+
+
+ woodstox
+ wstx-asl
+ 2.8.2
+ runtime
+
+
+
+ log4j
+ log4j
+ 1.2.12
+ runtime
+
+
+
+
+
+ tomcat
+ servlet-api
+ 5.0.18
+ provided
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceAssemblyFactory.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceAssemblyFactory.java
new file mode 100644
index 0000000000..2906435ac4
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceAssemblyFactory.java
@@ -0,0 +1,31 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly;
+
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+
+/**
+ * The Factory for the model.
+ */
+public interface WebServiceAssemblyFactory extends AssemblyFactory {
+
+ /**
+ * Returns a new WebServiceBinding.
+ */
+ WebServiceBinding createWebServiceBinding();
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceBinding.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceBinding.java
new file mode 100644
index 0000000000..6eabebd358
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/WebServiceBinding.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+
+import org.apache.tuscany.model.assembly.Binding;
+
+/**
+ * Represents a Web service binding.
+ */
+public interface WebServiceBinding extends Binding {
+
+ /**
+ * Returns the WSDL port defining this binding.
+ */
+ Port getWSDLPort();
+
+ /**
+ * Returns the WSDL definition containing the WSDL port.
+ * @return
+ */
+ Definition getWSDLDefinition();
+
+ /**
+ * Sets the WSDL port defining this binding.
+ */
+ void setWSDLPort(Port value);
+
+ /**
+ * Sets the WSDL definition containing the WSDL port.
+ * @param definition
+ */
+ void setWSDLDefinition(Definition definition);
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceAssemblyFactoryImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceAssemblyFactoryImpl.java
new file mode 100644
index 0000000000..7840ebf6ef
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceAssemblyFactoryImpl.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.impl;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceAssemblyFactory;
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
+
+/**
+ * An implementation of the model Factory.
+ */
+public class WebServiceAssemblyFactoryImpl extends AssemblyFactoryImpl implements WebServiceAssemblyFactory {
+
+ /**
+ * Creates an instance of the factory.
+ */
+ public WebServiceAssemblyFactoryImpl() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis2.assembly.WebServiceAssemblyFactory#createWebServiceBinding()
+ */
+ public WebServiceBinding createWebServiceBinding() {
+ return new WebServiceBindingImpl();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceBindingImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceBindingImpl.java
new file mode 100644
index 0000000000..d89055ff73
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/assembly/impl/WebServiceBindingImpl.java
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.impl.BindingImpl;
+
+/**
+ * An implementation of WebServiceBinding.
+ */
+public class WebServiceBindingImpl extends BindingImpl implements WebServiceBinding {
+
+ private Definition definition;
+ private Port port;
+ private String portURI;
+
+ /**
+ * Constructor
+ */
+ protected WebServiceBindingImpl() {
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis2.assembly.WebServiceBinding#getWSDLPort()
+ */
+ public Port getWSDLPort() {
+ return port;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis2.assembly.WebServiceBinding#setWSDLPort(javax.wsdl.Port)
+ */
+ public void setWSDLPort(Port value) {
+ checkNotFrozen();
+ this.port=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis2.assembly.WebServiceBinding#getWSDLDefinition()
+ */
+ public Definition getWSDLDefinition() {
+ return definition;
+ }
+
+ /**
+ * @see org.apache.tuscany.binding.axis2.assembly.WebServiceBinding#setWSDLDefinition(javax.wsdl.Definition)
+ */
+ public void setWSDLDefinition(Definition definition) {
+ checkNotFrozen();
+ this.definition=definition;
+ }
+
+ /**
+ * @param portURI The portURI to set.
+ */
+ public void setPortURI(String portURI) {
+ this.portURI = portURI;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.impl.BindingImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+ */
+ public void initialize(AssemblyModelContext modelContext) {
+ if (isInitialized())
+ return;
+ super.initialize(modelContext);
+
+ // Get the WSDL port namespace and name
+ if (port==null && portURI!=null) {
+ int h=portURI.indexOf('#');
+ String portNamespace=portURI.substring(0,h);
+ String portName=portURI.substring(h+1);
+
+ // Load the WSDL definitions for the given namespace
+ List definitions=modelContext.getAssemblyLoader().loadDefinitions(portNamespace);
+ if (definitions==null)
+ throw new IllegalArgumentException("Cannot find WSDL definition for "+portNamespace);
+ for (Definition definition: definitions) {
+
+ // Find the port with the given name
+ for (Service service : (Collection)definition.getServices().values()) {
+ Port port=service.getPort(portName);
+ if (port!=null) {
+ this.definition=definition;
+ this.port=port;
+ return;
+ }
+ }
+ }
+ throw new IllegalArgumentException("Cannot find WSDL port "+portURI);
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceConfigurationBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceConfigurationBuilder.java
new file mode 100644
index 0000000000..bae333ad85
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceConfigurationBuilder.java
@@ -0,0 +1,153 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.builder;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis2.config.ExternalWebServiceRuntimeConfiguration;
+import org.apache.tuscany.binding.axis2.handler.ExternalWebServiceClient;
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.Context;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.injection.SingletonObjectFactory;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.MethodHashMap;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.impl.InvokerInterceptor;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ServiceContract;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * Creates a RuntimeConfigurationBuilder for an external service configured with the {@link WebServiceBinding}
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("MODULE")
+public class ExternalWebServiceConfigurationBuilder implements RuntimeConfigurationBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ private ProxyFactoryFactory proxyFactoryFactory;
+
+ private MessageFactory messageFactory;
+
+ private RuntimeConfigurationBuilder policyBuilder;
+
+ public ExternalWebServiceConfigurationBuilder() {
+ }
+
+ @Init(eager = true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ /**
+ * Sets the factory used to construct proxies implmementing the business interface required by a reference
+ */
+ @Autowire
+ public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
+ this.proxyFactoryFactory = factory;
+ }
+
+ /**
+ * Sets the factory used to construct invocation messages
+ *
+ * @param msgFactory
+ */
+ @Autowire
+ public void setMessageFactory(MessageFactory msgFactory) {
+ this.messageFactory = msgFactory;
+ }
+
+ /**
+ * Sets a builder responsible for creating source-side and target-side invocation chains for a reference. The
+ * reference builder may be hierarchical, containing other child reference builders that operate on specific
+ * metadata used to construct and invocation chain.
+ *
+ * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
+ */
+ public void setPolicyBuilder(RuntimeConfigurationBuilder builder) {
+ policyBuilder = builder;
+ }
+
+ public void build(AssemblyModelObject object, Context context) throws BuilderException {
+ if (!(object instanceof ExternalService)) {
+ return;
+ }
+ ExternalService externalService = (ExternalService) object;
+ if (externalService.getBindings().size() < 1 || !(externalService.getBindings().get(0) instanceof WebServiceBinding)) {
+ return;
+ }
+
+ WebServiceBinding wsBinding=(WebServiceBinding)externalService.getBindings().get(0);
+
+ TypeHelper typeHelper=externalService.getAggregate().getAssemblyModelContext().getTypeHelper();
+ ExternalWebServiceClient externalWebServiceClient=new ExternalWebServiceClient(externalService, wsBinding, typeHelper);
+ ExternalWebServiceRuntimeConfiguration config = new ExternalWebServiceRuntimeConfiguration(externalService.getName(), new SingletonObjectFactory(externalWebServiceClient));
+
+ ConfiguredService configuredService = externalService.getConfiguredService();
+ Service service = configuredService.getService();
+ ServiceContract serviceContract = service.getServiceContract();
+ Map iConfigMap = new MethodHashMap();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
+ Set javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
+ for (Method method : javaMethods) {
+ InvocationConfiguration iConfig = new InvocationConfiguration(method);
+ iConfigMap.put(method, iConfig);
+ }
+ QualifiedName qName = new QualifiedName(externalService.getName() + "/" + service.getName());
+ ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
+ proxyFactory.setBusinessInterface(serviceContract.getInterface());
+ proxyFactory.setProxyConfiguration(pConfiguration);
+ config.addTargetProxyFactory(service.getName(), proxyFactory);
+ configuredService.setProxyFactory(proxyFactory);
+ if (policyBuilder != null) {
+ // invoke the reference builder to handle additional policy metadata
+ policyBuilder.build(configuredService, context);
+ }
+ // add tail interceptor
+ for (InvocationConfiguration iConfig : (Collection) iConfigMap.values()) {
+ iConfig.addTargetInterceptor(new InvokerInterceptor());
+ }
+
+ externalService.getConfiguredService().setRuntimeConfiguration(config);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceWireBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceWireBuilder.java
new file mode 100644
index 0000000000..4daf167d74
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceWireBuilder.java
@@ -0,0 +1,61 @@
+package org.apache.tuscany.binding.axis2.builder;
+
+import org.apache.tuscany.binding.axis2.config.ExternalWebServiceRuntimeConfiguration;
+import org.apache.tuscany.binding.axis2.handler.ExternalWebServiceTargetInvoker;
+import org.apache.tuscany.core.builder.BuilderConfigException;
+import org.apache.tuscany.core.builder.WireBuilder;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+@Scope("MODULE")
+public class ExternalWebServiceWireBuilder implements WireBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ /**
+ * Constructs a new ExternalWebServiceWireBuilder.
+ */
+ public ExternalWebServiceWireBuilder() {
+ super();
+ }
+
+ @Autowire
+ public void setRuntimeContext(RuntimeContext context) {
+ runtimeContext = context;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ public void connect(ProxyFactory sourceFactory, ProxyFactory targetFactory, Class targetType, boolean downScope, ScopeContext targetScopeContext) throws BuilderConfigException {
+ if (!(ExternalWebServiceRuntimeConfiguration.class.isAssignableFrom(targetType))) {
+ return;
+ }
+ for (InvocationConfiguration sourceInvocationConfig : sourceFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
+
+ ExternalWebServiceTargetInvoker invoker = new ExternalWebServiceTargetInvoker(sourceFactory.getProxyConfiguration().getTargetName(), sourceInvocationConfig.getMethod(), targetScopeContext);
+
+ // if (downScope) {
+ // // the source scope is shorter than the target, so the invoker can cache the target instance
+ // invoker.setCacheable(true);
+ // } else {
+ // invoker.setCacheable(false);
+ // }
+ sourceInvocationConfig.setTargetInvoker(invoker);
+ }
+
+ }
+
+ public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext)
+ throws BuilderConfigException {
+ //TODO implement
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/WebServiceEntryPointConfigurationBuilder.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/WebServiceEntryPointConfigurationBuilder.java
new file mode 100644
index 0000000000..a164f5bc44
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/WebServiceEntryPointConfigurationBuilder.java
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.builder;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis2.config.WebServiceEntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.builder.BuilderException;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.invocation.Interceptor;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.InvocationRuntimeException;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.TargetInvoker;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.message.Message;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ServiceContract;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+/**
+ * Creates a RuntimeConfigurationBuilder for an entry point configured with the {@link WebServiceBinding}
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("MODULE")
+public class WebServiceEntryPointConfigurationBuilder implements RuntimeConfigurationBuilder {
+
+ private RuntimeContext runtimeContext;
+
+ private ProxyFactoryFactory proxyFactoryFactory;
+
+ private MessageFactory messageFactory;
+
+ private RuntimeConfigurationBuilder policyBuilder;
+
+ public WebServiceEntryPointConfigurationBuilder() {
+ }
+
+ @Init(eager = true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ /**
+ * Sets the factory used to construct proxies implmementing the business interface required by a reference
+ */
+ @Autowire
+ public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
+ this.proxyFactoryFactory = factory;
+ }
+
+ /**
+ * Sets the factory used to construct invocation messages
+ *
+ * @param msgFactory
+ */
+ @Autowire
+ public void setMessageFactory(MessageFactory msgFactory) {
+ this.messageFactory = msgFactory;
+ }
+
+ /**
+ * Sets a builder responsible for creating source-side and target-side invocation chains for a reference. The
+ * reference builder may be hierarchical, containing other child reference builders that operate on specific
+ * metadata used to construct and invocation chain.
+ *
+ * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
+ */
+ public void setPolicyBuilder(RuntimeConfigurationBuilder builder) {
+ policyBuilder = builder;
+ }
+
+ public void build(AssemblyModelObject object, AggregateContext parentContext) throws BuilderException {
+ if (!(object instanceof EntryPoint)) {
+ return;
+ }
+ EntryPoint entryPoint = (EntryPoint) object;
+ if (entryPoint.getBindings().size() < 1 || !(entryPoint.getBindings().get(0) instanceof WebServiceBinding)) {
+ return;
+ }
+
+ EntryPointRuntimeConfiguration config = new WebServiceEntryPointRuntimeConfiguration(entryPoint.getName(), entryPoint.getConfiguredService().getService().getName(), messageFactory);
+
+ ConfiguredService configuredService = entryPoint.getConfiguredService();
+ Service service = configuredService.getService();
+ ServiceContract serviceContract = service.getServiceContract();
+ Map iConfigMap = new HashMap();
+ ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
+ Set javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
+ for (Method method : javaMethods) {
+ InvocationConfiguration iConfig = new InvocationConfiguration(method);
+ iConfigMap.put(method, iConfig);
+ }
+ QualifiedName qName = new QualifiedName(entryPoint.getConfiguredReference().getTargetConfiguredServices().get(0).getAggregatePart().getName() + "/" + service.getName());
+ ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
+ proxyFactory.setBusinessInterface(serviceContract.getInterface());
+ proxyFactory.setProxyConfiguration(pConfiguration);
+ config.addSourceProxyFactory(service.getName(), proxyFactory);
+ configuredService.setProxyFactory(proxyFactory);
+ if (policyBuilder != null) {
+ // invoke the reference builder to handle additional policy metadata
+ policyBuilder.build(configuredService, parentContext);
+ }
+ // add tail interceptor
+ for (InvocationConfiguration iConfig : (Collection) iConfigMap.values()) {
+ iConfig.addTargetInterceptor(new EntryPointInvokerInterceptor());
+ }
+ entryPoint.getConfiguredReference().setRuntimeConfiguration(config);
+ }
+
+ //FIXME same as the InvokerInterceptor except that it doesn't throw an exception in setNext
+ // For some reason another InvokerInterceptor is added after this one, need Jim to look into it
+ // and figure out why.
+ public class EntryPointInvokerInterceptor implements Interceptor {
+
+ public EntryPointInvokerInterceptor() {
+ }
+
+ public Message invoke(Message msg) throws InvocationRuntimeException {
+ TargetInvoker invoker = msg.getTargetInvoker();
+ if (invoker == null) {
+ throw new InvocationRuntimeException("No target invoker specified on message");
+ }
+ return invoker.invoke(msg);
+ }
+
+ public void setNext(Interceptor next) {
+ }
+
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/ExternalWebServiceRuntimeConfiguration.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/ExternalWebServiceRuntimeConfiguration.java
new file mode 100644
index 0000000000..c776e861e2
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/ExternalWebServiceRuntimeConfiguration.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.config;
+
+import org.apache.tuscany.core.builder.ObjectFactory;
+import org.apache.tuscany.core.builder.impl.BaseExternalServiceRuntimeConfiguration;
+
+/**
+ * Creates instances of {@link org.apache.tuscany.core.context.ExternalServiceContext} configured with the appropriate
+ * invocation chains and bindings. This implementation serves as a marker for
+ * {@link org.apache.tuscany.binding.axis2.builder.ExternalWebServiceWireBuilder}
+ *
+ * @version $Rev$ $Date$
+ */
+public class ExternalWebServiceRuntimeConfiguration extends BaseExternalServiceRuntimeConfiguration {
+
+ public ExternalWebServiceRuntimeConfiguration(String name, ObjectFactory objectFactory) {
+ super(name, objectFactory);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WebServiceEntryPointRuntimeConfiguration.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WebServiceEntryPointRuntimeConfiguration.java
new file mode 100644
index 0000000000..3038fa258e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WebServiceEntryPointRuntimeConfiguration.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.config;
+
+import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
+import org.apache.tuscany.core.message.MessageFactory;
+
+/**
+ * Creates instances of {@link org.apache.tuscany.core.context.EntryPointContext} configured with the appropriate
+ * invocation chains and bindings. This implementation serves as a marker for
+ * {@link org.apache.tuscany.binding.axis2.builder.WebServiceEntryPointWireBuilder}
+ *
+ * @version $Rev$ $Date$
+ */
+public class WebServiceEntryPointRuntimeConfiguration extends EntryPointRuntimeConfiguration {
+
+ public WebServiceEntryPointRuntimeConfiguration(String name, String serviceName, MessageFactory messageFactory) {
+ super(name, serviceName, messageFactory);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceClient.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceClient.java
new file mode 100644
index 0000000000..39bd26f72d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceClient.java
@@ -0,0 +1,143 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.lang.reflect.Method;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.FactoryConfigurationError;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.MessageContextConstants;
+import org.apache.axis2.om.OMElement;
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis2.util.AxiomHelper;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.osoa.sca.ServiceRuntimeException;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * An ExternalWebServiceClient using Axis2
+ */
+public class ExternalWebServiceClient {
+
+ private ExternalService externalService;
+ private TypeHelper typeHelper;
+ private WebServicePortMetaData wsPortMetaData;
+
+ /**
+ * Constructs a new ExternalWebServiceClient.
+ *
+ * @param externalService
+ * @param wsBinding
+ */
+ public ExternalWebServiceClient(ExternalService externalService, WebServiceBinding wsBinding, TypeHelper typeHelper) {
+ this.externalService = externalService;
+ this.typeHelper=typeHelper;
+ this.wsPortMetaData = new WebServicePortMetaData(wsBinding.getWSDLDefinition(), wsBinding.getWSDLPort(), wsBinding.getURI(), false);
+ }
+
+ /**
+ * Invoke an operation on the external Web service.
+ *
+ * @param method
+ * @param args
+ * @return
+ */
+ public Object invoke(Method method, Object[] args) {
+
+ ServiceClient serviceClient;
+ ClassLoader ccl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(ExternalWebServiceClient.class.getClassLoader());
+
+ serviceClient = createServiceClient(method);
+
+ } finally {
+ Thread.currentThread().setContextClassLoader(ccl);
+ }
+
+ String typeName = method.getName();
+ String typeNS = wsPortMetaData.getPortType().getQName().getNamespaceURI();
+
+ OMElement requestOM = AxiomHelper.toOMElement(typeHelper, args, new QName(typeNS, typeName));
+
+ OMElement responseOM;
+ ccl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(ExternalWebServiceClient.class.getClassLoader());
+
+ responseOM = serviceClient.sendReceive(requestOM);
+
+ } catch (AxisFault e) {
+ throw new ServiceRuntimeException(e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(ccl);
+ }
+
+ Object[] os = AxiomHelper.toObjects(typeHelper, responseOM);
+ Object response;
+ if (os == null || os.length < 1) {
+ response = null;
+ } else {
+ response = os[0];
+ }
+
+ return response;
+ }
+
+ private ServiceClient createServiceClient(Method method) throws FactoryConfigurationError {
+
+ /*
+ * TODO: Simlistic impl for now, needs to be redone. Should cache our ConfigurationContext and pass in on ServiceClient constructor, should
+ * probably use WSDL configured Axis2 OperationClient
+ */
+
+ Options options = new Options();
+
+ options.setProperty(Constants.Configuration.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE);
+
+ WebServiceOperationMetaData operationMetaData = wsPortMetaData.getOperationMetaData(method.getName());
+
+ EndpointReference targetEPR = new EndpointReference(wsPortMetaData.getEndpoint());
+ options.setTo(targetEPR);
+
+ String soapAction = operationMetaData.getSOAPAction();
+ if (soapAction != null) {
+ options.setSoapAction(soapAction);
+ }
+
+ // If use is encoded assume its an old style service and wont understand chunking
+ if ("encoded".equals(operationMetaData.getUse())) {
+ options.setProperty(MessageContextConstants.CHUNKED, Boolean.FALSE);
+ }
+
+ ServiceClient serviceClient;
+ try {
+ serviceClient = new ServiceClient();
+ } catch (org.apache.axis2.AxisFault e) {
+ throw new RuntimeException(e);
+ }
+
+ serviceClient.setOptions(options);
+
+ return serviceClient;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceTargetInvoker.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceTargetInvoker.java
new file mode 100644
index 0000000000..fcb2e2e944
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/ExternalWebServiceTargetInvoker.java
@@ -0,0 +1,110 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.core.context.ExternalServiceContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.context.ScopeContext;
+import org.apache.tuscany.core.context.TargetException;
+import org.apache.tuscany.core.invocation.Interceptor;
+import org.apache.tuscany.core.invocation.TargetInvoker;
+import org.apache.tuscany.core.message.Message;
+
+/**
+ * Responsible for invoking an external web service
+ *
+ * @version $Rev$ $Date$
+ */
+public class ExternalWebServiceTargetInvoker implements TargetInvoker {
+
+ private QualifiedName serviceName;
+ private String esName;
+ private Method method;
+ private ScopeContext container;
+
+ private ExternalServiceContext context;
+
+ /**
+ * Constructs a new ExternalWebServiceTargetInvoker.
+ * @param esName
+ * @param container
+ */
+ public ExternalWebServiceTargetInvoker(QualifiedName serviceName, Method method, ScopeContext container) {
+ assert (serviceName != null) : "No service name specified";
+ assert (method != null) : "No method specified";
+ assert (container != null) : "No scope container specified";
+ this.serviceName = serviceName;
+ this.esName=serviceName.getPartName();
+ this.method = method;
+ this.container = container;
+ }
+
+ public Object invokeTarget(Object payload) throws InvocationTargetException {
+ if (context == null) {
+ InstanceContext iContext = container.getContext(esName);
+ if (!(iContext instanceof ExternalServiceContext)) {
+ TargetException te = new TargetException("Unexpected target context type");
+ te.setIdentifier(iContext.getClass().getName());
+ te.addContextName(iContext.getName());
+ throw te;
+ }
+ context = (ExternalServiceContext) iContext;
+ }
+ ExternalWebServiceClient client = (ExternalWebServiceClient) context.getImplementationInstance(true);
+ if (payload != null) {
+ return client.invoke(method, (Object[])payload);
+ } else {
+ return client.invoke(method, null);
+ }
+ }
+
+ public boolean isCacheable() {
+ return false;
+ }
+
+ public Message invoke(Message msg) {
+ try {
+ Object resp = invokeTarget(msg.getBody());
+ msg.setBody(resp);
+ } catch (InvocationTargetException e) {
+ msg.setBody(e.getCause());
+ } catch (Throwable e) {
+ msg.setBody(e);
+ }
+ return msg;
+ }
+
+ public void setNext(Interceptor next) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object clone() {
+ try {
+ ExternalWebServiceTargetInvoker invoker = (ExternalWebServiceTargetInvoker) super.clone();
+ invoker.container = container;
+ invoker.context = this.context;
+ invoker.esName = this.esName;
+ invoker.method = this.method;
+ invoker.serviceName = this.serviceName;
+ return invoker;
+ } catch (CloneNotSupportedException e) {
+ return null; // will not happen
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
new file mode 100644
index 0000000000..f0f49d5654
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointInOutSyncMessageReceiver.java
@@ -0,0 +1,177 @@
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.ListIterator;
+
+import javax.wsdl.Part;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMDocument;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
+import org.apache.axis2.soap.SOAPBody;
+import org.apache.axis2.soap.SOAPEnvelope;
+import org.apache.axis2.soap.SOAPFactory;
+import org.apache.tuscany.binding.axis2.util.AxiomHelper;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EntryPointContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.sdo.helper.TypeHelperImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.wsdl.WSDLConstants;
+import org.eclipse.emf.common.util.UniqueEList;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+public class WebServiceEntryPointInOutSyncMessageReceiver extends AbstractInOutSyncMessageReceiver {
+ // public static final String MEP_URL = "http://www.w3.org/2004/08/wsdl/tuscany/in-out";
+ public static final String MEP_URL = WSDLConstants.MEP_URI_OUT_IN;
+
+ protected final AggregateContext moduleContext;
+
+ protected final EntryPoint entryPoint;
+ protected final EntryPointContext entryPointContext;
+
+ private final WebServicePortMetaData wsdlPortInfo;
+
+ /**
+ * Field log
+ */
+
+ /**
+ * Constructor WebServiceEntryPointInOutSyncMessageReceiver
+ *
+ * @param entryPoint
+ * @param moduleContext
+ * @param context
+ * @param wsdlPortInfo
+ */
+ public WebServiceEntryPointInOutSyncMessageReceiver(AggregateContext moduleContext, EntryPoint entryPoint, EntryPointContext context, WebServicePortMetaData wsdlPortInfo) {
+ this.moduleContext = moduleContext;
+ this.entryPoint = entryPoint;
+ this.entryPointContext= context;
+ this.wsdlPortInfo = wsdlPortInfo;
+ }
+
+ public void invokeBusinessLogic(MessageContext msgContext, MessageContext outMsgContext) throws AxisFault {
+
+ ClassLoader ccl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(entryPoint.getAggregate().getAssemblyModelContext().getApplicationResourceLoader().getClassLoader());
+
+ AxisOperation axisOperation = msgContext.getAxisOperation();
+ String axisOperationName= axisOperation.getName().getLocalPart();
+
+ TypeHelper typeHelper=entryPoint.getAggregate().getAssemblyModelContext().getTypeHelper();
+
+ OMElement requestOM = msgContext.getEnvelope().getBody().getFirstElement();
+ DataObject msgdo = AxiomHelper.toDataObject(typeHelper, requestOM);
+ // Sequence parmSeq = msgdo.getSequence("mixed");
+
+ requestOM = msgContext.getEnvelope().getBody().getFirstElement();
+ Object[] args = AxiomHelper.toObjects(typeHelper, requestOM);
+
+
+
+
+// ArrayList parms = new ArrayList(parmSeq.size());
+// for (int i = 0; i < parmSeq.size(); ++i) {
+// Object parmDO = (Object) parmSeq.getValue(i);// parm element
+// if (parmDO instanceof DataObject) {
+//
+// Sequence nn = ((DataObject) parmDO).getSequence("mixed");
+//
+// for (int j = 0; j < nn.size(); j++) {
+//
+// Object valueDO = (Object) nn.getValue(j); // data array s
+// if (valueDO instanceof DataObject) {
+//
+// Sequence seqVal = ((DataObject) valueDO).getSequence("mixed");
+// Object seqDO = seqVal.getValue(0);
+// if (seqDO instanceof String) {
+// parms.add(seqDO);
+// } else {
+// parms.add(valueDO); // no sure if this is right?
+//
+// }
+// }
+// }
+// }
+// }
+// Object[] args= parms.toArray(new Object[parms.size()]);
+ Class[] argsClazz= new Class[args.length];
+ for(int i= args.length -1; i> -1; --i){
+ argsClazz[i]= args[i].getClass();
+
+ }
+ Class clazz = entryPoint.getConfiguredService().getService().getServiceContract().getInterface();
+ Method operationMethod= clazz.getMethod(axisOperationName, argsClazz);
+
+
+ InvocationHandler handler = (InvocationHandler) entryPointContext.getImplementationInstance();
+
+
+ Object response = handler.invoke(null, operationMethod, args);
+
+
+ SOAPFactory fac = getSOAPFactory(msgContext);
+ SOAPEnvelope soapenv = fac.getDefaultEnvelope();
+ SOAPBody soapbody = soapenv.getBody();
+ //new SDO way....
+ QName responseTypeQN = getResponseTypeName(operationMethod.getName());
+ OMElement responseOM = AxiomHelper.toOMElement(typeHelper, new Object[] {response}, responseTypeQN);
+ soapbody.addChild(responseOM);
+
+
+
+ //Endof new SDO way
+
+
+
+
+
+ // se.addChild(sf.createText(response, true));
+ outMsgContext.setEnvelope(soapenv);
+ // outMsgContext.setAxisOperation(axisOperation);
+ // outMsgContext.setAxisService(msgContext.getAxisService());
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new AxisFault("Error creating DataObject from Soapenvelope. " + e.getClass() + " " + e.getMessage(), e);
+
+ } catch (Throwable e) {
+
+ e.printStackTrace();
+ throw new AxisFault("Error creating DataObject from Soapenvelope. " + e.getClass() + " " + e.getMessage(), e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(ccl);
+ }
+
+ }
+ protected QName getResponseTypeName(String operationName) {
+ WebServiceOperationMetaData op = wsdlPortInfo.getOperationMetaData(operationName);
+ Part part = op.getOutputPart(0);
+ QName elementName = part.getElementName();
+ return elementName;
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java
new file mode 100644
index 0000000000..cfcac3acdd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java
@@ -0,0 +1,480 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.wsdl.Definition;
+import javax.wsdl.Operation;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.SessionContext;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisServiceGroup;
+import org.apache.axis2.description.InOutAxisOperation;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPTransportUtils;
+import org.apache.axis2.transport.http.ListingAgent;
+import org.apache.axis2.transport.http.ServletBasedOutTransportInfo;
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EntryPointContext;
+import org.apache.tuscany.core.context.InstanceContext;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.model.assembly.Binding;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.Module;
+
+/**
+ * Class AxisServlet
+ */
+public class WebServiceEntryPointServlet
+ extends HttpServlet
+{
+
+ private static final long serialVersionUID = -2085869393709833372L;
+
+ private static final String CONFIGURATION_CONTEXT = "CONFIGURATION_CONTEXT";
+
+ public static final String SESSION_ID = "SessionId";
+
+ private ConfigurationContext configContext;
+
+ private AxisConfiguration axisConfiguration;
+
+ private ListingAgent lister;
+
+ private MessageContext createAndSetInitialParamsToMsgCtxt( Object sessionContext, MessageContext msgContext,
+ HttpServletResponse httpServletResponse,
+ HttpServletRequest httpServletRequest )
+ throws AxisFault
+ {
+ msgContext = new MessageContext();
+ msgContext.setConfigurationContext( configContext );
+ msgContext.setSessionContext( (SessionContext) sessionContext );
+ msgContext.setTransportIn( axisConfiguration.getTransportIn( new QName( Constants.TRANSPORT_HTTP ) ) );
+ msgContext.setTransportOut( axisConfiguration.getTransportOut( new QName( Constants.TRANSPORT_HTTP ) ) );
+
+ msgContext.setProperty( Constants.OUT_TRANSPORT_INFO, new ServletBasedOutTransportInfo( httpServletResponse ) );
+ msgContext.setProperty( MessageContext.TRANSPORT_HEADERS, getTransportHeaders( httpServletRequest ) );
+ msgContext.setProperty( SESSION_ID, httpServletRequest.getSession().getId() );
+
+ return msgContext;
+ }
+
+ public void destroy()
+ {
+ super.destroy();
+ }
+
+ /**
+ * Method doGet
+ *
+ * @param httpServletRequest
+ * @param httpServletResponse
+ * @throws ServletException
+ * @throws IOException
+ */
+ protected void doGet( HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse )
+ throws ServletException, IOException
+ {
+ MessageContext msgContext = null;
+ OutputStream out = null;
+
+ try
+ {
+ Object sessionContext = getSessionContext( httpServletRequest );
+ HashMap map = getHTTPParameters( httpServletRequest );
+
+ msgContext = createAndSetInitialParamsToMsgCtxt( sessionContext, msgContext, httpServletResponse,
+ httpServletRequest );
+ msgContext.setDoingREST( true );
+ msgContext.setServerSide( true );
+ out = httpServletResponse.getOutputStream();
+
+ boolean processed = HTTPTransportUtils.processHTTPGetRequest( msgContext, httpServletRequest
+ .getInputStream(), out, httpServletRequest.getContentType(), httpServletRequest
+ .getHeader( HTTPConstants.HEADER_SOAP_ACTION ), httpServletRequest.getRequestURL().toString(),
+ configContext, map );
+
+ if ( !processed )
+ {
+ lister.handle( httpServletRequest, httpServletResponse, out );
+ }
+ }
+ catch ( AxisFault e )
+ {
+ if ( msgContext != null )
+ {
+ handleFault( msgContext, out, e );
+ }
+ else
+ {
+ throw new ServletException( e );
+ }
+ }
+ catch ( Exception e )
+ {
+ throw new ServletException( e );
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ */
+
+ /**
+ * Method doPost
+ *
+ * @param req
+ * @param res
+ * @throws ServletException
+ * @throws IOException
+ */
+ protected void doPost( HttpServletRequest req, HttpServletResponse res )
+ throws ServletException, IOException
+ {
+ MessageContext msgContext = null;
+ OutputStream out = null;
+
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader mycl = getClass().getClassLoader();
+ try
+ {
+ if ( tccl != mycl )
+ {
+ Thread.currentThread().setContextClassLoader( mycl );
+ }
+ Object sessionContext = getSessionContext( req );
+
+ msgContext = createAndSetInitialParamsToMsgCtxt( sessionContext, msgContext, res, req );
+
+ // adding ServletContext into msgContext;
+ msgContext.setProperty( Constants.SERVLET_CONTEXT, sessionContext );
+ out = res.getOutputStream();
+ HTTPTransportUtils.processHTTPPostRequest( msgContext, req.getInputStream(), out, req.getContentType(), req
+ .getHeader( HTTPConstants.HEADER_SOAP_ACTION ), req.getRequestURL().toString() );
+
+ Object contextWritten = msgContext.getOperationContext().getProperty( Constants.RESPONSE_WRITTEN );
+
+ res.setContentType( "text/xml; charset=" + msgContext.getProperty( MessageContext.CHARACTER_SET_ENCODING ) );
+
+ if ( ( contextWritten == null ) || !Constants.VALUE_TRUE.equals( contextWritten ) )
+ {
+ res.setStatus( HttpServletResponse.SC_ACCEPTED );
+ }
+ }
+ catch ( AxisFault e )
+ {
+ if ( msgContext != null )
+ {
+ res.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+ handleFault( msgContext, out, e );
+ }
+ else
+ {
+ throw new ServletException( e );
+ }
+ }
+ finally
+ {
+ if ( tccl != mycl )
+ {
+ Thread.currentThread().setContextClassLoader( tccl );
+ }
+ }
+ }
+
+ private void handleFault( MessageContext msgContext, OutputStream out, AxisFault e )
+ throws AxisFault
+ {
+ msgContext.setProperty( MessageContext.TRANSPORT_OUT, out );
+
+ AxisEngine engine = new AxisEngine( configContext );
+ MessageContext faultContext = engine.createFaultMessageContext( msgContext, e );
+
+ engine.sendFault( faultContext );
+ }
+
+ /**
+ * Method init
+ *
+ * @param config
+ * @throws ServletException
+ */
+ public void init( ServletConfig config )
+ throws ServletException
+ {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader mycl = getClass().getClassLoader();
+ try
+ {
+ if ( tccl != mycl )
+ {
+ Thread.currentThread().setContextClassLoader( mycl );
+ }
+ configContext = initConfigContext( config );
+ initTuscany( configContext.getAxisConfiguration(), config );
+ lister = new ListingAgent( configContext );
+ axisConfiguration = configContext.getAxisConfiguration();
+ config.getServletContext().setAttribute( CONFIGURATION_CONTEXT, configContext );
+ }
+ catch ( Exception e )
+ {
+ e.printStackTrace();
+ throw new ServletException( e );
+ }
+ finally
+ {
+ if ( tccl != mycl )
+ {
+ Thread.currentThread().setContextClassLoader( tccl );
+ }
+ }
+ }
+
+ RuntimeContext getTuscanyWebAppRuntime( ServletConfig config )
+ {
+
+ Object ret = (RuntimeContext) ( config ).getServletContext()
+ .getAttribute( "org.apache.tuscany.core.runtime.RuntimeContext" );
+ if ( !( ret instanceof RuntimeContext ) )
+ {
+ RuntimeException rete = new RuntimeException( "Tuscany configuration not found! "
+ + ( ( ret == null ) ? "" : "unexpected class" + ret.getClass() ) );
+ rete.printStackTrace();//pretty majar make sure something gets logged.
+ throw rete;
+
+ }
+ return (RuntimeContext) ret;
+ }
+
+ void initTuscany( final AxisConfiguration axisConfig, ServletConfig config )
+ throws AxisFault
+ {
+
+ // Register all the Web service entry points
+ RuntimeContext tuscanyRuntime = getTuscanyWebAppRuntime( config );
+
+ // Get the current SCA module context
+
+ // AggregateContext moduleContext = (AggregateContext) tuscanyRuntime.getAggregate().getAssemblyModelContext();//getRootContext();//.getModuleComponentContext();
+ try
+ {
+ tuscanyRuntime.start();
+ AggregateContext moduleContext = tuscanyRuntime.getRootContext();
+ Module rootModule = (Module) moduleContext.getAggregate();
+
+ for ( Iterator m = rootModule.getComponents().iterator(); m.hasNext(); )
+ {
+ Module module = (Module) ( (Component) m.next() ).getComponentImplementation();
+
+ for ( Iterator i = module.getEntryPoints().iterator(); i.hasNext(); )
+ {
+ EntryPoint entryPoint = (EntryPoint) i.next();
+ final String epName = entryPoint.getName();
+
+ ServletContext servletContext = config.getServletContext();
+ AggregateContext moduleContext2 = (AggregateContext) servletContext
+ .getAttribute( "org.apache.tuscany.core.webapp.ModuleComponentContext" );
+ InstanceContext entryPointContext = moduleContext2.getContext( epName );
+
+ Binding binding = (Binding) entryPoint.getBindings().get( 0 );
+ if ( binding instanceof WebServiceBinding )
+ {
+
+ WebServiceBinding wsBinding = (WebServiceBinding) binding;
+ Definition definition = wsBinding.getWSDLDefinition();
+ Port port = wsBinding.getWSDLPort();
+ QName qname = new QName( definition.getTargetNamespace(), port.getName() );
+ if ( qname != null )
+ {
+
+ WebServicePortMetaData wsdlPortInfo = new WebServicePortMetaData( definition, port, null,
+ false );
+
+ WebServiceEntryPointInOutSyncMessageReceiver msgrec = new WebServiceEntryPointInOutSyncMessageReceiver(
+ moduleContext,
+ entryPoint,
+ (EntryPointContext) entryPointContext,
+ wsdlPortInfo );
+
+ AxisServiceGroup serviceGroup = new AxisServiceGroup( axisConfig );
+ axisConfig
+ .addMessageReceiver( WebServiceEntryPointInOutSyncMessageReceiver.MEP_URL, msgrec );
+ serviceGroup.setServiceGroupName( wsdlPortInfo.getServiceName().getLocalPart() );
+
+ // to create service from wsdl stream --->
+ // AxisServiceBuilder axisServiceBuilder = new AxisServiceBuilder();
+ // return axisServiceBuilder.getAxisService(in);
+
+ AxisService axisService = new AxisService( epName );
+ axisService.setParent( serviceGroup );
+ axisService.setServiceDescription( "Tuscany configured service EntryPoint name '" + epName
+ + "'" );
+ // axisService.setTargetNamespace(wsdlPortInfo.getPortName().getNamespaceURI());
+ axisService.addMessageReceiver( WebServiceEntryPointInOutSyncMessageReceiver.MEP_URL,
+ msgrec );
+
+ // Create operation descriptions for all the operations
+ PortType wsdlPortType = wsdlPortInfo.getPortType();
+ for ( Iterator j = wsdlPortType.getOperations().iterator(); j.hasNext(); )
+ {
+ Operation wsdlOperation = (Operation) j.next();
+ String operationName = wsdlOperation.getName();
+ AxisOperation axisOp = new InOutAxisOperation( new javax.xml.namespace.QName( qname
+ .getNamespaceURI(), operationName ) );
+ axisOp.setMessageReceiver( msgrec );
+ axisService.addOperation( axisOp );
+ axisOp.setMessageExchangePattern( WebServiceEntryPointInOutSyncMessageReceiver.MEP_URL );
+
+ axisConfig.addService( axisService );
+
+ }
+ axisConfig.addServiceGroup( serviceGroup );
+
+ }
+
+ }
+ }
+ }
+ }
+ finally
+ {
+ // tuscanyRuntime.stop();
+ }
+ }
+
+ /**
+ * Initialize the Axis configuration context
+ *
+ * @param config Servlet configuration
+ * @throws ServletException
+ */
+ protected ConfigurationContext initConfigContext( ServletConfig config )
+ throws ServletException
+ {
+ try
+ {
+ ServletContext context = config.getServletContext();
+ String repoDir = context.getRealPath( "/WEB-INF" );
+ ConfigurationContextFactory erfac = new ConfigurationContextFactory();
+ ConfigurationContext configContext = erfac.createConfigurationContextFromFileSystem( repoDir );
+ configContext.setProperty( Constants.CONTAINER_MANAGED, Constants.VALUE_TRUE );
+ configContext.setRootDir( new File( context.getRealPath( "/WEB-INF" ) ) );
+ return configContext;
+ }
+ catch ( Exception e )
+ {
+ throw new ServletException( e );
+ }
+ }
+
+ private HashMap getHTTPParameters( HttpServletRequest httpServletRequest )
+ {
+ HashMap map = new HashMap();
+ Enumeration enu = httpServletRequest.getParameterNames();
+
+ while ( enu.hasMoreElements() )
+ {
+ String name = (String) enu.nextElement();
+ String value = httpServletRequest.getParameter( name );
+
+ map.put( name, value );
+ }
+
+ return map;
+ }
+
+ private Object getSessionContext( HttpServletRequest httpServletRequest )
+ {
+ Object sessionContext = httpServletRequest.getSession( true ).getAttribute( Constants.SESSION_CONTEXT_PROPERTY );
+
+ if ( sessionContext == null )
+ {
+ sessionContext = new SessionContext( null );
+ httpServletRequest.getSession().setAttribute( Constants.SESSION_CONTEXT_PROPERTY, sessionContext );
+ }
+
+ return sessionContext;
+ }
+
+ private Map getTransportHeaders( HttpServletRequest req )
+ {
+ HashMap headerMap = new HashMap();
+ Enumeration headerNames = req.getHeaderNames();
+
+ while ( headerNames.hasMoreElements() )
+ {
+ String key = (String) headerNames.nextElement();
+ String value = req.getHeader( key );
+
+ headerMap.put( key, value );
+ }
+
+ return headerMap;
+ }
+ //RRFOO
+ //TODO get axis2.xml in
+ /*
+ *
+ // Get the current SCA module context
+ AggregateContext moduleContext = tuscanyRuntime.getModuleComponentContext();
+ tuscanyRuntime.start();
+ try {
+
+ Module module = (Module)moduleContext.getAggregate();
+ AssemblyModelContext modelContext = module.getAssemblyModelContext();
+
+ // Load the .wsdd configuration
+ ResourceLoader bundleContext = modelContext.getResourceLoader();
+ InputStream wsdd;
+ try {
+ URL url = bundleContext.getResource("org/apache/tuscany/binding/axis/engine/config/server-config.wsdd");
+ wsdd = url.openStream();
+ } catch (IOException e1) {
+ throw new ServiceRuntimeException(e1);
+ }
+
+ *
+ */
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceOperationMetaData.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceOperationMetaData.java
new file mode 100644
index 0000000000..04c05b95dd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceOperationMetaData.java
@@ -0,0 +1,484 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import javax.wsdl.Binding;
+import javax.wsdl.BindingInput;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingOutput;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.wsdl.extensions.soap.SOAPHeader;
+import javax.wsdl.extensions.soap.SOAPOperation;
+import javax.xml.namespace.QName;
+
+/**
+ * Metadata for a WSDL operation
+ *
+ */
+public class WebServiceOperationMetaData {
+ // WSDL Binding and BindingOperation
+ private Binding binding;
+ private BindingOperation bindingOperation;
+
+ // Fields to cache derived metadata
+ private transient Set inputHeaderParts;
+ private transient Set outputHeaderParts;
+ private transient String style;
+ private transient String use;
+ private transient String soapAction;
+ private transient List signature;
+ private String encoding;
+ private transient QName rpcOperationName;
+
+ public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation) {
+ this.binding = binding;
+ this.bindingOperation = bindingOperation;
+ }
+
+ public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation, String style, String use, String encoding, String soapAction) {
+ this.binding = binding;
+ this.bindingOperation = bindingOperation;
+ this.style = style;
+ this.use = use;
+ this.encoding = encoding;
+ this.soapAction = soapAction;
+ }
+
+ public Set getInputHeaderParts() {
+ if (inputHeaderParts == null) {
+ // Build a set of header parts that we need to exclude
+ inputHeaderParts = new HashSet();
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+
+ if (bindingInput != null) {
+ Operation operation = bindingOperation.getOperation();
+ javax.wsdl.Message message = operation.getInput().getMessage();
+ List elements = bindingInput.getExtensibilityElements();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object extensibilityElement = i.next();
+ Part part = getPartFromSOAPHeader(message, extensibilityElement);
+ if (part != null) {
+ inputHeaderParts.add(part);
+ }
+ }
+ }
+ }
+ return inputHeaderParts;
+ }
+
+ public Set getOutputHeaderParts() {
+ if (outputHeaderParts == null) {
+ // Build a set of header parts that we need to exclude
+ outputHeaderParts = new HashSet();
+ BindingOutput bindingOutput = bindingOperation.getBindingOutput();
+
+ if (bindingOutput != null) {
+ Operation operation = bindingOperation.getOperation();
+ javax.wsdl.Message message = operation.getOutput().getMessage();
+ List elements = bindingOutput.getExtensibilityElements();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object extensibilityElement = i.next();
+ Part part = getPartFromSOAPHeader(message, extensibilityElement);
+ if (part != null) {
+ outputHeaderParts.add(part);
+ }
+ }
+ }
+ }
+ return outputHeaderParts;
+ }
+
+ private Part getPartFromSOAPHeader(Message message, Object extensibilityElement) {
+ Part part = null;
+ if (extensibilityElement instanceof SOAPHeader) {
+ SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
+ QName msgName = soapHeader.getMessage();
+ if (message.getQName().equals(msgName)) {
+ part = message.getPart(soapHeader.getPart());
+ }
+ } else if (extensibilityElement instanceof SOAPHeader) {
+ SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
+ QName msgName = soapHeader.getMessage();
+ if (message.getQName().equals(msgName)) {
+ part = message.getPart(soapHeader.getPart());
+ }
+ }
+ return part;
+ }
+
+ public String getStyle() {
+ if (style == null) {
+ SOAPOperation soapOperation = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(bindingOperation.getExtensibilityElements(), SOAPOperation.class);
+ if (soapOperation != null)
+ style = soapOperation.getStyle();
+ if (style == null) {
+ SOAPBinding soapBinding = (SOAPBinding) WebServicePortMetaData.getExtensibilityElement(binding.getExtensibilityElements(), SOAPBinding.class);
+ if (soapBinding != null)
+ style = soapBinding.getStyle();
+ }
+ if (style == null)
+ style = "document";
+ }
+ return style;
+ }
+
+ /**
+ * Returns the SOAP action for the given operation.
+ *
+ * @param wsdlBindingOperation
+ * @return
+ */
+ public String getSOAPAction() {
+ if (soapAction == null) {
+ final List wsdlBindingOperationExtensions = bindingOperation.getExtensibilityElements();
+ final SOAPOperation soapOp = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(wsdlBindingOperationExtensions, SOAPOperation.class);
+ if (soapOp != null)
+ soapAction = soapOp.getSoapActionURI();
+ }
+ return soapAction;
+ }
+
+ public QName getRPCOperationName() {
+ if (rpcOperationName == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ String ns = (soapBody != null) ? soapBody.getNamespaceURI() : binding.getPortType().getQName().getNamespaceURI();
+ String name = bindingOperation.getOperation().getName();
+ rpcOperationName = new QName(ns, name);
+ }
+ return rpcOperationName;
+ }
+
+ private List getSOAPBodyParts(boolean input) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(input);
+ if (soapBody != null) {
+ List parts = soapBody.getParts();
+ if (parts!=null) {
+ List names = new ArrayList();
+ for (Iterator i = parts.iterator(); i.hasNext();) {
+ Object part = i.next();
+ if (part instanceof String)
+ names.add(part);
+ else if (part instanceof Part) {
+ names.add(((Part) part).getName());
+ }
+ }
+ return names;
+ } else
+ return null;
+ } else
+ return null;
+ }
+
+ private javax.wsdl.extensions.soap.SOAPBody getSOAPBody(boolean input) {
+ List elements = null;
+ if (input) {
+ BindingInput bindingInput = bindingOperation.getBindingInput();
+ if (bindingInput == null)
+ return null;
+ elements = bindingInput.getExtensibilityElements();
+ } else {
+ BindingOutput bindingOutput = bindingOperation.getBindingOutput();
+ if (bindingOutput == null)
+ return null;
+ elements = bindingOutput.getExtensibilityElements();
+ }
+ javax.wsdl.extensions.soap.SOAPBody soapBody = (javax.wsdl.extensions.soap.SOAPBody) WebServicePortMetaData.getExtensibilityElement(elements,
+ javax.wsdl.extensions.soap.SOAPBody.class);
+ return soapBody;
+ }
+
+ /**
+ * Returns the use attribute
+ *
+ * @param wsdlOperation
+ * @return
+ */
+ public String getUse() {
+ if (use == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ if (soapBody != null) {
+ use = soapBody.getUse();
+ }
+ if (use == null)
+ use = "literal";
+ }
+ return use;
+ }
+
+ public String getEncoding() {
+ if (encoding == null) {
+ javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
+ if (soapBody != null) {
+ List styles=(List)soapBody.getEncodingStyles();
+ if (styles!=null && !styles.isEmpty())
+ encoding = styles.get(0);
+ }
+ if (encoding == null)
+ encoding = "";
+ }
+ return encoding;
+ }
+
+ public boolean isDocLitWrapped() {
+ boolean flag = getStyle().equals("document") && getUse().equals("literal");
+ if (!flag)
+ return false;
+ Message msg = getMessage(true);
+ if (msg == null)
+ return false;
+ List parts = msg.getOrderedParts(null);
+ if (parts.size() != 1)
+ return false;
+ Part part = (Part) parts.get(0);
+ QName element = part.getElementName();
+ if (element == null)
+ return false;
+ return element.getLocalPart().equals(bindingOperation.getOperation().getName());
+ }
+
+ /*
+ public SOAPMediator createMediator(boolean serverMode)
+ throws SOAPException {
+ // create a new mediator for each invoke for thread-safety
+ boolean rpcStyle = getStyle().equals("rpc");
+ boolean rpcEncoded = isEncoded();
+
+ SOAPMediator mediator = null;
+
+ if (!rpcStyle) {
+ // Document
+ mediator = new SOAPDocumentLiteralMediatorImpl(this, serverMode);
+ } else {
+ if (!rpcEncoded)
+ mediator = new SOAPRPCLiteralMediatorImpl(this, serverMode); // RPC-literal
+ else
+ mediator = new SOAPRPCEncodedMediatorImpl(this, serverMode); // RPC-encoded
+ }
+ return mediator;
+ }
+ */
+
+ /**
+ * Get the operation signature from the WSDL operation
+ *
+ * @param wsdlBinding
+ * @param bindingOperation
+ * @return
+ */
+ public List getOperationSignature() {
+ if (signature == null) {
+ signature = new ArrayList();
+
+ Operation operation = bindingOperation.getOperation();
+ if (operation == null)
+ return signature;
+
+ final Input input = operation.getInput();
+ if (input == null) {
+ return signature;
+ }
+
+ String style = getStyle();
+
+ if (style.equals("rpc")) {
+ Collection partNames = input.getMessage().getParts().values();
+ for (Iterator i = partNames.iterator(); i.hasNext();) {
+ Part part = (Part) i.next();
+ signature.add(part.getName());
+ }
+ } else {
+ /*
+ * WS-I Basic Profile 1.1 4.7.6 Operation Signatures
+ * Definition: operation signature
+ *
+ * The profile defines the "operation signature" to be the
+ * fully qualified name of the child element of SOAP body of
+ * the SOAP input message described by an operation in a
+ * WSDL binding.
+ *
+ * In the case of rpc-literal binding, the operation name is
+ * used as a wrapper for the part accessors. In the
+ * document-literal case, since a wrapper with the operation
+ * name is not present, the message signatures must be
+ * correctly designed so that they meet this requirement.
+ *
+ * An endpoint that supports multiple operations must
+ * unambiguously identify the operation being invoked based
+ * on the input message that it receives. This is only
+ * possible if all the operations specified in the
+ * wsdl:binding associated with an endpoint have a unique
+ * operation signature.
+ *
+ * R2710 The operations in a wsdl:binding in a DESCRIPTION
+ * MUST result in operation signatures that are different
+ * from one another.
+ */
+ List bodyParts = getSOAPBodyParts(true);
+
+ Collection parts = input.getMessage().getParts().values();
+ // Exclude the parts to be transmitted in SOAP header
+ if (bodyParts == null)
+ parts.removeAll(getInputHeaderParts());
+ for (Iterator i = parts.iterator(); i.hasNext();) {
+ Part part = (Part) i.next();
+ if (bodyParts == null) {
+ // All parts
+ QName elementName = part.getElementName();
+ if (elementName == null) {
+ elementName = new QName("", part.getName());
+ // TODO: [rfeng] throw new
+ // ServiceRuntimeException("Message part for
+ // document style must refer to an XSD element
+ // using a QName: " + part);
+ }
+ signature.add(elementName);
+ } else {
+ // "parts" in soap:body
+ if (bodyParts.contains(part.getName())) {
+ QName elementName = part.getElementName();
+ if (elementName == null) {
+ elementName = new QName("", part.getName());
+ // TODO: [rfeng] throw new
+ // ServiceRuntimeException("Message part for
+ // document style must refer to an XSD
+ // element using a QName: " + part);
+ }
+ signature.add(elementName);
+ }
+
+ }
+ }
+ }
+ }
+ return signature;
+ }
+
+ public Message getMessage(boolean isInput) {
+ Operation operation = bindingOperation.getOperation();
+ if (operation == null)
+ return null;
+
+ if (isInput) {
+ final Input input = operation.getInput();
+ return input == null ? null : input.getMessage();
+ } else {
+ final Output output = operation.getOutput();
+ return output == null ? null : output.getMessage();
+ }
+ }
+
+ public Part getInputPart(int index) {
+ Part part = null;
+ Message message = getMessage(true);
+ if (message == null)
+ return part;
+
+ List parts = message.getOrderedParts(null);
+ return (Part) parts.get(index);
+
+ }
+
+ public Part getOutputPart(int index) {
+ Part part = null;
+ Message message = getMessage(false);
+ if (message == null)
+ return part;
+
+ List parts = message.getOrderedParts(null);
+ return (Part) parts.get(index);
+
+ }
+
+ /**
+ * Get a list of indexes for each part in the SOAP body
+ *
+ * @param isInput TODO
+ * @return
+ */
+ public List getBodyPartIndexes(boolean isInput) {
+ List indexes = new ArrayList();
+
+ Message message = getMessage(isInput);
+ if (message == null)
+ return indexes;
+
+ List bodyParts = getSOAPBodyParts(isInput);
+ List parts = message.getOrderedParts(null);
+ Set headerParts = (isInput) ? getInputHeaderParts() : getOutputHeaderParts();
+
+ int index = 0;
+ for (Iterator i = parts.iterator(); i.hasNext(); index++) {
+ Part part = (Part) i.next();
+ if (headerParts.contains(part))
+ continue;
+ if (bodyParts == null) {
+ // All parts
+ indexes.add(new Integer(index));
+ } else {
+ // "parts" in soap:body
+ if (bodyParts.contains(part.getName()))
+ indexes.add(new Integer(index));
+
+ }
+ }
+ return indexes;
+ }
+
+ /**
+ * Get the corresponding index for a part in the SOAP header by element
+ * name
+ *
+ * @param elementName
+ * @param isInput TODO
+ * @return
+ */
+ public int getHeaderPartIndex(QName elementName, boolean isInput) {
+
+ Message message = getMessage(isInput);
+ if (message == null)
+ return -1;
+
+ List parts = message.getOrderedParts(null);
+ Set headerParts = isInput ? getInputHeaderParts() : getOutputHeaderParts();
+
+ int index = 0;
+ for (Iterator i = parts.iterator(); i.hasNext(); index++) {
+ Part part = (Part) i.next();
+ // Test if the part is in header section
+ if (headerParts.contains(part) && elementName.equals(part.getElementName())) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ public BindingOperation getBindingOperation() {
+ return bindingOperation;
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java
new file mode 100644
index 0000000000..15eec4dc7e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java
@@ -0,0 +1,362 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.wsdl.Binding;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.wsdl.Service;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.xml.namespace.QName;
+//import javax.xml.soap.Name;
+//import javax.xml.soap.SOAPBodyElement;
+//import javax.xml.soap.SOAPElement;
+
+import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
+
+/**
+ * Metadata for a WSDL port
+ *
+ */
+public class WebServicePortMetaData {
+
+ private final static String SOAP_ENCODING_URI = "http://schemas.xmlsoap.org/wsdl/soap/";
+
+ private Service wsdlService;
+ private QName wsdlServiceName;
+ private Port wsdlPort;
+ private Binding wsdlBinding;
+ private QName wsdlPortName;
+ private PortType wsdlPortType;
+ private QName wsdlPortTypeName;
+ private String endpoint;
+ private boolean managed;
+ private List allOperationMetaData;
+ private WSDLServiceContract interfaceType;
+
+ /**
+ * Constructor
+ *
+ * @param wsdlDefinition
+ * @param portName
+ */
+ public WebServicePortMetaData(Definition wsdlDefinition, Port wsdlPort, String endpoint, boolean managed) {
+
+ // Lookup the named port
+ this.wsdlPort=wsdlPort;
+ wsdlPortName = new QName(wsdlDefinition.getTargetNamespace(), wsdlPort.getName());
+
+ Collection services=(Collection)wsdlDefinition.getServices().values();
+ for (Service service : services) {
+ if (service.getPorts().containsValue(wsdlPort)) {
+ wsdlService = service;
+ wsdlServiceName = service.getQName();
+ break;
+ }
+ }
+
+ // Save the binding
+ wsdlBinding = wsdlPort.getBinding();
+ if (wsdlBinding == null) {
+ throw new IllegalArgumentException("WSDL binding cannot be found for " + wsdlPortName);
+ }
+
+ // Save the portType
+ wsdlPortType = wsdlBinding.getPortType();
+ if (wsdlPortType == null) {
+ throw new IllegalArgumentException("WSDL portType cannot be found for " + wsdlPortName);
+ }
+ wsdlPortTypeName = wsdlPortType.getQName();
+
+ // Save the endpoint
+ this.endpoint = endpoint;
+
+ // Track if this endpoint is managed or not
+ this.managed = managed;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param serviceName
+ * @param portName
+ * @param portType
+ */
+ public WebServicePortMetaData(QName serviceName, String portName, QName portTypeName, String endpoint) {
+ wsdlServiceName = serviceName;
+ wsdlPortName = new QName(serviceName.getNamespaceURI(), portName);
+ wsdlPortTypeName = portTypeName;
+ this.endpoint = endpoint;
+ }
+
+ /**
+ * @return Returns the wsdlPort.
+ */
+ public javax.wsdl.Port getPort() {
+ return wsdlPort;
+ }
+
+ /**
+ * @return Returns the wsdlService.
+ */
+ public QName getServiceName() {
+ return wsdlServiceName;
+ }
+
+ /**
+ * @return Returns the wsdlService.
+ */
+ public javax.wsdl.Service getService() {
+ return wsdlService;
+ }
+
+ /**
+ * @return Returns the wsdlPortType.
+ */
+ public PortType getPortType() {
+ return wsdlPortType;
+ }
+
+ /**
+ * @return Returns the wsdlPortType.
+ */
+ public QName getPortTypeName() {
+ return wsdlPortTypeName;
+ }
+
+ /**
+ * @return Returns the wsdlBinding.
+ */
+ public Binding getBinding() {
+ return wsdlBinding;
+ }
+
+ /**
+ * @return Returns the wsdlPortName.
+ */
+ public QName getPortName() {
+ return wsdlPortName;
+ }
+
+ /**
+ * Returns the endpoint of a given port.
+ *
+ * @param wsdlPort
+ * @return
+ */
+ public String getEndpoint() {
+
+ // Return the specified endpoint
+ if (endpoint != null)
+ return endpoint;
+
+ // Find the target endpoint on the port
+ if (wsdlPort != null) {
+ final List wsdlPortExtensions = wsdlPort.getExtensibilityElements();
+ for (Iterator i = wsdlPortExtensions.iterator(); i.hasNext();) {
+ final Object extension = i.next();
+ if (extension instanceof SOAPAddress) {
+ final SOAPAddress address = (SOAPAddress) extension;
+ return address.getLocationURI();
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the SOAP binding style.
+ * @return
+ */
+ public String getStyle() {
+
+ // Find the binding style
+ String style = null;
+ if (wsdlBinding != null) {
+ final List wsdlBindingExtensions = wsdlBinding.getExtensibilityElements();
+ SOAPBinding soapBinding = (SOAPBinding) getExtensibilityElement(wsdlBindingExtensions, SOAPBinding.class);
+ if (soapBinding != null)
+ style = soapBinding.getStyle();
+ }
+
+ // Default to document
+ return (style == null) ? "document" : style;
+ }
+
+ /**
+ * Returns the use attribute
+ * @return
+ */
+ public String getUse() {
+ List list = getAllOperationMetaData();
+ WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
+ return operationMetaData.getUse();
+ }
+
+ /**
+ * Returns the encoding attribute
+ * @return
+ */
+ public String getEncoding() {
+ List list = getAllOperationMetaData();
+ WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
+ return operationMetaData.getEncoding();
+ }
+
+ /**
+ * @return Returns true if this is a managed web service.
+ */
+ public boolean isManaged() {
+ return managed;
+ }
+
+ /**
+ * Returns the first extensibility element of the given type.
+ * @param elements
+ * @param type
+ * @return
+ */
+ public static Object getExtensibilityElement(List elements, Class type) {
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object element = i.next();
+ if (type.isInstance(element))
+ return element;
+ }
+ return null;
+ }
+
+ /**
+ * Returns the extensibility elements of the given type.
+ * @param elements
+ * @param type
+ * @return
+ */
+ public static List getExtensibilityElements(List elements, Class type) {
+ List result = new ArrayList();
+ for (Iterator i = elements.iterator(); i.hasNext();) {
+ Object element = i.next();
+ if (type.isInstance(element))
+ result.add(element);
+ }
+ return result;
+ }
+
+ /**
+ * Get the operation signature from the SOAP Body
+ * @param body
+ * @return A list of QNames
+ */
+// public static List getOperationSignature(javax.xml.soap.SOAPBody body) {
+// List signature = new ArrayList();
+// for (Iterator i = body.getChildElements(); i.hasNext();) {
+// Object child = i.next();
+// if (child instanceof SOAPBodyElement) {
+// Name name = ((SOAPBodyElement) child).getElementName();
+// QName qname = new QName(name.getURI(), name.getLocalName(), name.getPrefix());
+// signature.add(qname);
+// }
+// }
+// return signature;
+// }
+
+// public static List getRPCOperationSignature(javax.xml.soap.SOAPBody body) {
+// List signature = new ArrayList();
+// for (Iterator i = body.getChildElements(); i.hasNext();) {
+// Object child = i.next();
+// if (child instanceof SOAPBodyElement) {
+// SOAPBodyElement op = ((SOAPBodyElement) child);
+// for (Iterator j = op.getChildElements(); j.hasNext();) {
+// Object part = i.next();
+// if (part instanceof SOAPElement) {
+// SOAPElement p = (SOAPElement) part;
+// signature.add(p.getLocalName());
+// }
+// }
+// }
+// }
+// return signature;
+// }
+
+// public WebServiceOperationMetaData getOperationMetaData(javax.xml.soap.SOAPBody body) {
+// List s1 = getOperationSignature(body);
+// // List rpcParts = getRPCOperationSignature(body);
+// for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
+// WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
+//
+// String style = descriptor.getStyle();
+//
+// if (style.equals("document")) {
+// List s2 = descriptor.getOperationSignature();
+// if (s1.equals(s2))
+// return descriptor;
+// } else {
+// QName op1 = (QName) s1.get(0);
+// QName op2 = descriptor.getRPCOperationName();
+// if (op1.equals(op2)) {
+// /*
+// * // FIXME: [rfeng] We don't support method overloading
+// * List partNames = getOperationSignature(binding,
+// * bindingOperation); if (rpcParts.equals(partNames))
+// */
+// return descriptor;
+// }
+// }
+// }
+// return null;
+// }
+
+ public List getAllOperationMetaData() {
+ if (allOperationMetaData == null) {
+ allOperationMetaData = new ArrayList();
+ for (Iterator it = wsdlBinding.getBindingOperations().iterator(); it.hasNext();) {
+ final BindingOperation bindingOperation = (BindingOperation) it.next();
+ if (bindingOperation.getOperation() != null)
+ allOperationMetaData.add(new WebServiceOperationMetaData(wsdlBinding, bindingOperation));
+ }
+ }
+ return allOperationMetaData;
+ }
+
+ public WebServiceOperationMetaData getOperationMetaData(String operationName) {
+ for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
+ WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
+ String opName = descriptor.getBindingOperation().getOperation().getName();
+
+ if (opName.equals(operationName))
+ return descriptor;
+ }
+ return null;
+ }
+
+ /**
+ * Returns the WSDL service contract
+ * @return
+ */
+ public WSDLServiceContract getInterfaceType() {
+ return interfaceType;
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/loader/WebServiceSCDLModelLoader.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/loader/WebServiceSCDLModelLoader.java
new file mode 100644
index 0000000000..d587a4680f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/loader/WebServiceSCDLModelLoader.java
@@ -0,0 +1,74 @@
+package org.apache.tuscany.binding.axis2.loader;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceAssemblyFactory;
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis2.assembly.impl.WebServiceAssemblyFactoryImpl;
+import org.apache.tuscany.binding.axis2.assembly.impl.WebServiceBindingImpl;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.apache.tuscany.core.loader.SCDLModelLoaderRegistry;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Destroy;
+
+/**
+ * Populates the assembly model from an SCDL model
+ */
+@org.osoa.sca.annotations.Scope("MODULE")
+public class WebServiceSCDLModelLoader implements SCDLModelLoader {
+
+ private RuntimeContext runtimeContext;
+ private SCDLModelLoaderRegistry loaderRegistry;
+ private WebServiceAssemblyFactory wsFactory;
+
+ /**
+ * Constructs a new WebServiceSCDLModelLoader.
+ */
+ public WebServiceSCDLModelLoader() {
+ this.wsFactory=new WebServiceAssemblyFactoryImpl();
+ }
+
+ /**
+ * @param runtimeContext The runtimeContext to set.
+ */
+ @Autowire
+ public void setRuntimeContext(RuntimeContext runtimeContext) {
+ this.runtimeContext = runtimeContext;
+ }
+
+ // @Autowire
+ public void setLoaderRegistry(SCDLModelLoaderRegistry registry) {
+ this.loaderRegistry = registry;
+ }
+
+ @Init(eager=true)
+ public void init() {
+ runtimeContext.addLoader(this);
+// loaderRegistry.registerLoader(this);
+ }
+
+ @Destroy
+ public void destroy() {
+ loaderRegistry.unregisterLoader(this);
+ }
+
+ /**
+ * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
+ */
+ public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
+ if (object instanceof org.apache.tuscany.model.scdl.WebServiceBinding) {
+ org.apache.tuscany.model.scdl.WebServiceBinding scdlBinding=(org.apache.tuscany.model.scdl.WebServiceBinding)object;
+ WebServiceBinding binding=wsFactory.createWebServiceBinding();
+ binding.setURI(scdlBinding.getUri());
+
+ // Set the port URI into the assembly binding, it'll be resolved in the initialize method
+ ((WebServiceBindingImpl)binding).setPortURI(scdlBinding.getPort());
+
+ return binding;
+
+ } else
+ return null;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java
new file mode 100644
index 0000000000..3df1a4104d
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java
@@ -0,0 +1,185 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.util;
+
+import java.io.IOException;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMXMLParserWrapper;
+import org.apache.axis2.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.tuscany.sdo.helper.DataFactoryImpl;
+import org.apache.tuscany.sdo.helper.XMLHelperImpl;
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.osoa.sca.ServiceRuntimeException;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * Utility methods to convert between Axis2 AXIOM, SDO DataObjects and Java objects.
+ *
+ * Most of these methods rely on the schemas having been registered with XSDHelper.define
+ */
+public class AxiomHelper {
+
+ /**
+ * Deserialize an OMElement into Java Objects
+ *
+ * @param om
+ * the OMElement
+ * @return the array of deserialized Java objects
+ */
+ public static Object[] toObjects(TypeHelper typeHelper, OMElement om) {
+ DataObject dataObject = toDataObject(typeHelper, om);
+ Object[] os = toObjects(dataObject);
+ return os;
+ }
+
+ /**
+ * Convert a typed DataObject to Java objects
+ *
+ * @param dataObject
+ * @return the array of Objects from the DataObject
+ */
+ public static Object[] toObjects(DataObject dataObject) {
+ List ips = dataObject.getInstanceProperties();
+ Object[] os = new Object[ips.size()];
+ for (int i = 0; i < ips.size(); i++) {
+ os[i] = dataObject.get((Property) ips.get(i));
+ }
+ return os;
+ }
+
+ /**
+ * Convert objects to an AXIOM OMElement
+ *
+ * @param os
+ * @param typeNS
+ * @param typeName
+ * @return an AXIOM OMElement
+ */
+ public static OMElement toOMElement(TypeHelper typeHelper, Object[] os, QName typeQN) {
+ DataObject dataObject = toDataObject(typeHelper, os, typeQN);
+ OMElement omElement = toOMElement(typeHelper, dataObject, typeQN);
+ return omElement;
+ }
+
+ /**
+ * Convert a DataObject to AXIOM OMElement
+ *
+ * @param dataObject
+ * @param typeNS
+ * @param typeName
+ * @return
+ * @throws XMLStreamException
+ * @throws IOException
+ */
+ public static OMElement toOMElement(TypeHelper typeHelper, DataObject dataObject, QName typeQN) {
+ try {
+
+ PipedOutputStream pos = new PipedOutputStream();
+ PipedInputStream pis = new PipedInputStream(pos);
+ new XMLHelperImpl(typeHelper).save(dataObject, typeQN.getNamespaceURI(), typeQN.getLocalPart(), pos);
+ pos.close();
+
+ XMLStreamReader parser;
+ ClassLoader ccl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(AxiomHelper.class.getClassLoader());
+ parser = XMLInputFactory.newInstance().createXMLStreamReader(pis);
+ } finally {
+ Thread.currentThread().setContextClassLoader(ccl);
+ }
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getOMFactory(), parser);
+ OMElement root = builder.getDocumentElement();
+
+ return root;
+
+ } catch (IOException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (XMLStreamException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (FactoryConfigurationError e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
+ /**
+ * Deserialize an AXIOM OMElement into a DataObject
+ *
+ * @param omElement
+ * @return
+ */
+ public static DataObject toDataObject(TypeHelper typeHelper, OMElement omElement) {
+ try {
+
+ PipedOutputStream pos = new PipedOutputStream();
+ PipedInputStream pis = new PipedInputStream(pos);
+
+ ClassLoader ccl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(AxiomHelper.class.getClassLoader());
+ omElement.serialize(pos);
+ } finally {
+ Thread.currentThread().setContextClassLoader(ccl);
+ }
+
+ pos.flush();
+ pos.close();
+
+ XMLDocument document = new XMLHelperImpl(typeHelper).load(pis);
+
+ return document.getRootObject();
+
+ } catch (IOException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (XMLStreamException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
+ /**
+ * Convert objects to typed DataObject
+ *
+ * @param typeNS
+ * @param typeName
+ * @param os
+ * @return the DataObject
+ */
+ public static DataObject toDataObject(TypeHelper typeHelper, Object[] os, QName typeQN) {
+ XSDHelper xsdHelper=new XSDHelperImpl(typeHelper);
+ Property property=xsdHelper.getGlobalProperty(typeQN.getNamespaceURI(), typeQN.getLocalPart(), true);
+ DataObject dataObject = new DataFactoryImpl(typeHelper).create(property.getType());
+ List ips = dataObject.getInstanceProperties();
+ for (int i = 0; i < ips.size(); i++) {
+ Property p = (Property) ips.get(i);
+ dataObject.set(i, os[i]);
+ }
+ return dataObject;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/org/apache/tuscany/binding/axis2/engine/config/axis2.xml b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/org/apache/tuscany/binding/axis2/engine/config/axis2.xml
new file mode 100644
index 0000000000..d42457fdf6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/org/apache/tuscany/binding/axis2/engine/config/axis2.xml
@@ -0,0 +1,167 @@
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+ admin
+ axis2
+
+ .
+
+ 127.0.0.1
+ 5555
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6060
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HTTP/1.1
+ chunked
+
+
+ HTTP/1.1
+ chunked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/system.fragment b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/system.fragment
new file mode 100644
index 0000000000..cef83e6d65
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/main/resources/system.fragment
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/WebServiceAssemblyLoaderTestCase.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/WebServiceAssemblyLoaderTestCase.java
new file mode 100644
index 0000000000..b9abe418ca
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/WebServiceAssemblyLoaderTestCase.java
@@ -0,0 +1,87 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
+import org.apache.tuscany.binding.axis2.loader.WebServiceSCDLModelLoader;
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.model.assembly.AssemblyFactory;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.Binding;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.ExternalService;
+import org.apache.tuscany.model.assembly.Module;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
+import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
+import org.apache.tuscany.model.assembly.loader.AssemblyModelLoader;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
+
+/**
+ */
+public class WebServiceAssemblyLoaderTestCase extends TestCase {
+
+ /**
+ *
+ */
+ public WebServiceAssemblyLoaderTestCase() {
+ super();
+ }
+
+ public void testLoader() {
+
+ ResourceLoader resourceLoader=new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
+ WebServiceSCDLModelLoader wsLoader=new WebServiceSCDLModelLoader();
+ List scdlLoaders=new ArrayList();
+ scdlLoaders.add(wsLoader);
+ AssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl(scdlLoaders);
+ AssemblyFactory assemblyFactory=new AssemblyFactoryImpl();
+ AssemblyModelContext modelContext=new AssemblyModelContextImpl(assemblyFactory, assemblyLoader, resourceLoader);
+
+ Module module = assemblyLoader.loadModule(getClass().getResource("sca.module").toString());
+ module.initialize(modelContext);
+
+ Assert.assertTrue(module.getName().equals("tuscany.binding.axis2.assembly.tests.bigbank.account"));
+
+ Component component = module.getComponent("AccountServiceComponent");
+ Assert.assertTrue(component != null);
+
+ EntryPoint entryPoint = module.getEntryPoint("AccountService");
+ Assert.assertTrue(entryPoint != null);
+
+ ExternalService externalService = module.getExternalService("StockQuoteService");
+ Assert.assertTrue(externalService != null);
+
+ Binding binding = externalService.getBindings().get(0);
+ Assert.assertTrue(binding instanceof WebServiceBinding);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountReport.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountReport.java
new file mode 100644
index 0000000000..a50594a243
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountReport.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.account;
+
+import java.util.List;
+
+/**
+ * @model
+ */
+
+public interface AccountReport {
+
+ /**
+ * @model type="services.account.AccountSummary"
+ */
+
+ List getAccountSummaries();
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.java
new file mode 100644
index 0000000000..241a11333f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.java
@@ -0,0 +1,25 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.account;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface AccountService {
+
+ public AccountReport getAccountReport(String customerID);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
new file mode 100644
index 0000000000..8e66b18324
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountServiceImpl.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.account;
+
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+
+import org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata.AccountDataService;
+import org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.stockquote.StockQuoteService;
+
+public class AccountServiceImpl implements AccountService {
+
+ @Property
+ public String currency = "USD";
+
+ @Reference
+ public AccountDataService accountDataService;
+ @Reference
+ public StockQuoteService stockQuoteService;
+
+ public AccountServiceImpl() {
+ }
+
+ public AccountReport getAccountReport(String customerID) {
+ return null;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountSummary.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountSummary.java
new file mode 100644
index 0000000000..3b30161cf5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountSummary.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.account;
+
+/**
+ * @model
+ */
+
+public interface AccountSummary {
+
+ /**
+ * @model
+ */
+ String getAccountNumber();
+
+ void setAccountNumber(String accountNumber);
+
+ /**
+ * @model
+ */
+ String getAccountType();
+
+ void setAccountType(String accountType);
+
+ /**
+ * @model
+ */
+ float getBalance();
+
+ void setBalance(float balance);
+}
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
new file mode 100644
index 0000000000..fba6d582da
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataService.java
@@ -0,0 +1,26 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata;
+
+public interface AccountDataService {
+
+ CheckingAccount getCheckingAccount(String customerID);
+
+ SavingsAccount getSavingsAccount(String customerID);
+
+ StockAccount getStockAccount(String customerID);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
new file mode 100644
index 0000000000..c34ce84bc3
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/AccountDataServiceImpl.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata;
+
+public class AccountDataServiceImpl implements AccountDataService {
+
+ public CheckingAccount getCheckingAccount(String customerID) {
+
+ CheckingAccount checkingAccount = new CheckingAccount();
+ checkingAccount.setAccountNumber(customerID + "_" + "CHA12345");
+ checkingAccount.setBalance(1500.0f);
+
+ return checkingAccount;
+ }
+
+ public SavingsAccount getSavingsAccount(String customerID) {
+
+ SavingsAccount savingsAccount = new SavingsAccount();
+ savingsAccount.setAccountNumber(customerID + "_" + "SAA12345");
+ savingsAccount.setBalance(1500.0f);
+
+ return savingsAccount;
+ }
+
+ public StockAccount getStockAccount(String customerID) {
+
+ StockAccount stockAccount = new StockAccount();
+ stockAccount.setAccountNumber(customerID + "_" + "STA12345");
+ stockAccount.setSymbol("IBM");
+ stockAccount.setQuantity(100);
+
+ return stockAccount;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
new file mode 100644
index 0000000000..d7b116da30
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/CheckingAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata;
+
+public class CheckingAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
new file mode 100644
index 0000000000..cd7f74bb6e
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/SavingsAccount.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata;
+
+public class SavingsAccount {
+
+ private String accountNumber;
+ private float balance;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public float getBalance() {
+ return balance;
+ }
+
+ public void setBalance(float balance) {
+ this.balance = balance;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/StockAccount.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
new file mode 100644
index 0000000000..70756fd817
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/accountdata/StockAccount.java
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.accountdata;
+
+public class StockAccount {
+
+ private String accountNumber;
+ private String symbol;
+ private int quantity;
+
+ public String getAccountNumber() {
+ return accountNumber;
+ }
+
+ public void setAccountNumber(String accountNumber) {
+ this.accountNumber = accountNumber;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public String getSymbol() {
+ return symbol;
+ }
+
+ public void setSymbol(String symbol) {
+ this.symbol = symbol;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
new file mode 100644
index 0000000000..d2db111fbe
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteService.java
@@ -0,0 +1,24 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.assembly.tests.bigbank.account.services.stockquote;
+
+public interface StockQuoteService {
+
+ public float getQuote(String symbol);
+}
+
+
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
new file mode 100644
index 0000000000..3d9a5b8bf1
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
@@ -0,0 +1,88 @@
+package org.apache.tuscany.binding.axis2.util;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.om.OMElement;
+import org.apache.tuscany.sdo.helper.TypeHelperImpl;
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
+
+public class AxiomHelperTestCase extends TestCase {
+
+ public static final QName GREETING_QN = new QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings");
+
+ private TypeHelper typeHelper;
+
+ public void testToObjects1() {
+ String s = "petra";
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] { s }, GREETING_QN);
+ assertNotNull(omElement);
+
+ Object[] os = AxiomHelper.toObjects(typeHelper, omElement);
+ assertNotNull(os);
+ assertEquals(os.length, 1);
+ assertEquals(os[0], s);
+ }
+
+ public void testToObjects2() {
+ String s = "sue";
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN);
+ assertNotNull(dataObject);
+
+ Object[] os = AxiomHelper.toObjects(dataObject);
+ assertNotNull(os);
+ assertEquals(os.length, 1);
+ assertEquals(os[0], s);
+ }
+
+ public void testToOMElement1() {
+ String s = "beate";
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] { s }, GREETING_QN);
+ assertNotNull(omElement);
+ }
+
+ public void testToOMElement2() {
+ String s = "emma";
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN);
+ assertNotNull(dataObject);
+
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, dataObject, GREETING_QN);
+ assertNotNull(omElement);
+ }
+
+ public void testToDataObject() {
+ String s = "bersi";
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN);
+ assertNotNull(dataObject);
+
+ Object[] os = AxiomHelper.toObjects(dataObject);
+ assertNotNull(os);
+ assertEquals(os.length, 1);
+ assertEquals(os[0], s);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ DataObjectUtil.initRuntime();
+ ClassLoader cl=Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ typeHelper=SDOUtil.createTypeHelper();
+ URL url = getClass().getResource("helloworld.wsdl");
+ new XSDHelperImpl(typeHelper).define(url.openStream(), null);
+ } finally {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.wsdl
new file mode 100644
index 0000000000..921218c5b9
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/account/AccountService.wsdl
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
new file mode 100644
index 0000000000..9678d9d6ea
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/bigbank/account/services/stockquote/StockQuoteWebService.wsdl
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/sca.module b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/sca.module
new file mode 100644
index 0000000000..8e25576168
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/assembly/tests/sca.module
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ AccountExternalService
+
+
+
+
+
+ AccountExternalService
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLit.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLit.wsdl
new file mode 100644
index 0000000000..4aec526803
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLit.wsdl
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLitWrapped.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLitWrapped.wsdl
new file mode 100644
index 0000000000..7839d3ea71
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/DocLitWrapped.wsdl
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/RpcLit.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/RpcLit.wsdl
new file mode 100644
index 0000000000..8f94f9c66f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/RpcLit.wsdl
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/sca.module b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/sca.module
new file mode 100644
index 0000000000..7d8bb7861f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/mediator/tests/sca.module
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/helloworld.wsdl b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/helloworld.wsdl
new file mode 100644
index 0000000000..2c5f5041a8
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/helloworld.wsdl
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/LICENSE.txt b/sca-java-1.x/tags/java-stable-20060304/sca/common/LICENSE.txt
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/pom.xml b/sca-java-1.x/tags/java-stable-20060304/sca/common/pom.xml
new file mode 100644
index 0000000000..b903d8f6a6
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ org.apache.tuscany
+ tuscany-sca
+ SNAPSHOT
+
+ 4.0.0
+ tuscany-common
+ Tuscany Common
+ Tuscany classes common to runtime and tools.
+ SNAPSHOT
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyException.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyException.java
new file mode 100644
index 0000000000..74110fef99
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyException.java
@@ -0,0 +1,85 @@
+package org.apache.tuscany.common;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * The root checked exception for the Tuscany rubntime
+ *
+ * @version $Rev: 368822 $ $Date: 2006-01-13 10:54:38 -0800 (Fri, 13 Jan 2006) $
+ */
+public abstract class TuscanyException extends Exception {
+
+ protected List contextStack;
+
+ public TuscanyException() {
+ super();
+ }
+
+ public TuscanyException(String message) {
+ super(message);
+ }
+
+ public TuscanyException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TuscanyException(Throwable cause) {
+ super(cause);
+ }
+
+ /**
+ * Returns a collection of names representing the context call stack where the error occured. The top of the stack
+ * is the first element in the collection.
+ */
+ public List returnContextNames(String name) {
+ if (contextStack == null) {
+ contextStack = new ArrayList();
+ }
+ return contextStack;
+ }
+
+ /**
+ * Pushes a context name where an error occured onto the call stack
+ */
+ public void addContextName(String name) {
+ if (contextStack == null) {
+ contextStack = new ArrayList();
+ }
+ contextStack.add(name);
+ }
+
+ private String identifier;
+
+ /**
+ * Returns a string representing additional error information referred to in the error message
+ */
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ /**
+ * Sets an additional error information referred to in the error message
+ */
+ public void setIdentifier(String identifier) {
+ this.identifier = identifier;
+ }
+
+ public String getMessage() {
+ if (identifier == null && contextStack == null) {
+ return super.getMessage();
+ }
+ StringBuffer b = new StringBuffer();
+ if (identifier != null) {
+ b.append(" [" + identifier + "]");
+ }
+ if (contextStack != null) {
+ b.append("\nContext stack trace: ");
+ for (int i = contextStack.size() - 1; i >= 0; i--) {
+ b.append("[" + contextStack.get(i) + "]");
+ }
+ }
+ return super.getMessage() + b.toString();
+
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyRuntimeException.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyRuntimeException.java
new file mode 100644
index 0000000000..922705f7b5
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/TuscanyRuntimeException.java
@@ -0,0 +1,91 @@
+package org.apache.tuscany.common;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * The root unchecked exception for the Tuscany runtime
+ *
+ * @version $Rev: 368822 $ $Date: 2006-01-13 10:54:38 -0800 (Fri, 13 Jan 2006) $
+ */
+
+public abstract class TuscanyRuntimeException extends RuntimeException {
+
+ protected List contextStack;
+
+ protected String moduleComponentName;
+
+ protected String componentName;
+
+ public TuscanyRuntimeException() {
+ super();
+ }
+
+ public TuscanyRuntimeException(String message) {
+ super(message);
+ }
+
+ public TuscanyRuntimeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TuscanyRuntimeException(Throwable cause) {
+ super(cause);
+ }
+
+ /**
+ * Returns a collection of names representing the context call stack where the error occured. The top of the stack
+ * is the first element in the collection.
+ */
+ public List returnContextNames(String name) {
+ if (contextStack == null) {
+ contextStack = new ArrayList();
+ }
+ return contextStack;
+ }
+
+ /**
+ * Pushes a context name where an error occured onto the call stack
+ */
+ public void addContextName(String name) {
+ if (contextStack == null) {
+ contextStack = new ArrayList();
+ }
+ contextStack.add(name);
+ }
+
+ private String identifier;
+
+ /**
+ * Returns a string representing additional error information referred to in the error message
+ */
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ /**
+ * Sets an additional error information referred to in the error message
+ */
+ public void setIdentifier(String identifier) {
+ this.identifier = identifier;
+ }
+
+ public String getMessage() {
+ if (identifier == null && contextStack == null) {
+ return super.getMessage();
+ }
+ StringBuffer b = new StringBuffer();
+ if (identifier != null) {
+ b.append(" [" + identifier + "]");
+ }
+ if (contextStack != null) {
+ b.append("\nContext stack trace: ");
+ for (int i = contextStack.size() - 1; i >= 0; i--) {
+ b.append("[" + contextStack.get(i) + "]");
+ }
+ }
+ return super.getMessage() + b.toString();
+
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/discovery/util/ServiceProviderRegistry.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/discovery/util/ServiceProviderRegistry.java
new file mode 100644
index 0000000000..65ede08a32
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/discovery/util/ServiceProviderRegistry.java
@@ -0,0 +1,177 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.discovery.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.apache.tuscany.common.io.util.FixedURLInputStream;
+
+//FIXME Port to 1.5 collections
+
+/**
+ * A Registry for service providers defined using the
+ * JAR service provider mechanism.
+ *
+ */
+public class ServiceProviderRegistry {
+
+ private Map registry = Collections.synchronizedMap(new WeakHashMap());
+
+ private final static ServiceProviderRegistry instance = new ServiceProviderRegistry();
+
+ /**
+ * Constructor.
+ */
+ public ServiceProviderRegistry() {
+ super();
+ }
+
+ /**
+ * @return Returns the instance.
+ */
+ public static ServiceProviderRegistry getInstance() {
+ return instance;
+ }
+
+ /**
+ * Get the available providers of a given type.
+ *
+ * @param clazz
+ * @return
+ */
+ public List getServiceProviders(final Class clazz) {
+ List providers = (List) registry.get(clazz);
+ if (providers != null)
+ return providers;
+
+ providers = (List) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return loadServiceProviders(clazz);
+ }
+ });
+
+ registry.put(clazz, providers);
+ return providers;
+ }
+
+ /**
+ * Get an provider of a given type.
+ *
+ * @param clazz
+ * @return
+ */
+ public Object getServiceProvider(Class clazz) {
+ List providers = getServiceProviders(clazz);
+ if (providers.isEmpty())
+ return null;
+ else {
+ return providers.get(0);
+ }
+ }
+
+ /**
+ * Registers an provider programatically
+ *
+ * @param clazz
+ * @param provider
+ */
+ public void registerServiceProvider(Class clazz, Object provider) {
+ getServiceProviders(clazz).add(provider);
+ }
+
+ /**
+ * Load providers of the given type
+ *
+ * @param clazz
+ * @return
+ */
+ private List loadServiceProviders(Class clazz) {
+ List classNames = new ArrayList();
+
+ // First look for a system property named
+ String className = System.getProperty(clazz.getName());
+ if (className != null)
+ classNames.add(className);
+
+ // Find all the class names mentioned in all the META-INF/services/
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ try {
+ Enumeration files = loader.getResources("META-INF/services/" + clazz.getName());
+ while (files.hasMoreElements()) {
+ URL url = (URL) files.nextElement();
+ readClassNames(url, classNames);
+ }
+ } catch (IOException e) {
+ }
+
+ // Instantiate an provider for each of the named classes
+ List providers = new ArrayList();
+ Iterator i = classNames.iterator();
+ while (i.hasNext()) {
+ String name = (String) i.next();
+ try {
+ Class providerClass = Class.forName(name, true, loader);
+ providers.add(providerClass.newInstance());
+ } catch (Exception e) {
+ // Ignore ClassNotFoundException
+ }
+ }
+ return providers;
+ }
+
+ /**
+ * Read class names from the given URL.
+ * @param url
+ * @param classNames
+ * @throws IOException
+ */
+ private void readClassNames(URL url, List classNames) throws IOException {
+ InputStream is = new FixedURLInputStream(url);
+ try {
+ BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ String inputLine = null;
+ while ((inputLine = in.readLine()) != null) {
+ int i = inputLine.indexOf('#');
+ if (i >= 0) {
+ inputLine = inputLine.substring(0, i);
+ }
+ inputLine = inputLine.trim();
+ if (inputLine.length() > 0) {
+ if (!classNames.contains(inputLine)) {
+ classNames.add(inputLine);
+ }
+ }
+ }
+ } finally {
+ is.close();
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/ClassLoaderObjectInputStream.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/ClassLoaderObjectInputStream.java
new file mode 100644
index 0000000000..607267a464
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/ClassLoaderObjectInputStream.java
@@ -0,0 +1,73 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.io.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+
+/**
+ *
+ * An implementation of an ObjectInputStream that takes a ClassLoader or works
+ * with the current Thread context ClassLoader.
+ */
+public class ClassLoaderObjectInputStream extends ObjectInputStream {
+ protected ClassLoader classLoader;
+
+ /**
+ * Constructor
+ *
+ * @param in
+ * @param classLoader
+ * @throws IOException
+ */
+ public ClassLoaderObjectInputStream(InputStream in, ClassLoader classLoader) throws IOException {
+ super(in);
+ this.classLoader = classLoader;
+ }
+
+ /**
+ * @see java.io.ObjectInputStream#resolveClass(java.io.ObjectStreamClass)
+ */
+ protected Class resolveClass(final ObjectStreamClass desc) throws IOException, ClassNotFoundException {
+
+ final String name = desc.getName();
+ try {
+ return (Class) AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ public Object run() throws ClassNotFoundException, IOException {
+ try {
+ return Class.forName(name, false, classLoader);
+ } catch (ClassNotFoundException e) {
+ return ClassLoaderObjectInputStream.super.resolveClass(desc);
+ }
+ }
+ });
+ } catch (PrivilegedActionException ex) {
+ Exception e = ex.getException();
+ if (e instanceof ClassNotFoundException) {
+ throw (ClassNotFoundException) e;
+ } else if (e instanceof IOException) {
+ throw (IOException) e;
+ }
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLClassLoader.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLClassLoader.java
new file mode 100644
index 0000000000..f2f6f958f7
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLClassLoader.java
@@ -0,0 +1,310 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.io.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.net.URLStreamHandlerFactory;
+import java.security.Permission;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+/**
+ *
+ * This class is a workaround for URL stream issue as illustrated below.
+ *
+ * InputStream is=url.getInputStream();
+ * is.close(); // This line doesn't close the JAR file if the URL is a jar entry like "jar:file:/a.jar!/sca.module"
+ *
+ * We also need to turn off the JarFile cache.
+ */
+public class FixedURLClassLoader extends URLClassLoader {
+
+ /**
+ * @param urls
+ * @param parent
+ */
+ public FixedURLClassLoader(URL[] urls, ClassLoader parent) {
+ super(normalizeURLs(urls), parent, new FixedURLStreamHandlerFactory());
+ }
+
+ private static URL[] normalizeURLs(URL[] urls) {
+ URL[] newURLs = new URL[urls.length];
+ for (int i = 0; i < urls.length; i++)
+ try {
+ /**
+ * Any URL that ends with a '/' is assumed to refer to a directory. Otherwise, the URL is assumed to
+ * refer to a JAR file which will be downloaded and opened as needed.
+ */
+ String spec = urls[i].toString();
+ if (!(urls[i].getProtocol().equals("jar") || urls[i].getFile().endsWith("/"))) {
+ spec = "jar:" + spec + "!/";
+ }
+ newURLs[i] = new URL(null, spec, FixedURLStreamHandler.instance);
+ } catch (MalformedURLException e) {
+ }
+ return newURLs;
+ }
+
+ /**
+ * @see java.lang.Object#finalize()
+ */
+ protected void finalize() throws Throwable {
+ super.finalize();
+ }
+
+ public static class FixedURLStreamHandlerFactory implements URLStreamHandlerFactory {
+ public URLStreamHandler createURLStreamHandler(String protocol) {
+ return FixedURLStreamHandler.instance;
+ }
+ }
+
+ public static class FixedURLStreamHandler extends URLStreamHandler {
+ public static final URLStreamHandler instance = new FixedURLStreamHandler();
+
+ public FixedURLStreamHandler() {
+ super();
+ }
+
+ protected URLConnection openConnection(URL url) throws IOException {
+ URLConnection connection = new URL(url.toString()).openConnection();
+ connection.setUseCaches(false);
+ return new FixedURLConnection(connection, url);
+ }
+ }
+
+ public static class FixedURLConnection extends URLConnection {
+ private URLConnection connection;
+
+ public FixedURLConnection(URLConnection connection, URL url) {
+ super(url);
+ this.connection = connection;
+ }
+
+ public void addRequestProperty(String key, String value) {
+ connection.addRequestProperty(key, value);
+ }
+
+ public void connect() throws IOException {
+ connection.connect();
+ }
+
+ public boolean getAllowUserInteraction() {
+ return connection.getAllowUserInteraction();
+ }
+
+ public Object getContent() throws IOException {
+ return connection.getContent();
+ }
+
+ public Object getContent(Class[] classes) throws IOException {
+ return connection.getContent(classes);
+ }
+
+ public String getContentEncoding() {
+ return connection.getContentEncoding();
+ }
+
+ public int getContentLength() {
+ return connection.getContentLength();
+ }
+
+ public String getContentType() {
+ return connection.getContentType();
+ }
+
+ public long getDate() {
+ return connection.getDate();
+ }
+
+ public boolean getDefaultUseCaches() {
+ return connection.getDefaultUseCaches();
+ }
+
+ public boolean getDoInput() {
+ return connection.getDoInput();
+ }
+
+ public boolean getDoOutput() {
+ return connection.getDoOutput();
+ }
+
+ public long getExpiration() {
+ return connection.getExpiration();
+ }
+
+ public String getHeaderField(int n) {
+ return connection.getHeaderField(n);
+ }
+
+ public String getHeaderField(String name) {
+ return connection.getHeaderField(name);
+ }
+
+ public long getHeaderFieldDate(String name, long Default) {
+ return connection.getHeaderFieldDate(name, Default);
+ }
+
+ public int getHeaderFieldInt(String name, int Default) {
+ return connection.getHeaderFieldInt(name, Default);
+ }
+
+ public String getHeaderFieldKey(int n) {
+ return connection.getHeaderFieldKey(n);
+ }
+
+ public Map getHeaderFields() {
+ return connection.getHeaderFields();
+ }
+
+ public long getIfModifiedSince() {
+ return connection.getIfModifiedSince();
+ }
+
+ public InputStream getInputStream() throws IOException {
+ if (connection instanceof JarURLConnection && url.toString().startsWith("jar:file:")) {
+ return getByteArrayInputStream();
+ // return new FixedURLInputStream((JarURLConnection) connection);
+ } else {
+ return connection.getInputStream();
+ }
+ }
+
+ private InputStream getByteArrayInputStream() throws IOException {
+ JarFile jFile = null;
+ try {
+ String spec = url.toString();
+ spec = spec.substring("jar:".length());
+ int index = spec.lastIndexOf("!/");
+ String file = new URL(spec.substring(0, index)).getFile();
+ jFile = new JarFile(file);
+ String entryName = spec.substring(index + 2);
+ JarEntry jarEntry = jFile.getJarEntry(entryName);
+ if (jarEntry != null) {
+ InputStream jarStream = null;
+ try {
+ jarStream = jFile.getInputStream(jarEntry);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ byte buf[] = new byte[4096];
+ int length = 0;
+ length = jarStream.read(buf);
+ while (length > 0) {
+ out.write(buf, 0, length);
+ length = jarStream.read(buf);
+ }
+ // out.flush();
+ jarStream.close();
+ // out.close();
+ return new ByteArrayInputStream(out.toByteArray());
+ } catch (IOException e) {
+ if (jarStream != null)
+ jarStream.close();
+ throw e;
+ }
+ } else {
+ throw new IOException("Entry " + entryName + " is not found in " + file);
+ }
+ } catch (IOException ex) {
+ throw ex;
+ } finally {
+ if (jFile != null) {
+ try {
+ jFile.close();
+ } catch (IOException e) {
+ // Ignore it
+ }
+ }
+ }
+ }
+
+ public long getLastModified() {
+ return connection.getLastModified();
+ }
+
+ public OutputStream getOutputStream() throws IOException {
+ return connection.getOutputStream();
+ }
+
+ public Permission getPermission() throws IOException {
+ return connection.getPermission();
+ }
+
+ public Map getRequestProperties() {
+ return connection.getRequestProperties();
+ }
+
+ public String getRequestProperty(String key) {
+ return connection.getRequestProperty(key);
+ }
+
+ public URL getURL() {
+ return url;
+ }
+
+ public boolean getUseCaches() {
+ return connection.getUseCaches();
+ }
+
+ public int hashCode() {
+ return connection.hashCode();
+ }
+
+ public void setAllowUserInteraction(boolean allowuserinteraction) {
+ connection.setAllowUserInteraction(allowuserinteraction);
+ }
+
+ public void setDefaultUseCaches(boolean defaultusecaches) {
+ connection.setDefaultUseCaches(defaultusecaches);
+ }
+
+ public void setDoInput(boolean doinput) {
+ connection.setDoInput(doinput);
+ }
+
+ public void setDoOutput(boolean dooutput) {
+ connection.setDoOutput(dooutput);
+ }
+
+ public void setIfModifiedSince(long ifmodifiedsince) {
+ connection.setIfModifiedSince(ifmodifiedsince);
+ }
+
+ public void setRequestProperty(String key, String value) {
+ connection.setRequestProperty(key, value);
+ }
+
+ public void setUseCaches(boolean usecaches) {
+ connection.setUseCaches(usecaches);
+ }
+
+ public String toString() {
+ return connection.toString();
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLInputStream.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLInputStream.java
new file mode 100644
index 0000000000..192798ff26
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/FixedURLInputStream.java
@@ -0,0 +1,119 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.io.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.util.jar.JarFile;
+
+/**
+ *
+ * This class is a workaround for URL stream issue as illustrated below.
+ *
+ * InputStream is=url.getInputStream();
+ * is.close(); // This line doesn't close the JAR file if the URL is a jar entry like "jar:file:/a.jar!/sca.module"
+ *
+ * We also need to turn off the JarFile cache.
+ */
+public class FixedURLInputStream extends InputStream {
+
+ private JarFile jarFile;
+ private InputStream is;
+
+ /**
+ * Constructor
+ *
+ * @param url
+ * @throws IOException
+ */
+ public FixedURLInputStream(URL url) throws IOException {
+ String protocol = url.getProtocol();
+ if (protocol != null && (protocol.equals("jar") || protocol.equals("wsjar"))) {
+ String urlStr = url.toString();
+ if (urlStr.startsWith("wsjar:")) {
+ url = new URL("jar:" + urlStr.substring(6));
+ }
+ JarURLConnection connection = (JarURLConnection) url.openConnection();
+ // We cannot use cache
+ connection.setUseCaches(false);
+ try {
+ is = connection.getInputStream();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ jarFile = connection.getJarFile();
+ } else {
+ is = url.openStream();
+ }
+ }
+
+ /**
+ * Constructor
+ *
+ * @param connection
+ * @throws IOException
+ */
+ public FixedURLInputStream(JarURLConnection connection) throws IOException {
+ // We cannot use cache
+ connection.setUseCaches(false);
+ is = connection.getInputStream();
+ jarFile = connection.getJarFile();
+ }
+
+ public int available() throws IOException {
+ return is.available();
+ }
+
+ public void close() throws IOException {
+ is.close();
+ // We need to close the JAR file
+ if (jarFile != null)
+ jarFile.close();
+ }
+
+ public synchronized void mark(int readlimit) {
+ is.mark(readlimit);
+ }
+
+ public boolean markSupported() {
+ return is.markSupported();
+ }
+
+ public int read() throws IOException {
+ return is.read();
+ }
+
+ public int read(byte[] b, int off, int len) throws IOException {
+ return is.read(b, off, len);
+ }
+
+ public int read(byte[] b) throws IOException {
+ return is.read(b);
+ }
+
+ public synchronized void reset() throws IOException {
+ is.reset();
+ }
+
+ public long skip(long n) throws IOException {
+ return is.skip(n);
+ }
+
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/IOHelper.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/IOHelper.java
new file mode 100644
index 0000000000..8227a052df
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/IOHelper.java
@@ -0,0 +1,128 @@
+/*
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tuscany.common.io.util;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * I/O utility methods
+ *
+ * @version $Rev$ $Date$
+ */
+public class IOHelper {
+
+ // ----------------------------------
+ // Fields
+ // ----------------------------------
+
+ public static int BYTES = 8192;
+
+ // ----------------------------------
+ // Constructors
+ // ----------------------------------
+
+ private IOHelper() {
+ }
+
+ // ----------------------------------
+ // Methods
+ // ----------------------------------
+
+ public static void copy(InputStream in, OutputStream out) throws IOException {
+ copy(in, out, -1);
+ }
+
+ public static void copy(InputStream in, OutputStream out, long byteCount) throws IOException {
+ byte buffer[] = new byte[BYTES];
+ int len = BYTES;
+
+ if (byteCount >= 0) {
+ while (byteCount > 0) {
+ if (byteCount < BYTES) {
+ len = in.read(buffer, 0, (int) byteCount);
+ } else {
+ len = in.read(buffer, 0, BYTES);
+ }
+ if (len == -1) {
+ break;
+ }
+ byteCount -= len;
+ out.write(buffer, 0, len);
+ }
+ } else {
+ while (true) {
+ len = in.read(buffer, 0, BYTES);
+ if (len < 0) {
+ break;
+ }
+ out.write(buffer, 0, len);
+ }
+ }
+ }
+
+ public static byte[] read(InputStream in) throws IOException {
+ byte buffer[] = new byte[BYTES];
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ int len = BYTES;
+ while (true) {
+ len = in.read(buffer, 0, BYTES);
+ if (len < 0) {
+ break;
+ }
+ out.write(buffer, 0, len);
+ }
+ return out.toByteArray();
+ }
+
+ /**
+ * Removes a directory from the file sytsem
+ */
+ public static boolean deleteDir(File pDir) {
+ if (pDir.isDirectory()) {
+ String[] children = pDir.list();
+ for (int i = 0; i < children.length; i++) {
+ boolean success = deleteDir(new File(pDir, children[i]));
+ if (!success) {
+ return false;
+ }
+ }
+ }
+ return pDir.delete();
+ }
+
+ /**
+ * Returns a stream to the resource associated with pPath in the directory
+ * pRoot
+ */
+ public static InputStream getResource(File pRoot, String pPath) throws FileNotFoundException {
+
+ File[] files = pRoot.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isFile() && files[i].getName().equals(pPath)) {
+ return new BufferedInputStream(new FileInputStream(files[i]));
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/UTF8String.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/UTF8String.java
new file mode 100644
index 0000000000..651c81f92a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/io/util/UTF8String.java
@@ -0,0 +1,107 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.io.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * String encoded with UTF-8
+ *
+ */
+public class UTF8String {
+ public static final String UTF8 = "UTF-8";
+ private String string;
+
+ /**
+ *
+ */
+ public UTF8String(String str) {
+ super();
+ this.string = str;
+ }
+
+ public UTF8String(byte[] bytes) {
+ this(toString(bytes));
+ }
+
+ public static String toString(byte[] bytes) {
+ try {
+ if (bytes == null)
+ return null;
+ return new String(bytes, UTF8);
+ } catch (UnsupportedEncodingException e) {
+ throw new UnsupportedOperationException(e.getMessage());
+ }
+ }
+
+ public static byte[] getBytes(String str) {
+ try {
+ if (str == null)
+ return null;
+ return str.getBytes(UTF8);
+ } catch (UnsupportedEncodingException e) {
+ throw new UnsupportedOperationException(e.getMessage());
+ }
+ }
+
+ public ByteArrayInputStream getInputStream() {
+ return new ByteArrayInputStream(getBytes());
+ }
+
+ public static ByteArrayInputStream getInputStream(String str) {
+ return new ByteArrayInputStream(getBytes(str));
+ }
+
+ public static String toString(ByteArrayOutputStream bos) {
+ try {
+ return bos.toString(UTF8);
+ } catch (UnsupportedEncodingException e) {
+ throw new UnsupportedOperationException(e.getMessage());
+ }
+ }
+
+ public byte[] getBytes() {
+ try {
+ if (string == null)
+ return null;
+ return string.getBytes(UTF8);
+ } catch (UnsupportedEncodingException e) {
+ throw new UnsupportedOperationException(e.getMessage());
+ }
+ }
+
+ public String toString() {
+ return string;
+ }
+
+ public int hashCode() {
+ return (string == null) ? 0 : string.hashCode();
+ }
+
+ public boolean equals(Object object) {
+ if (!(object instanceof UTF8String))
+ return false;
+ UTF8String s = (UTF8String) object;
+ if (string == s.string)
+ return true;
+ if (string == null || s.string == null)
+ return false;
+ return string.equals(s.string);
+ }
+}
\ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/LogLevel.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/LogLevel.java
new file mode 100644
index 0000000000..f3362b13cb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/LogLevel.java
@@ -0,0 +1,37 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.monitor;
+
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation that can be applied to methods in a monitoring interface
+ * to indicate to logging frameworks the severity of the event.
+ *
+ * @version $Rev$ $Date$
+ */
+@Target({METHOD})
+@Retention(RUNTIME)
+public @interface LogLevel {
+ /**
+ * The log level as specified by {@link java.util.logging.Level}.
+ */
+ String value();
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/MonitorFactory.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/MonitorFactory.java
new file mode 100644
index 0000000000..aa92092005
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/MonitorFactory.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.monitor;
+
+/**
+ * A MonitorFactory creates implementations of components' monitor interfaces
+ * that interface with a its monitoring scheme. For example, a implementation
+ * may create versions that emit appropriate logging events or which send
+ * notifications to a management API.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface MonitorFactory {
+ /**
+ * Return a monitor for a component's monitor interface.
+ *
+ * @param monitorInterface the component's monitoring interface
+ * @return an implementation of the monitoring interface; will not be null
+ */
+ T getMonitor(Class monitorInterface);
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/InvalidLevelException.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/InvalidLevelException.java
new file mode 100644
index 0000000000..cfb924d8fb
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/InvalidLevelException.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.monitor.impl;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class InvalidLevelException extends IllegalArgumentException {
+ private final String method;
+ private final String level;
+
+ public InvalidLevelException(String method, String level) {
+ super();
+ this.method = method;
+ this.level = level;
+ }
+
+ public String getMethod() {
+ return method;
+ }
+
+ public String getLevel() {
+ return level;
+ }
+
+ public String getMessage() {
+ return "Invalid level for method " + method + " : " + level;
+ }
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/JavaLoggingMonitorFactory.java b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/JavaLoggingMonitorFactory.java
new file mode 100644
index 0000000000..06bb87d6dd
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/sca/common/src/main/java/org/apache/tuscany/common/monitor/impl/JavaLoggingMonitorFactory.java
@@ -0,0 +1,139 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.common.monitor.impl;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.WeakHashMap;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Properties;
+import java.util.Iterator;
+import java.util.logging.Logger;
+import java.util.logging.Level;
+
+import org.apache.tuscany.common.monitor.MonitorFactory;
+import org.apache.tuscany.common.monitor.LogLevel;
+
+/**
+ * A factory for monitors that forwards events to a {@link java.util.logging.Logger Java Logging (JSR47) Logger}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class JavaLoggingMonitorFactory implements MonitorFactory {
+ private final String bundleName;
+ private final Level defaultLevel;
+ private final Map levels;
+
+ private final Map, WeakReference>> proxies = new WeakHashMap();
+
+ /**
+ *
+ * @param levels
+ * @param defaultLevel
+ * @param bundleName
+ */
+ public JavaLoggingMonitorFactory(Properties levels, Level defaultLevel, String bundleName) {
+ this.defaultLevel = defaultLevel;
+ this.bundleName = bundleName;
+ this.levels = new HashMap(levels.size());
+ for (Iterator> i = levels.entrySet().iterator(); i.hasNext();) {
+ Map.Entry