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();}
}