git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/branches/data-transfer/data-transfer-service/2.0@160408 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
04e826621e
commit
3194959b9e
|
@ -19,8 +19,8 @@ public class DTServiceAppManager implements ApplicationManager {
|
||||||
RequestManager requests;
|
RequestManager requests;
|
||||||
@Inject
|
@Inject
|
||||||
TicketManager tickets;
|
TicketManager tickets;
|
||||||
@Inject
|
|
||||||
PluginManager plugins;
|
PluginManager plugins=PluginManager.get();
|
||||||
|
|
||||||
|
|
||||||
ApplicationContext ctx = ContextProvider.get();
|
ApplicationContext ctx = ContextProvider.get();
|
||||||
|
|
|
@ -12,21 +12,24 @@ import javax.ws.rs.core.Response.Status;
|
||||||
|
|
||||||
import org.gcube.data.transfer.model.ServiceConstants;
|
import org.gcube.data.transfer.model.ServiceConstants;
|
||||||
import org.gcube.data.transfer.model.TransferCapabilities;
|
import org.gcube.data.transfer.model.TransferCapabilities;
|
||||||
|
import org.gcube.data.transfer.service.DTServiceAppManager;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.CapabilitiesProvider;
|
import org.gcube.data.transfer.service.transfers.engine.CapabilitiesProvider;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.PluginManager;
|
import org.gcube.data.transfer.service.transfers.engine.PluginManager;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.faults.PluginNotFoundException;
|
import org.gcube.data.transfer.service.transfers.engine.faults.PluginNotFoundException;
|
||||||
|
import org.gcube.smartgears.annotations.ManagedBy;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Path(ServiceConstants.CAPABILTIES_SERVLET_NAME)
|
@Path(ServiceConstants.CAPABILTIES_SERVLET_NAME)
|
||||||
|
@ManagedBy(DTServiceAppManager.class)
|
||||||
public class Capabilities {
|
public class Capabilities {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
CapabilitiesProvider provider;
|
CapabilitiesProvider provider;
|
||||||
|
|
||||||
@Inject
|
|
||||||
PluginManager plugins;
|
PluginManager plugins=PluginManager.get();
|
||||||
|
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.gcube.data.transfer.model.PluginInvocation;
|
||||||
import org.gcube.data.transfer.plugin.fails.PluginException;
|
import org.gcube.data.transfer.plugin.fails.PluginException;
|
||||||
import org.gcube.data.transfer.plugin.fails.PluginExecutionException;
|
import org.gcube.data.transfer.plugin.fails.PluginExecutionException;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.faults.PluginNotFoundException;
|
import org.gcube.data.transfer.service.transfers.engine.faults.PluginNotFoundException;
|
||||||
|
import org.gcube.data.transfer.service.transfers.engine.impl.PluginManagerImpl;
|
||||||
|
|
||||||
public interface PluginManager {
|
public interface PluginManager {
|
||||||
|
|
||||||
|
@ -18,4 +19,7 @@ public interface PluginManager {
|
||||||
|
|
||||||
public void initPlugins();
|
public void initPlugins();
|
||||||
|
|
||||||
|
public static PluginManager get() {
|
||||||
|
return PluginManagerImpl.get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,9 +32,9 @@ public class CapabilitiesProviderImpl implements CapabilitiesProvider {
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CapabilitiesProviderImpl(PersistenceProvider persistenceProvider,PluginManager pluginManager) {
|
public CapabilitiesProviderImpl(PersistenceProvider persistenceProvider) {
|
||||||
this.persistenceProvider = persistenceProvider;
|
this.persistenceProvider = persistenceProvider;
|
||||||
this.pluginManager=pluginManager;
|
this.pluginManager=PluginManager.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @Synchronized
|
@Override @Synchronized
|
||||||
|
|
|
@ -22,17 +22,28 @@ import lombok.Synchronized;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Singleton
|
|
||||||
public class PluginManagerImpl implements PluginManager {
|
public class PluginManagerImpl implements PluginManager {
|
||||||
|
|
||||||
private static ServiceLoader<AbstractPluginFactory> abstractFactoryLoader = null;
|
private static ServiceLoader<AbstractPluginFactory> abstractFactoryLoader = null;
|
||||||
|
|
||||||
private static Map<String,PluginDescription> installedPlugins=null;
|
private static Map<String,PluginDescription> installedPlugins=null;
|
||||||
|
|
||||||
|
private static PluginManagerImpl instance=null;
|
||||||
|
|
||||||
|
public static synchronized PluginManagerImpl get() {
|
||||||
|
if(instance==null)
|
||||||
|
instance=new PluginManagerImpl();
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// INSTANCE
|
||||||
|
|
||||||
|
|
||||||
public PluginManagerImpl() {
|
public PluginManagerImpl() {
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, PluginDescription> getInstalledPlugins() {
|
public Map<String, PluginDescription> getInstalledPlugins() {
|
||||||
return installedPlugins;
|
return installedPlugins;
|
||||||
|
|
|
@ -31,10 +31,10 @@ public class RequestManagerImpl implements RequestManager{
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RequestManagerImpl(TicketManager ticketManager,PersistenceProvider persistenceProvider,PluginManager pluginManager) {
|
public RequestManagerImpl(TicketManager ticketManager,PersistenceProvider persistenceProvider) {
|
||||||
executor=Executors.newCachedThreadPool();
|
executor=Executors.newCachedThreadPool();
|
||||||
this.persistenceProvider=persistenceProvider;
|
this.persistenceProvider=persistenceProvider;
|
||||||
this.pluginManager=pluginManager;
|
this.pluginManager=PluginManager.get();
|
||||||
this.ticketManager=ticketManager;
|
this.ticketManager=ticketManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.gcube.data.transfer.model.TransferCapabilities;
|
||||||
import org.gcube.data.transfer.model.options.HttpDownloadOptions;
|
import org.gcube.data.transfer.model.options.HttpDownloadOptions;
|
||||||
import org.gcube.data.transfer.model.options.TransferOptions;
|
import org.gcube.data.transfer.model.options.TransferOptions;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.CapabilitiesProvider;
|
import org.gcube.data.transfer.service.transfers.engine.CapabilitiesProvider;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.impl.PluginManagerImpl;
|
import org.gcube.data.transfer.service.transfers.engine.PluginManager;
|
||||||
import org.glassfish.hk2.api.Factory;
|
import org.glassfish.hk2.api.Factory;
|
||||||
|
|
||||||
public class CapabilitiesProviderFactory implements Factory<CapabilitiesProvider> {
|
public class CapabilitiesProviderFactory implements Factory<CapabilitiesProvider> {
|
||||||
|
@ -25,7 +25,7 @@ public class CapabilitiesProviderFactory implements Factory<CapabilitiesProvider
|
||||||
public TransferCapabilities get() {
|
public TransferCapabilities get() {
|
||||||
return new TransferCapabilities("12345", "localhost", 80,
|
return new TransferCapabilities("12345", "localhost", 80,
|
||||||
Collections.singleton((TransferOptions)HttpDownloadOptions.DEFAULT),
|
Collections.singleton((TransferOptions)HttpDownloadOptions.DEFAULT),
|
||||||
new HashSet<PluginDescription>(new PluginManagerImpl().getInstalledPlugins().values())
|
new HashSet<PluginDescription>(PluginManager.get().getInstalledPlugins().values())
|
||||||
,Collections.singleton("data-transfer-service"));
|
,Collections.singleton("data-transfer-service"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
package org.gcube.data.transfer.service;
|
|
||||||
|
|
||||||
import org.gcube.data.transfer.service.transfers.engine.PluginManager;
|
|
||||||
import org.gcube.data.transfer.service.transfers.engine.impl.PluginManagerImpl;
|
|
||||||
import org.glassfish.hk2.api.Factory;
|
|
||||||
|
|
||||||
public class PluginManagerFactory implements Factory<PluginManager> {
|
|
||||||
|
|
||||||
static PluginManagerImpl impl=new PluginManagerImpl();
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void dispose(PluginManager arg0) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PluginManager provide() {
|
|
||||||
return impl;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -14,8 +14,7 @@ public class RequestManagerFactory implements Factory<RequestManager> {
|
||||||
@Override
|
@Override
|
||||||
public RequestManager provide() {
|
public RequestManager provide() {
|
||||||
return new RequestManagerImpl(new TicketManagerProvider().provide(),
|
return new RequestManagerImpl(new TicketManagerProvider().provide(),
|
||||||
new PersistenceProviderFactory().provide(),
|
new PersistenceProviderFactory().provide());
|
||||||
new PluginManagerFactory().provide());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ public class TestCall extends JerseyTest {
|
||||||
bindFactory(CapabilitiesProviderFactory.class).to(CapabilitiesProvider.class);
|
bindFactory(CapabilitiesProviderFactory.class).to(CapabilitiesProvider.class);
|
||||||
bindFactory(RequestManagerFactory.class).to(RequestManager.class);
|
bindFactory(RequestManagerFactory.class).to(RequestManager.class);
|
||||||
bindFactory(PersistenceProviderFactory.class).to(PersistenceProvider.class);
|
bindFactory(PersistenceProviderFactory.class).to(PersistenceProvider.class);
|
||||||
bindFactory(PluginManagerFactory.class).to(PluginManager.class);
|
// bindFactory(PluginManagerFactory.class).to(PluginManager.class);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package org.gcube.data.transfer.service;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.gcube.data.transfer.model.PluginDescription;
|
import org.gcube.data.transfer.model.PluginDescription;
|
||||||
import org.gcube.data.transfer.service.transfers.engine.impl.PluginManagerImpl;
|
import org.gcube.data.transfer.service.transfers.engine.PluginManager;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ public class TestPlugins {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPlugins(){
|
public void testPlugins(){
|
||||||
Map<String,PluginDescription> plugins=new PluginManagerImpl().getInstalledPlugins();
|
Map<String,PluginDescription> plugins=PluginManager.get().getInstalledPlugins();
|
||||||
Assert.assertNotNull(plugins);
|
Assert.assertNotNull(plugins);
|
||||||
System.out.println(plugins);
|
System.out.println(plugins);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue