Reimplemented HTTPCall to better suite new client and publisher implementation. Client and Publisher now does not uses FWS but ICClient to discover resource-registry.

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/information-system/resource-registry-publisher@146531 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2017-04-03 16:44:47 +00:00
parent 85ea8432d6
commit 000fc10247
13 changed files with 145 additions and 340 deletions

View File

@ -1,4 +1,4 @@
package org.gcube.informationsystem.resourceregistry.publisher.proxy;
package org.gcube.informationsystem.resourceregistry.publisher;
import java.util.UUID;

View File

@ -0,0 +1,53 @@
package org.gcube.informationsystem.resourceregistry.publisher;
import java.util.List;
import java.util.Random;
import org.gcube.common.resources.gcore.GCoreEndpoint;
import org.gcube.informationsystem.resourceregistry.api.Constants;
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
import org.gcube.resources.discovery.icclient.ICFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class ResourceRegistryPublisherFactory {
protected static ResourceRegistryPublisher singleton;
private static String classFormat = "$resource/Profile/ServiceClass/text() eq '%1s'";
private static String nameFormat = "$resource/Profile/ServiceName/text() eq '%1s'";
private static String statusFormat = "$resource/Profile/DeploymentData/Status/text() eq 'ready'";
private static String containsFormat = "$entry/@EntryName eq '%1s'";
private static SimpleQuery getQuery(){
return ICFactory.queryFor(GCoreEndpoint.class)
.addCondition(String.format(classFormat, Constants.SERVICE_CLASS))
.addCondition(String.format(nameFormat, Constants.SERVICE_NAME))
.addCondition(String.format(statusFormat))
.addVariable("$entry","$resource/Profile/AccessPoint/RunningInstanceInterfaces/Endpoint")
.addCondition(String.format(containsFormat, Constants.SERVICE_ENTRY_NAME))
.setResult("$entry/text()");
}
public static ResourceRegistryPublisher create(){
if(singleton==null){
SimpleQuery query = getQuery();
List<String> addresses = ICFactory.client().submit(query);
if(addresses==null || addresses.isEmpty()){
String error = String.format("No %s:%s found in the current context", Constants.SERVICE_CLASS, Constants.SERVICE_NAME);
throw new RuntimeException(error);
}
Random random = new Random();
int index = random.nextInt(addresses.size());
singleton = new ResourceRegistryPublisherImpl(addresses.get(index));
}
return singleton;
}
}

View File

@ -1,15 +1,12 @@
package org.gcube.informationsystem.resourceregistry.publisher.proxy;
package org.gcube.informationsystem.resourceregistry.publisher;
import java.io.StringWriter;
import java.net.MalformedURLException;
import java.util.UUID;
import javax.xml.ws.EndpointReference;
import org.gcube.common.authorization.client.Constants;
import org.gcube.common.authorization.library.AuthorizationEntry;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.clients.delegates.AsyncProxyDelegate;
import org.gcube.common.clients.delegates.ProxyDelegate;
import org.gcube.common.clients.exceptions.ServiceException;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.informationsystem.impl.utils.ISMapper;
@ -38,12 +35,20 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
private static final Logger logger = LoggerFactory
.getLogger(ResourceRegistryPublisherImpl.class);
private final AsyncProxyDelegate<EndpointReference> delegate;
public static final String PATH_SEPARATOR = "/";
public ResourceRegistryPublisherImpl(ProxyDelegate<EndpointReference> config) {
this.delegate = new AsyncProxyDelegate<EndpointReference>(config);
protected final String address;
protected HTTPCall httpCall;
public ResourceRegistryPublisherImpl(String address) {
this.address = address;
}
protected HTTPCall getHTTPCall() throws MalformedURLException {
if(httpCall==null){
httpCall = new HTTPCall(address, ResourceRegistryPublisher.class.getSimpleName());
}
return httpCall;
}
@ -73,13 +78,11 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
String body = ISMapper.marshal(facet);
HTTPCall<F> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.PUT, null, body);
ResourceRegistryPublisherCall<F> call = new ResourceRegistryPublisherCall<>(
facetClass, httpCall);
F f = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
F f= httpCall.call(facetClass, stringWriter.toString(),
HTTPMETHOD.PUT, body);
logger.info("{} successfully created", f);
return f;
@ -105,13 +108,11 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(facet.getHeader().getUUID().toString());
String body = ISMapper.marshal(facet);
HTTPCall<F> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null, body);
ResourceRegistryPublisherCall<F> call = new ResourceRegistryPublisherCall<>(
facetClass, httpCall);
F f = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
F f= httpCall.call(facetClass, stringWriter.toString(),
HTTPMETHOD.POST, body);
logger.info("{} successfully updated", f);
return f;
@ -136,13 +137,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(facet.getHeader().getUUID().toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.DELETE, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean deleted = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean deleted = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.DELETE);
logger.info("{} {}", facet, deleted ? " successfully deleted"
: "was NOT deleted");
return deleted;
@ -172,13 +170,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
String body = ISMapper.marshal(resource);
HTTPCall<R> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.PUT, null, body);
ResourceRegistryPublisherCall<R> call = new ResourceRegistryPublisherCall<>(
resourceClass, httpCall);
R r = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
R r = httpCall.call(resourceClass, stringWriter.toString(),
HTTPMETHOD.PUT, body);
logger.info("{} successfully created", r);
return r;
@ -207,13 +202,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
String body = ISMapper.marshal(resource);
HTTPCall<R> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null, body);
ResourceRegistryPublisherCall<R> call = new ResourceRegistryPublisherCall<>(
resourceClass, httpCall);
R r = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
R r = httpCall.call(resourceClass, stringWriter.toString(),
HTTPMETHOD.POST, body);
logger.info("{} update created", r);
return r;
@ -238,13 +230,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(resource.getHeader().getUUID().toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.DELETE, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean deleted = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean deleted = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.DELETE);
logger.info("{} {}", resource, deleted ? " successfully deleted"
: "was NOT deleted");
return deleted;
@ -284,13 +273,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
String body = ISMapper.marshal(consistsOf);
HTTPCall<C> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.PUT, null, body);
ResourceRegistryPublisherCall<C> call = new ResourceRegistryPublisherCall<>(
consistsOfClass, httpCall);
C c = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
C c = httpCall.call(consistsOfClass, stringWriter.toString(),
HTTPMETHOD.PUT, body);
logger.info("{} successfully created", c);
return c;
@ -322,13 +308,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.DELETE, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean deleted = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean deleted = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.DELETE);
logger.info("{} with UUID {} {}", ConsistsOf.NAME, uuid, deleted ? " successfully deleted"
: "was NOT deleted");
return deleted;
@ -369,13 +352,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
String body = ISMapper.marshal(isRelatedTo);
HTTPCall<I> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.PUT, null, body);
ResourceRegistryPublisherCall<I> call = new ResourceRegistryPublisherCall<>(
isRelatedToClass, httpCall);
I i = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
I i = httpCall.call(isRelatedToClass, stringWriter.toString(),
HTTPMETHOD.PUT, body);
logger.info("{} successfully created", i);
return i;
@ -406,13 +386,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.DELETE, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean deleted = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean deleted = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.DELETE);
logger.info("{} with UUID {} {}", IsRelatedTo.NAME, uuid, deleted ? " successfully deleted"
: "was NOT deleted");
return deleted;
@ -446,13 +423,11 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean added = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean added = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.POST);
logger.info("{} with UUID {} was {} added to current {} : {}",
Resource.NAME, uuid, added ? "successfully" : "NOT",
Context.NAME, context);
@ -495,13 +470,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean added = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean added = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.POST);
logger.info("{} with UUID {} was {} added to current {} : {}",
Facet.NAME, uuid, added ? "successfully" : "NOT",
Context.NAME, context);
@ -545,13 +517,10 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean removed = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean removed = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.POST);
logger.info("{} with UUID {} was {} removed from current {} : {}",
Resource.NAME, uuid, removed ? "successfully" : "NOT",
Context.NAME, context);
@ -596,13 +565,11 @@ public class ResourceRegistryPublisherImpl implements ResourceRegistryPublisher
stringWriter.append(PATH_SEPARATOR);
stringWriter.append(uuid.toString());
HTTPCall<Boolean> httpCall = new HTTPCall<>(stringWriter.toString(),
HTTPMETHOD.POST, null);
ResourceRegistryPublisherCall<Boolean> call = new ResourceRegistryPublisherCall<>(
Boolean.class, httpCall);
boolean removed = delegate.make(call);
HTTPCall httpCall = getHTTPCall();
boolean removed = httpCall.call(Boolean.class, stringWriter.toString(),
HTTPMETHOD.POST);
logger.info("{} with UUID {} was {} removed from current {} : {}",
Facet.NAME, uuid, removed ? "successfully" : "NOT",
Context.NAME, context);

