Difference between revisions of "Single Port-Type"
From GCube System
Manuele.simi (Talk | contribs) (→Structuring the service code) |
Manuele.simi (Talk | contribs) (→Profiling for the infrastructure) |
||
Line 11: | Line 11: | ||
== Profiling for the infrastructure == | == Profiling for the infrastructure == | ||
− | Create a new XML file and place it in the ''SERVICE/etc'' folder | + | Create a new XML file and place it in the ''SERVICE/etc'' folder. This file profiles the service in such a way that the instance of a service can be discovered by others and eventually dynamically deployed in a gCube infrastructure. |
+ | |||
+ | <pre> | ||
+ | <Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
+ | <ID></ID> | ||
+ | <Type>Service</Type> | ||
+ | <Profile> | ||
+ | <Description>A very simple gCube Service</Description> | ||
+ | <Class>Samples</Class> | ||
+ | <Name>SampleService</Name> | ||
+ | <Packages> | ||
+ | <Main> | ||
+ | <Description>Describes port-types</Description> | ||
+ | <Name>Main</Name> | ||
+ | <Dependencies> | ||
+ | <Dependency> | ||
+ | <Service> | ||
+ | <Class>Samples</Class> | ||
+ | <Name>SampleService</Name> | ||
+ | </Service> | ||
+ | <Package>Stubs</Package> | ||
+ | <Version>1.0</Version> | ||
+ | <Scope level="GHN"/> | ||
+ | <Optional>false</Optional> | ||
+ | </Dependency> | ||
+ | </Dependencies> | ||
+ | <GARArchive>org.acme.sample.gar</GARArchive> | ||
+ | <PortType> | ||
+ | <Name>acme/sample/stateless</Name> | ||
+ | <WSDL/> | ||
+ | </PortType> | ||
+ | <PortType> | ||
+ | <Name>acme/sample/stateful</Name> | ||
+ | <WSDL/> | ||
+ | </PortType> | ||
+ | <PortType> | ||
+ | <Name>acme/sample/factory</Name> | ||
+ | <WSDL/> | ||
+ | </PortType> | ||
+ | </Main> | ||
+ | <Software> | ||
+ | <Description>Describes port-type stubs</Description> | ||
+ | <Name>Stubs</Name> | ||
+ | <Files><File>org.acme.sample.stubs.jar</File></Files> | ||
+ | </Software> | ||
+ | </Packages> | ||
+ | </Profile> | ||
+ | </Resource> | ||
+ | </pre> | ||
== Delving into the implementation == | == Delving into the implementation == |
Revision as of 23:17, 21 March 2008
Contents
From configuration to testing with a single Port-Type
Even if not compulsory, we strongly suggest to adopt the Eclipse 3.3 as development platform. In such an IDE, open a new workspace with a Java 1.5 compiler and create a new Java project by specifying a source folder (named from now on, SERVICE folder). Then, fill a user-library with all JARs in gCore lib and name it CONTAINERLIB.
Structuring the service code
Prepare the source folder structure as follows:
- create a etc folder where to place your configuration files
- create a org/acme/sample folder where to place your source code
- create a schema folder where to place the remote interface files
- copy the share/gcube_tools/build.xml file into your SERVICE folder
Profiling for the infrastructure
Create a new XML file and place it in the SERVICE/etc folder. This file profiles the service in such a way that the instance of a service can be discovered by others and eventually dynamically deployed in a gCube infrastructure.
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ID></ID> <Type>Service</Type> <Profile> <Description>A very simple gCube Service</Description> <Class>Samples</Class> <Name>SampleService</Name> <Packages> <Main> <Description>Describes port-types</Description> <Name>Main</Name> <Dependencies> <Dependency> <Service> <Class>Samples</Class> <Name>SampleService</Name> </Service> <Package>Stubs</Package> <Version>1.0</Version> <Scope level="GHN"/> <Optional>false</Optional> </Dependency> </Dependencies> <GARArchive>org.acme.sample.gar</GARArchive> <PortType> <Name>acme/sample/stateless</Name> <WSDL/> </PortType> <PortType> <Name>acme/sample/stateful</Name> <WSDL/> </PortType> <PortType> <Name>acme/sample/factory</Name> <WSDL/> </PortType> </Main> <Software> <Description>Describes port-type stubs</Description> <Name>Stubs</Name> <Files><File>org.acme.sample.stubs.jar</File></Files> </Software> </Packages> </Profile> </Resource>