smart-executor-client/src/main/java/org/gcube/vremanagement/executor/client/plugins/ExecutorPlugin.java

121 lines
4.5 KiB
Java

/**
*
*/
package org.gcube.vremanagement.executor.client.plugins;
import javax.xml.ws.EndpointReference;
import org.gcube.common.calls.jaxws.StubFactory;
import org.gcube.common.clients.ProxyBuilder;
import org.gcube.common.clients.ProxyBuilderImpl;
import org.gcube.common.clients.config.ProxyConfig;
import org.gcube.common.clients.delegates.ProxyDelegate;
import org.gcube.vremanagement.executor.api.SmartExecutor;
import org.gcube.vremanagement.executor.client.Constants;
import org.gcube.vremanagement.executor.client.SmartExecutorClientFactory;
import org.gcube.vremanagement.executor.client.plugins.query.SmartExecutorPluginQuery;
import org.gcube.vremanagement.executor.client.plugins.query.filter.EndpointDiscoveryFilter;
import org.gcube.vremanagement.executor.client.plugins.query.filter.ServiceEndpointQueryFilter;
import org.gcube.vremanagement.executor.client.proxies.DefaultSmartExecutorProxy;
import org.gcube.vremanagement.executor.client.proxies.SmartExecutorProxy;
import org.gcube.vremanagement.executor.client.util.Tuple;
/**
* @author Luca Frosini (ISTI - CNR)
* Use {@link SmartExecutorClientFactory} instead
*/
@Deprecated
public class ExecutorPlugin extends AbstractPlugin<SmartExecutor,SmartExecutorProxy> {
/**
* Use {@link SmartExecutorClientFactory#create(String, java.util.Map, org.gcube.vremanagement.executor.client.query.filter.ServiceEndpointQueryFilter, org.gcube.vremanagement.executor.client.query.filter.GCoreEndpointQueryFilter)}
* instead
* @param pluginName
* @param tuples
* @param serviceEndpointQueryFilter
* @param endpointDiscoveryFilter
* @return
*/
public static ProxyBuilder<SmartExecutorProxy> getExecutorProxy(String pluginName, Tuple<String,String>[] tuples,
ServiceEndpointQueryFilter serviceEndpointQueryFilter, EndpointDiscoveryFilter endpointDiscoveryFilter) {
ExecutorPlugin executorPlugin = new ExecutorPlugin();
SmartExecutorPluginQuery query = new SmartExecutorPluginQuery(executorPlugin);
query.addConditions(pluginName, tuples);
query.setServiceEndpointQueryFilter(serviceEndpointQueryFilter);
query.setEndpointDiscoveryFilter(endpointDiscoveryFilter);
return new ProxyBuilderImpl<SmartExecutor,SmartExecutorProxy>(executorPlugin, query);
}
/**
* Use {@link SmartExecutorClientFactory#create(String, java.util.Map, org.gcube.vremanagement.executor.client.query.filter.ServiceEndpointQueryFilter, org.gcube.vremanagement.executor.client.query.filter.GCoreEndpointQueryFilter)}
* instead
* @param pluginName
* @param tuples
* @return
*/
@SafeVarargs
public static ProxyBuilder<SmartExecutorProxy> getExecutorProxy(String pluginName, Tuple<String,String>... tuples) {
ExecutorPlugin executorPlugin = new ExecutorPlugin();
SmartExecutorPluginQuery query = new SmartExecutorPluginQuery(executorPlugin);
query.addConditions(pluginName, tuples);
return new ProxyBuilderImpl<SmartExecutor,SmartExecutorProxy>(executorPlugin, query);
}
/**
* Use {@link SmartExecutorClientFactory#create()} instead
* @return
*/
public static ProxyBuilder<SmartExecutorProxy> getExecutorProxy() {
ExecutorPlugin executorPlugin = new ExecutorPlugin();
return new ProxyBuilderImpl<SmartExecutor,SmartExecutorProxy>(executorPlugin);
}
/**
* For internal use only to support backward compatibility
* @param query
* @param executorPlugin
* @return
*/
@Deprecated
public static ProxyBuilder<SmartExecutorProxy> getExecutorProxy(SmartExecutorPluginQuery query,
ExecutorPlugin executorPlugin) {
return new ProxyBuilderImpl<SmartExecutor,SmartExecutorProxy>(executorPlugin, query);
}
/**
* For internal use only to support backward compatibility
*
*/
public ExecutorPlugin() {
super(SmartExecutor.WEB_SERVICE_SERVICE_NAME);
}
/**
* For internal use only to support backward compatibility
* Use {@link SmartExecutorClientFactory} instead
*/
@Override
public Exception convert(Exception fault, ProxyConfig<?,?> proxyConfig) {
return fault;
}
/**
* For internal use only to support backward compatibility
* Use {@link SmartExecutorClientFactory#create(String)} instead
*/
@Override
public SmartExecutorProxy newProxy(ProxyDelegate<SmartExecutor> proxyDelegate) {
return new DefaultSmartExecutorProxy(proxyDelegate);
}
/**
* For internal use only to support backward compatibility
* Use {@link SmartExecutorClientFactory} instead
*/
@Override
public SmartExecutor resolve(EndpointReference endpoint, ProxyConfig<?,?> proxyConfig) throws Exception {
return StubFactory.stubFor(Constants.smartExecutor).at(endpoint);
}
}