View File

@ -1,34 +0,0 @@
package org.gcube.informationsystem.resourceregistry.publisher.plugin;
import org.gcube.common.clients.fw.plugin.Plugin;
import org.gcube.informationsystem.resourceregistry.api.Constants;
/**
*
* @author Luca Frosini (ISTI - CNR)
*
* @param <S>
* @param <P>
*/
public abstract class AbstractPlugin<S, P> implements Plugin<S, P> {
public final String name;
public AbstractPlugin(String name) {
this.name = name;
}
public String serviceClass() {
return Constants.SERVICE_CLASS;
}
public String serviceName() {
return Constants.SERVICE_NAME;
}
public String name() {
return name;
}
}

View File

@ -1,57 +0,0 @@
/**
*
*/
package org.gcube.informationsystem.resourceregistry.publisher.plugin;
import javax.xml.ws.EndpointReference;
import org.gcube.common.clients.config.ProxyConfig;
import org.gcube.common.clients.delegates.ProxyDelegate;
import org.gcube.informationsystem.resourceregistry.api.Constants;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherImpl;
/**
* @author Luca Frosini (ISTI - CNR)
*
*/
public class ResourceRegistryPublisherPlugin extends AbstractPlugin<EndpointReference, ResourceRegistryPublisher>{
public ResourceRegistryPublisherPlugin(){
super(Constants.SERVICE_ENTRY_NAME);
}
@Override
public String namespace() {
return null;
}
@Override
public Exception convert(Exception fault, ProxyConfig<?, ?> config) {
// The Jersey client wraps the exception. So we need to get the wrapped
// exception thrown by ResourceRegistry Service.
Throwable throwable = fault.getCause();
if(throwable != null && throwable instanceof ResourceRegistryException){
return (Exception) throwable;
}
return fault;
}
@Override
public EndpointReference resolve(EndpointReference address,
ProxyConfig<?, ?> config) throws Exception {
return address;
}
@Override
public ResourceRegistryPublisher newProxy(
ProxyDelegate<EndpointReference> delegate) {
return new ResourceRegistryPublisherImpl(delegate);
}
}

View File

@ -1,64 +0,0 @@
/**
*
*/
package org.gcube.informationsystem.resourceregistry.publisher.proxy;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.ws.EndpointReference;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
/**
* @author Luca Frosini (ISTI - CNR)
*/
class JaxRSEndpointReference {
private static final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
private static final String addressLocalName = "Address";
String address;
static {
factory.setNamespaceAware(true);
}
public JaxRSEndpointReference(EndpointReference reference) {
this(serialise(reference));
}
public JaxRSEndpointReference(String reference) {
try {
Document document = factory.newDocumentBuilder().parse(new InputSource(new StringReader(reference)));
NodeList addresses = document.getElementsByTagNameNS("*", addressLocalName);
if (addresses.getLength() == 0)
throw new RuntimeException("reference does not contain an address");
address = addresses.item(0).getTextContent();
} catch (Exception e) {
throw new IllegalArgumentException("reference is not a gCore reference", e);
}
}
@Override
public String toString() {
return address;
}
// helper
private static String serialise(EndpointReference reference) {
StringWriter writer = new StringWriter();
reference.writeTo(new StreamResult(writer));
return writer.toString();
}
}

