Added class to create missing context
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/private/luca.frosini/resource-registry-database-creator@166941 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
717b603064
commit
4a3ba04384
6
pom.xml
6
pom.xml
|
@ -60,6 +60,12 @@
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>context-enumeration</artifactId>
|
||||||
|
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
package org.gcube.informationsystem.resourceregistry.context;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.gcube.common.scope.impl.ScopeBean;
|
||||||
|
import org.gcube.context.ContextElaborator;
|
||||||
|
import org.gcube.informationsystem.impl.entity.ContextImpl;
|
||||||
|
import org.gcube.informationsystem.impl.utils.ISMapper;
|
||||||
|
import org.gcube.informationsystem.model.entity.Context;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class ContextCreator extends ContextElaborator {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(ContextCreator.class);
|
||||||
|
|
||||||
|
protected Map<String, UUID> contexts;
|
||||||
|
|
||||||
|
protected ContextManagement contextManagement;
|
||||||
|
|
||||||
|
public ContextCreator() {
|
||||||
|
super();
|
||||||
|
contexts = new HashMap<>();
|
||||||
|
contextManagement = new ContextManagement();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Context create(Context context) throws ResourceRegistryException, IOException {
|
||||||
|
ContextManagement contextManagement = new ContextManagement();
|
||||||
|
contextManagement.setJSON(ISMapper.marshal(context));
|
||||||
|
String contextString = contextManagement.create();
|
||||||
|
logger.info("Created {}", contextString);
|
||||||
|
Context c = ISMapper.unmarshal(Context.class, contextString);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected UUID getContextUUID(ScopeBean scopeBean) throws ResourceRegistryException, IOException {
|
||||||
|
if(scopeBean!=null) {
|
||||||
|
try {
|
||||||
|
UUID uuid = contexts.get(scopeBean.toString());
|
||||||
|
if(uuid==null) {
|
||||||
|
uuid = ContextUtility.getInstance().getContextUUIDFromFullName(scopeBean.toString());
|
||||||
|
if(uuid!=null) {
|
||||||
|
contexts.put(scopeBean.toString(), uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return uuid;
|
||||||
|
}catch (ContextException e) {
|
||||||
|
logger.info("{} does not exists", scopeBean);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void elaborateContext(ScopeBean scopeBean) throws Exception {
|
||||||
|
UUID uuid = getContextUUID(scopeBean);
|
||||||
|
if(uuid==null) {
|
||||||
|
logger.info("Parent Context of {} is {}", scopeBean, scopeBean.enclosingScope());
|
||||||
|
UUID parentUUID = getContextUUID(scopeBean.enclosingScope());
|
||||||
|
Context context = new ContextImpl(scopeBean.name());
|
||||||
|
if(parentUUID!=null) {
|
||||||
|
context.setParent(parentUUID);
|
||||||
|
}
|
||||||
|
context = create(context);
|
||||||
|
contexts.put(scopeBean.toString(), context.getHeader().getUUID());
|
||||||
|
}else {
|
||||||
|
logger.info("Context {} is already present with UUID {}", scopeBean, uuid.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gcube.informationsystem.resourceregistry.context;
|
package org.gcube.informationsystem.resourceregistry.context;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -7,6 +8,7 @@ import org.gcube.informationsystem.impl.entity.ContextImpl;
|
||||||
import org.gcube.informationsystem.impl.utils.ISMapper;
|
import org.gcube.informationsystem.impl.utils.ISMapper;
|
||||||
import org.gcube.informationsystem.model.entity.Context;
|
import org.gcube.informationsystem.model.entity.Context;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||||
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -46,4 +48,18 @@ public class ContextManagementTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createProductionContext() throws Exception {
|
||||||
|
File src = new File("src");
|
||||||
|
File test = new File(src, "test");
|
||||||
|
File resources = new File(test, "resources");
|
||||||
|
|
||||||
|
File voFile = new File(resources, "scopedata.xml");
|
||||||
|
|
||||||
|
ContextCreator contextCreator = new ContextCreator();
|
||||||
|
contextCreator.all(voFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|
||||||
<logger name="org.gcube" level="INFO" />
|
<logger name="org.gcube" level="ERROR" />
|
||||||
<logger name="org.gcube.informationsystem" level="INFO" />
|
<logger name="org.gcube.informationsystem.resourceregistry.context" level="INFO" />
|
||||||
|
|
||||||
<root level="WARN">
|
<root level="WARN">
|
||||||
<appender-ref ref="STDOUT" />
|
<appender-ref ref="STDOUT" />
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<infrastructures>
|
||||||
|
<infrastructure>
|
||||||
|
<name>d4science</name>
|
||||||
|
<vos>
|
||||||
|
<vo>
|
||||||
|
<name>d4science</name>
|
||||||
|
<src>ServiceMap_d4science.research-infrastructures.eu.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/D4Research</name>
|
||||||
|
<src>ServiceMap_D4Research.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/D4Research</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/Edison</name>
|
||||||
|
<src>ServiceMap_Edison.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/Edison</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/FARM</name>
|
||||||
|
<src>ServiceMap_FARM.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/FARM</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/gCubeApps</name>
|
||||||
|
<src>ServiceMap_gCubeApps.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/gCubeApps</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/OpenAIRE</name>
|
||||||
|
<src>ServiceMap_OpenAIRE.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/OpenAIRE</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/ParthenosVO</name>
|
||||||
|
<src>ServiceMap_ParthenosVO.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/ParthenosVO</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/SmartArea</name>
|
||||||
|
<src>ServiceMap_SmartArea.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/SmartArea</scope>
|
||||||
|
</vo>
|
||||||
|
<vo>
|
||||||
|
<name>d4science/SoBigData</name>
|
||||||
|
<src>ServiceMap_SoBigData.xml</src>
|
||||||
|
<scope>/d4science.research-infrastructures.eu/SoBigData</scope>
|
||||||
|
</vo>
|
||||||
|
</vos>
|
||||||
|
</infrastructure>
|
||||||
|
</infrastructures>
|
Loading…
Reference in New Issue