From f4689349537f143168191909257eaa355a0cd18f Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Tue, 22 Apr 2008 13:04:13 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vre-management/VREModeler@436 82a268e6-3cf1-43bd-a215-b396298e98cf --- build.xml | 530 ++++++++++++++++++ etc/build.properties | 6 + etc/deploy-jndi-config.xml | 66 +++ etc/deploy-server.wsdd | 38 ++ etc/profile.xml | 49 ++ etc/registration.xml | 29 + etc/security_descriptor.xml | 44 ++ schema/Model.wsdl | 393 +++++++++++++ schema/ModelFactory.wsdl | 134 +++++ .../vremodeler/db/DBInterface.java | 8 +- .../vremodeler/impl/ModelFactoryService.java | 25 +- .../vremodeler/impl/ModelerContext.java | 26 +- .../vremodeler/impl/ModelerHome.java | 6 +- .../vremodeler/impl/ModelerResource.java | 11 +- .../vremodeler/impl/ServiceContext.java | 19 +- 15 files changed, 1353 insertions(+), 31 deletions(-) create mode 100644 build.xml create mode 100755 etc/build.properties create mode 100755 etc/deploy-jndi-config.xml create mode 100644 etc/deploy-server.wsdd create mode 100644 etc/profile.xml create mode 100644 etc/registration.xml create mode 100644 etc/security_descriptor.xml create mode 100644 schema/Model.wsdl create mode 100644 schema/ModelFactory.wsdl diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..902d118 --- /dev/null +++ b/build.xml @@ -0,0 +1,530 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/build.properties b/etc/build.properties new file mode 100755 index 0000000..51c09f5 --- /dev/null +++ b/etc/build.properties @@ -0,0 +1,6 @@ + +package = org.gcube.vremanagement.vremodeler +lib.dir = Dependencies/VDLModeler +wsdl.1 = ModelFactory +wsdl.2 = Model +namespace.1=http://gcube-system.org/vremanagement/vremodeler diff --git a/etc/deploy-jndi-config.xml b/etc/deploy-jndi-config.xml new file mode 100755 index 0000000..7dcac6e --- /dev/null +++ b/etc/deploy-jndi-config.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + > + + + + + factory + org.globus.wsrf.jndi.BeanFactory + + + mode + pull + + + fileName + registration.xml + + + + + + + + factory + org.globus.wsrf.jndi.BeanFactory + + + resourceClass + org.gcube.vremanagement.vremodeler.ModelerResource + + + + + + + + \ No newline at end of file diff --git a/etc/deploy-server.wsdd b/etc/deploy-server.wsdd new file mode 100644 index 0000000..f234cd5 --- /dev/null +++ b/etc/deploy-server.wsdd @@ -0,0 +1,38 @@ + + + + + + share/schema/org.acme.sample/Stateless_service.wsdl + + + + + + + + + + share/schema/org.acme.sample/Stateful_service.wsdl + + + + + + + + + + + share/schema/org.acme.sample/Factory_service.wsdl + + + + + + + + diff --git a/etc/profile.xml b/etc/profile.xml new file mode 100644 index 0000000..a0a3835 --- /dev/null +++ b/etc/profile.xml @@ -0,0 +1,49 @@ + + + + Service + + A very simple gCube Service + Samples + SampleService + 1.0 + +
+ Describes port-types + Main + 1.0 + + + + Samples + SampleService + + Stubs + 1.0 + + false + + + org.acme.sample.gar + + acme/sample/stateless + + + + acme/sample/stateful + + + + acme/sample/factory + + +
+ + Describes port-type stubs + Stubs + 1.0 + org.acme.sample.stubs.jar + +
+
+
diff --git a/etc/registration.xml b/etc/registration.xml new file mode 100644 index 0000000..738d543 --- /dev/null +++ b/etc/registration.xml @@ -0,0 +1,29 @@ + + + + + 60 + + + + + + + + 60000 + tutorial:Name + tutorial:Visits + + + + + + + + diff --git a/etc/security_descriptor.xml b/etc/security_descriptor.xml new file mode 100644 index 0000000..3795dcb --- /dev/null +++ b/etc/security_descriptor.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/schema/Model.wsdl b/schema/Model.wsdl new file mode 100644 index 0000000..1613540 --- /dev/null +++ b/schema/Model.wsdl @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/ModelFactory.wsdl b/schema/ModelFactory.wsdl new file mode 100644 index 0000000..5f2a1a4 --- /dev/null +++ b/schema/ModelFactory.wsdl @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/org/gcube/vremanagement/vremodeler/db/DBInterface.java b/src/org/gcube/vremanagement/vremodeler/db/DBInterface.java index f074172..b38a51b 100644 --- a/src/org/gcube/vremanagement/vremodeler/db/DBInterface.java +++ b/src/org/gcube/vremanagement/vremodeler/db/DBInterface.java @@ -10,7 +10,7 @@ import java.sql.SQLException; import java.sql.Statement; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.diligentproject.vdlgeneratorservice.model.impl.ModelService; +import org.gcube.common.core.utils.logging.GCUBELog; /** * @@ -19,9 +19,7 @@ import org.diligentproject.vdlgeneratorservice.model.impl.ModelService; */ public class DBInterface { - - private static Log logger =LogFactory.getLog(ModelService.class.getName()); - + private static Connection conn; private static String dbFile = System.getenv("GLOBUS_LOCATION") + File.separator + "etc" + File.separator + "org_diligentproject_vdlgeneratorservice_model" + File.separator + "hsqldb" + File.separator + "vdldb"; @@ -68,7 +66,7 @@ public class DBInterface { st = conn.createStatement(); // statement objects can be reused with st.executeUpdate(query); st.close(); - }catch(SQLException e){logger.error("error executing Query");throw new RemoteException("error creating SQL statement",e);} + }catch(SQLException e){logger.error("error executing Query", e);throw new RemoteException("error creating SQL statement",e);} } /** diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelFactoryService.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelFactoryService.java index f75d7e8..944a178 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelFactoryService.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelFactoryService.java @@ -13,10 +13,14 @@ import javax.naming.NamingException; import javax.xml.namespace.QName; import javax.xml.rpc.server.ServiceLifecycle; +import org.apache.axis.components.uuid.UUIDGen; +import org.apache.axis.components.uuid.UUIDGenFactory; import org.apache.axis.message.addressing.AttributedURI; import org.apache.axis.message.addressing.EndpointReferenceType; import org.gcube.common.core.contexts.GCUBEServiceContext; +import org.gcube.common.core.faults.GCUBEFault; import org.gcube.common.core.porttypes.GCUBEStartupPortType; +import org.gcube.common.core.utils.logging.GCUBELog; import org.globus.wsrf.Constants; import org.globus.wsrf.NoResourceHomeException; import org.globus.wsrf.ResourceContext; @@ -39,18 +43,23 @@ import org.apache.commons.logging.LogFactory; public class ModelFactoryService extends GCUBEStartupPortType{ + private GCUBELog logger = new GCUBELog(this); + private static final UUIDGen uuidGen = UUIDGenFactory.getUUIDGen(); + @Override - protected GCUBEServiceContext getServiceContext() { - // TODO Auto-generated method stub - return null; + protected ServiceContext getServiceContext() { + return ServiceContext.getContext(); } /* Implementation of createResource Operation */ - public CreateResourceResponse createResource(CreateResource request) throws RemoteException { - - - - return null; + public EndpointReferenceType createResource(CreateResource request) throws GCUBEFault { + String id=uuidGen.nextUUID(); + ModelerResource mr; + try{ + ModelerContext pctx= ModelerContext.getPortTypeContext(); + mr=(ModelerResource)pctx.getWSHome().create(pctx.makeKey(id), id); + return mr.getEPR(); + }catch (Exception e){logger.error("error creating resource",e); throw new GCUBEFault(e);} } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelerContext.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelerContext.java index 57916cd..78bc3b7 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelerContext.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelerContext.java @@ -1,25 +1,33 @@ package org.gcube.vremanagement.vremodeler.impl; -import org.gcube.common.core.contexts.GCUBEPortTypeContext; -import org.gcube.common.core.contexts.GCUBEServiceContext; -public class ModelerContext extends GCUBEPortTypeContext{ +import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; +public class ModelerContext extends GCUBEStatefulPortTypeContext{ + + public static String FREQUENT_USER_LIMIT_JNDI_NAME = "frequentUserLimit"; + + private static ModelerContext cache = new ModelerContext(); + + private ModelerContext(){} + @Override public String getJNDIName() { - // TODO Auto-generated method stub - return null; + return "gcube/vdlmanagement/vdlmodeler/ModelerService"; } @Override public String getNamespace() { - // TODO Auto-generated method stub return null; } @Override - public GCUBEServiceContext getServiceContext() { - return null; - } + public ServiceContext getServiceContext() { + return ServiceContext.getContext(); + } + + public static ModelerContext getPortTypeContext() { + return cache; + } } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelerHome.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelerHome.java index 0c04ec6..ab78927 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelerHome.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelerHome.java @@ -1,14 +1,12 @@ package org.gcube.vremanagement.vremodeler.impl; -import org.gcube.common.core.contexts.GCUBEStatefulPortTypeContext; import org.gcube.common.core.state.GCUBEWSHome; public class ModelerHome extends GCUBEWSHome{ @Override - public GCUBEStatefulPortTypeContext getPortTypeContext() { - // TODO Auto-generated method stub - return null; + public ModelerContext getPortTypeContext() { + return ModelerContext.getPortTypeContext(); } } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelerResource.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelerResource.java index b2c615d..0dedad5 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelerResource.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelerResource.java @@ -1,5 +1,14 @@ package org.gcube.vremanagement.vremodeler.impl; -public class ModelerResource { +import org.gcube.common.core.state.GCUBEWSResource; +import org.globus.wsrf.ResourceException; + +public class ModelerResource extends GCUBEWSResource { + + @Override + protected void initialise(Object... arg0) throws ResourceException { + // TODO Auto-generated method stub + + } } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java b/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java index d8b7354..455838f 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java @@ -4,10 +4,21 @@ import org.gcube.common.core.contexts.GCUBEServiceContext; public class ServiceContext extends GCUBEServiceContext{ - @Override - protected String getJNDIName() { - // TODO Auto-generated method stub - return null; + /** Single context instance, created eagerly */ + private static ServiceContext cache = new ServiceContext(); + + /** Returns cached instance */ + public static ServiceContext getContext() {return cache;} + + /** Prevents accidental creation of more instances */ + private ServiceContext(){}; + + /** {@inheritDoc} */ + protected String getJNDIName() {return "gcube/vdlmanagement/vdlmodeler";} + + protected void onReady() throws Exception{ + logger.info("ready event invoked on " + this.getName()); + } }