View File

@ -1,36 +0,0 @@
package org.gcube.informationsystem.resourceregistry.publisher.proxy;
import java.io.IOException;
import java.net.URL;
import javax.xml.ws.EndpointReference;
import org.gcube.common.clients.Call;
import org.gcube.informationsystem.resourceregistry.api.rest.httputils.HTTPCall;
class ResourceRegistryPublisherCall<C> implements Call<EndpointReference, C> {
protected final Class<C> clazz;
protected final HTTPCall<C> httpInputs;
public ResourceRegistryPublisherCall(Class<C> clazz, HTTPCall<C> httpInputs) {
this.clazz = clazz;
this.httpInputs = httpInputs;
}
protected String getURLStringFromEndpointReference(
EndpointReference endpoint) throws IOException {
JaxRSEndpointReference jaxRSEndpointReference = new JaxRSEndpointReference(
endpoint);
return jaxRSEndpointReference.toString();
}
@Override
public C call(EndpointReference endpoint) throws Exception {
String urlFromEndpointReference = getURLStringFromEndpointReference(endpoint);
StringBuilder callUrl = new StringBuilder(urlFromEndpointReference);
callUrl.append(httpInputs.getPath());
URL url = new URL(callUrl.toString());
return httpInputs.call(clazz, url, ResourceRegistryPublisher.class.getSimpleName());
}
}

View File

@ -1,24 +0,0 @@
package org.gcube.informationsystem.resourceregistry.publisher.proxy;
import javax.xml.ws.EndpointReference;
import org.gcube.common.clients.fw.builders.StatelessBuilderImpl;
import org.gcube.informationsystem.resourceregistry.publisher.plugin.ResourceRegistryPublisherPlugin;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class ResourceRegistryPublisherFactory {
protected static ResourceRegistryPublisher singleton;
public static ResourceRegistryPublisher create(){
if(singleton==null){
ResourceRegistryPublisherPlugin plugin = new ResourceRegistryPublisherPlugin();
singleton = new StatelessBuilderImpl<EndpointReference, ResourceRegistryPublisher>(plugin).build();
}
return singleton;
}
}

View File

@ -45,11 +45,11 @@ import org.gcube.informationsystem.model.relation.IsRelatedTo;
import org.gcube.informationsystem.model.relation.Relation;
import org.gcube.informationsystem.model.relation.isrelatedto.Hosts;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.client.proxy.Direction;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherFactory;
import org.gcube.informationsystem.resourceregistry.client.Direction;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisherFactory;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;

View File

@ -23,8 +23,8 @@ import org.gcube.informationsystem.model.entity.resource.HostingNode;
import org.gcube.informationsystem.model.relation.ConsistsOf;
import org.gcube.informationsystem.model.relation.IsIdentifiedBy;
import org.gcube.informationsystem.model.relation.isrelatedto.Hosts;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherFactory;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisherFactory;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;

View File

@ -39,10 +39,10 @@ import org.gcube.informationsystem.model.relation.consistsof.HasPersistentMemory
import org.gcube.informationsystem.model.relation.consistsof.HasVolatileMemory;
import org.gcube.informationsystem.model.relation.isrelatedto.Hosts;
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherFactory;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisherFactory;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;

View File

@ -19,10 +19,10 @@ import org.gcube.informationsystem.model.relation.IsIdentifiedBy;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetNotFoundException;
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.proxy.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherFactory;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientFactory;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisherFactory;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;

View File

@ -51,8 +51,8 @@ import org.gcube.informationsystem.model.relation.IsIdentifiedBy;
import org.gcube.informationsystem.model.relation.consistsof.HasPersistentMemory;
import org.gcube.informationsystem.model.relation.consistsof.HasVolatileMemory;
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.proxy.ResourceRegistryPublisherFactory;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisher;
import org.gcube.informationsystem.resourceregistry.publisher.ResourceRegistryPublisherFactory;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;