diff --git a/etc/deploy-jndi-config.xml b/etc/deploy-jndi-config.xml index 522f3e9..e8251d1 100755 --- a/etc/deploy-jndi-config.xml +++ b/etc/deploy-jndi-config.xml @@ -27,6 +27,12 @@ value="UserProfile,Schemas Searchable Fields,MetadataXSLT,PresentationXSLT" type="java.lang.String" override="false" /> + + diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java index ecb9297..0844918 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java @@ -37,7 +37,7 @@ public class ModelerService { public static final String DEPLOYING="Deploying"; - private static final GCUBELog logger = new GCUBELog(ModelerService.class.getName()); + private static final GCUBELog logger = new GCUBELog(ModelerService.class); protected ModelerResource getResource() throws ResourceException{ return (ModelerResource) ModelerContext.getPortTypeContext().getWSHome().find(); @@ -133,6 +133,7 @@ public class ModelerService { res= DBInterface.queryDB("select * from GHN ORDER BY GHN.host;"); ResultSet resRelated= DBInterface.queryDB("select ghnid, ISCANDIDATE from VRERELATEDGHN where VRERELATEDGHN.vreid='"+getResource().getId()+"';"); + String candidatedGHN=""; while(resRelated.next()){ relatedGHN.add(resRelated.getString(1)); @@ -140,7 +141,7 @@ public class ModelerService { } return XMLUtil.PrepareGHNsXML(res, relatedGHN,candidatedGHN); }catch(Exception e) { - logger.error("VRE Model: error retreiving GHNs",e); + logger.error("VRE Modeler: error retreiving GHNs",e); throw new GCUBEFault(e);} } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java b/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java index 4a284ee..737d00d 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ServiceContext.java @@ -19,6 +19,7 @@ import org.gcube.vremanagement.vremodeler.consumers.GenericResourceConsumer; import org.gcube.vremanagement.vremodeler.consumers.MCollectionConsumer; import org.gcube.vremanagement.vremodeler.consumers.RunningInstanceConsumer; import org.gcube.vremanagement.vremodeler.db.IStoDBUtil; +import org.gcube.vremanagement.vremodeler.impl.util.ServicePair; import org.gcube.vremanagement.vremodeler.resources.handlers.CollectionHandler; import org.gcube.vremanagement.vremodeler.resources.handlers.FunctionalityHandler; import org.gcube.vremanagement.vremodeler.resources.handlers.GHNHandler; @@ -40,6 +41,8 @@ public class ServiceContext extends GCUBEServiceContext{ private ArrayList secondaryTypeGenericResourceRequired= new ArrayList(); + private ArrayList baseServiceForGhn= new ArrayList(); + protected void onReady() throws Exception{ try{ logger.info("ready event invoked on " + this.getName()); @@ -52,6 +55,13 @@ public class ServiceContext extends GCUBEServiceContext{ } protected void intializeDB() throws Exception{ + ArrayList baseServiceGhn= new ArrayList(); + for (String gen:((String)this.getProperty("BaseRisForSelectableGHN", true)).split(";")){ + String[] serviceString=gen.split(","); + new ServicePair(serviceString[0], serviceString[1]); + } + this.setBaseServiceForGhn(baseServiceGhn); + ISNotifier notifier= GHNContext.getImplementation(ISNotifier.class); for (GCUBEScope scope : ServiceContext.getContext().getInstance().getScopes().values()){ ServiceContext.getContext().setScope(scope); @@ -109,4 +119,12 @@ public class ServiceContext extends GCUBEServiceContext{ String[] secondaryTypeGenericResourceRequired) { Collections.addAll(this.secondaryTypeGenericResourceRequired,secondaryTypeGenericResourceRequired); } + + public ArrayList getBaseServiceForGhn() { + return baseServiceForGhn; + } + + public void setBaseServiceForGhn(ArrayList baseServiceForGhn) { + this.baseServiceForGhn = baseServiceForGhn; + } } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/util/ServicePair.java b/src/org/gcube/vremanagement/vremodeler/impl/util/ServicePair.java new file mode 100644 index 0000000..b0445b8 --- /dev/null +++ b/src/org/gcube/vremanagement/vremodeler/impl/util/ServicePair.java @@ -0,0 +1,25 @@ +package org.gcube.vremanagement.vremodeler.impl.util; + +public class ServicePair { + + private String serviceClass; + private String serviceName; + + public ServicePair(String serviceName, String serviceClass){ + this.serviceClass= serviceClass; + this.serviceName= serviceName; + } + + public String getServiceClass() { + return serviceClass; + } + + public String getServiceName() { + return serviceName; + } + + public boolean equals(Object o){ + ServicePair servicePair= (ServicePair) o; + return this.serviceClass.compareTo(servicePair.getServiceClass())==0 && this.serviceName.compareTo(servicePair.getServiceName())==0; + } +} diff --git a/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java b/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java index cf50df9..86588c0 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java @@ -3,6 +3,7 @@ package org.gcube.vremanagement.vremodeler.impl.util; import java.io.StringWriter; import java.sql.ResultSet; import java.sql.SQLException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -18,6 +19,7 @@ import javax.xml.transform.stream.StreamResult; import org.gcube.common.core.utils.logging.GCUBELog; import org.gcube.vremanagement.vremodeler.db.DBInterface; import org.gcube.vremanagement.vremodeler.impl.ModelerService; +import org.gcube.vremanagement.vremodeler.impl.ServiceContext; import org.gcube.vremanagement.vremodeler.resources.MetadataFormat; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -53,7 +55,7 @@ public class XMLUtil { } Element root= doc.createElement("ResultSet"); - + SimpleDateFormat simpleDateFormat= new SimpleDateFormat("dd-MM-yyyy 'at' HH:mm z"); try{ while (res.next()){ Element collection = addElements(doc, "Collection", @@ -63,8 +65,9 @@ public class XMLUtil { new Element[]{ createTextElement(doc, "Description",res.getString(3)), createTextElement(doc, "NumberOfMembers",res.getString(4)), - createTextElement(doc, "CreationTime",res.getString(5)), - createTextElement(doc, "LastUpdateTime",res.getString(6))}), + createTextElement(doc, "CreationTime",simpleDateFormat.format(new Date(Long.parseLong(res.getString(5))))), + createTextElement(doc, "LastUpdateTime",simpleDateFormat.format(new Date(Long.parseLong(res.getString(6))))) + }), createTextElement(doc, "Selected",relatedCollection.contains(res.getString(1)) ? "true" : "false") }); root.appendChild(collection); } @@ -96,7 +99,10 @@ public class XMLUtil { while (res.next()){ riRes= DBInterface.queryDB("select RI.id, RI.name, RI.class from RUNNINGINSTANCE as RI, GHNRELATEDRI as REL where REL.GHNID='"+res.getString("ID")+"' and REL.RIID=RI.ID"); Element risElement=doc.createElement("RunningInstances"); + int risNum=0; while (riRes.next()){ + if (!ServiceContext.getContext().getBaseServiceForGhn().contains(new ServicePair(riRes.getString(2),riRes.getString(3)))) + risNum++; Element riElement=addElements(doc, "RunningInstance", new Element[]{ createTextElement(doc, "Name",riRes.getString(2)), createTextElement(doc, "Class",riRes.getString(3)) @@ -105,7 +111,7 @@ public class XMLUtil { } Element ghnEl = addElements(doc, "GHN", new Element[]{ - createTextElement(doc, "ID",res.getString(1),new Couple("VREManagerUse",(candidateGHN.compareTo(res.getString("ID"))==0?"true":"false"))), + createTextElement(doc, "ID",res.getString(1),new Couple("selectable", risNum>0?"false":"true"),new Couple("VREManagerUse",(candidateGHN.compareTo(res.getString("ID"))==0?"true":"false"))), createTextElement(doc, "Host",res.getString(2)), addElements(doc, "Info", new Element[]{ risElement, diff --git a/src/org/gcube/vremanagement/vremodeler/test/ModelerTest.java b/src/org/gcube/vremanagement/vremodeler/test/ModelerTest.java index 6d94a4e..dfc7461 100644 --- a/src/org/gcube/vremanagement/vremodeler/test/ModelerTest.java +++ b/src/org/gcube/vremanagement/vremodeler/test/ModelerTest.java @@ -46,7 +46,7 @@ public class ModelerTest { msptp = GCUBERemotePortTypeContext.getProxy(msptp, GCUBEScope.getScope(args[0])); - + System.out.println("creation requested"); VRERequest vreReq= new VRERequest(); vreReq.setStartTime(new Date().getTime()); vreReq.setEndTime(new Date().getTime()); @@ -56,6 +56,10 @@ public class ModelerTest { vreReq.setVREName("test"); msptp.setVREModel(vreReq); + System.out.println("first call done"); + System.out.println(msptp.getGHNs(new VOID())); + + /* CollectionArray ca= new CollectionArray(); ca.setCollectionElement(new String[]{"e60f6340-e970-11dd-bb52-d1724dda0823"}); msptp.setCollection(ca); @@ -72,7 +76,7 @@ public class ModelerTest { msptp.deployVRE(new VOID()); - + */ }catch(Exception e){e.printStackTrace();} }