blob: a62440e504b3108f85c24bfa2c672e9a7f901ad4 [file] [log] [blame]
package org.apache.taverna.workbench.ui.impl;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
import java.util.Set;
import javax.swing.ImageIcon;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.taverna.configuration.ConfigurationManager;
import org.apache.taverna.configuration.app.ApplicationConfiguration;
import org.apache.taverna.configuration.app.impl.ApplicationConfigurationImpl;
import org.apache.taverna.configuration.impl.ConfigurationManagerImpl;
import org.apache.taverna.lang.observer.Observer;
import org.apache.taverna.platform.capability.activity.impl.ActivityServiceImpl;
import org.apache.taverna.platform.capability.api.ActivityService;
import org.apache.taverna.platform.capability.api.DispatchLayerService;
import org.apache.taverna.platform.capability.dispatch.impl.DispatchLayerServiceImpl;
import org.apache.taverna.platform.execution.api.ExecutionEnvironmentService;
import org.apache.taverna.platform.execution.api.ExecutionService;
import org.apache.taverna.platform.execution.impl.ExecutionEnvironmentServiceImpl;
import org.apache.taverna.platform.execution.impl.local.LocalExecutionService;
import org.apache.taverna.platform.run.api.RunService;
import org.apache.taverna.platform.run.impl.RunServiceImpl;
import org.apache.taverna.plugin.Plugin;
import org.apache.taverna.plugin.PluginException;
import org.apache.taverna.plugin.PluginManager;
import org.apache.taverna.plugin.xml.jaxb.PluginVersions;
import org.apache.taverna.reference.ExternalReferenceBuilderSPI;
import org.apache.taverna.reference.ExternalReferenceTranslatorSPI;
import org.apache.taverna.reference.ListService;
import org.apache.taverna.reference.ReferenceService;
import org.apache.taverna.reference.StreamToValueConverterSPI;
import org.apache.taverna.reference.ValueToReferenceConverterSPI;
import org.apache.taverna.reference.impl.ErrorDocumentServiceImpl;
import org.apache.taverna.reference.impl.InMemoryErrorDocumentDao;
import org.apache.taverna.reference.impl.InMemoryListDao;
import org.apache.taverna.reference.impl.InMemoryReferenceSetDao;
import org.apache.taverna.reference.impl.ListServiceImpl;
import org.apache.taverna.reference.impl.ReferenceServiceImpl;
import org.apache.taverna.reference.impl.ReferenceSetAugmentorImpl;
import org.apache.taverna.reference.impl.ReferenceSetServiceImpl;
import org.apache.taverna.reference.impl.SimpleT2ReferenceGenerator;
import org.apache.taverna.reference.impl.external.object.InlineByteArrayReferenceBuilder;
import org.apache.taverna.reference.impl.external.object.InlineByteToInlineStringTranslator;
import org.apache.taverna.reference.impl.external.object.InlineStringReferenceBuilder;
import org.apache.taverna.reference.impl.external.object.InlineStringToInlineByteTranslator;
import org.apache.taverna.renderers.Renderer;
import org.apache.taverna.renderers.RendererRegistry;
import org.apache.taverna.renderers.impl.RendererRegistryImpl;
import org.apache.taverna.scufl2.api.common.WorkflowBean;
import org.apache.taverna.scufl2.api.profiles.Profile;
import org.apache.taverna.scufl2.validation.Status;
import org.apache.taverna.scufl2.validation.WorkflowBeanReport;
import org.apache.taverna.security.credentialmanager.CMException;
import org.apache.taverna.security.credentialmanager.CredentialManager;
import org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl;
import org.apache.taverna.servicedescriptions.ServiceDescriptionProvider;
import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
import org.apache.taverna.servicedescriptions.impl.ServiceDescriptionRegistryImpl;
import org.apache.taverna.services.ServiceRegistry;
import org.apache.taverna.services.impl.ServiceRegistryImpl;
import org.apache.taverna.ui.menu.DefaultMenuBar;
import org.apache.taverna.ui.menu.DefaultToolBar;
import org.apache.taverna.ui.menu.MenuComponent;
import org.apache.taverna.ui.menu.MenuManager;
import org.apache.taverna.ui.menu.impl.MenuManagerImpl;
import org.apache.taverna.ui.perspectives.design.DesignPerspective;
import org.apache.taverna.ui.perspectives.results.ResultsPerspective;
import org.apache.taverna.workbench.ShutdownSPI;
import org.apache.taverna.workbench.StartupSPI;
import org.apache.taverna.workbench.activityicons.ActivityIconManager;
import org.apache.taverna.workbench.activityicons.ActivityIconSPI;
import org.apache.taverna.workbench.activityicons.impl.ActivityIconManagerImpl;
import org.apache.taverna.workbench.configuration.colour.ColourManager;
import org.apache.taverna.workbench.configuration.workbench.WorkbenchConfiguration;
import org.apache.taverna.workbench.edits.EditManager;
import org.apache.taverna.workbench.edits.impl.EditManagerImpl;
import org.apache.taverna.workbench.file.FileManager;
import org.apache.taverna.workbench.file.impl.FileManagerImpl;
import org.apache.taverna.workbench.report.ReportManager;
import org.apache.taverna.workbench.report.ReportManagerEvent;
import org.apache.taverna.workbench.selection.SelectionManager;
import org.apache.taverna.workbench.selection.impl.SelectionManagerImpl;
import org.apache.taverna.workbench.ui.credentialmanager.startup.InitialiseSSLStartupHook;
import org.apache.taverna.workbench.ui.credentialmanager.startup.SetCredManAuthenticatorStartupHook;
import org.apache.taverna.workbench.ui.impl.configuration.colour.ColourManagerImpl;
import org.apache.taverna.workbench.ui.servicepanel.ServicePanelComponentFactory;
import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactoryRegistry;
import org.apache.taverna.workbench.ui.views.contextualviews.activity.impl.ContextualViewFactoryRegistryImpl;
import org.apache.taverna.workbench.ui.views.contextualviews.impl.ContextualViewComponentFactory;
import org.apache.taverna.workbench.ui.workflowexplorer.WorkflowExplorerFactory;
import org.apache.taverna.workbench.ui.zaria.PerspectiveSPI;
import org.apache.taverna.workbench.ui.zaria.UIComponentFactorySPI;
import org.apache.taverna.workbench.ui.zaria.UIComponentSPI;
import org.apache.taverna.workbench.views.graph.GraphViewComponentFactory;
import org.apache.taverna.workbench.views.graph.config.GraphViewConfiguration;
import org.apache.taverna.workbench.views.results.saveactions.SaveAllResultsSPI;
import org.apache.taverna.workbench.views.results.saveactions.SaveIndividualResultSPI;
import org.apache.taverna.workflowmodel.Edits;
import org.apache.taverna.workflowmodel.processor.activity.ActivityFactory;
import org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayerFactory;
import org.apache.taverna.workflowmodel.processor.dispatch.layers.CoreDispatchLayerFactory;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventAdmin;
public class WorkbenchTest {
public static void main(String[] args) throws InterruptedException {
System.setProperty("taverna.app.startup", Paths.get("target").toAbsolutePath().toString());
WorkbenchImpl w = new WorkbenchTest().getWorkbench();
w.initialize();
synchronized(w) {
// It won't actually get interrupted, but it means we persist
// as long as w rather than exiting
w.wait();
}
}
private EditManagerImpl editManagerImpl;
private FileManagerImpl fileManager;
private WorkbenchImpl workbench;
private MenuManagerImpl menuManager;
private SelectionManagerImpl selectionManager;
private List<MenuComponent> menuComponents;
private CredentialManagerImpl credentialManager;
private ContextualViewFactoryRegistryImpl registry;
private ServicePanelComponentFactory servicePanelFactory;
private WorkflowExplorerFactory workflowExplorerFactory;
private ServiceDescriptionRegistryImpl serviceDescriptionRegistry;
private ConfigurationManagerImpl configurationManager;
public FileManager getFileManager() {
if (fileManager == null) {
fileManager = new FileManagerImpl(getEditManager());
}
return fileManager;
}
public EditManager getEditManager() {
if (editManagerImpl == null) {
editManagerImpl = new EditManagerImpl();
}
return editManagerImpl;
}
public MenuManager getMenuManager() {
if (menuManager == null) {
menuManager = new MenuManagerImpl();
menuManager.setSelectionManager(getSelectionManager());
menuManager.setMenuComponents(getMenuComponents());
}
return menuManager;
}
public List<MenuComponent> getMenuComponents() {
if (menuComponents == null) {
// This does not work as many of the actions are set in constructor
// rather than with setters
// menuComponents = serviceLoader(MenuComponent.class);
// Instead, we'll make an empty menu
menuComponents = new ArrayList<>();
menuComponents.add(new DefaultMenuBar());
menuComponents.add(new DefaultToolBar());
}
return menuComponents;
}
public SelectionManager getSelectionManager() {
if (selectionManager == null) {
selectionManager = new SelectionManagerImpl();
selectionManager.setEditManager(getEditManager());
selectionManager.setFileManager(getFileManager());
selectionManager.setPerspectives(getPerspectives());
}
return selectionManager;
}
public ResultsPerspective getResultsPerspective() {
ResultsPerspective perspective = new ResultsPerspective();
perspective.setActivityIconManager(getActivityIconManager());
perspective.setApplicationConfiguration(getApplicationConfiguration());
perspective.setColourManager(getColourManager());
perspective.setRendererRegistry(getRendererRegistry());
perspective.setRunService(getRunService());
perspective.setSaveAllResultsSPIs(serviceLoader(SaveAllResultsSPI.class));
perspective.setSaveIndividualResultSPIs(serviceLoader(SaveIndividualResultSPI.class));
perspective.setSelectionManager(getSelectionManager());
perspective.setWorkbenchConfiguration(getWorkbenchConfiguration());
return perspective;
}
public RunService getRunService() {
RunServiceImpl runServiceImpl = new RunServiceImpl();
runServiceImpl.setEventAdmin(getEventAdmin());
runServiceImpl.setExecutionEnvironmentService(getExecutionEnvironmentService());
return runServiceImpl;
}
private ExecutionEnvironmentService getExecutionEnvironmentService() {
ExecutionEnvironmentServiceImpl serviceImpl = new ExecutionEnvironmentServiceImpl();
Set<ExecutionService> executionServices = Collections.singleton(getLocalExecutionService());
serviceImpl.setExecutionServices(executionServices);
return serviceImpl;
}
private ExecutionService getLocalExecutionService() {
LocalExecutionService localExecutionService = new LocalExecutionService();
localExecutionService.setActivityService(getActivityService());
localExecutionService.setDispatchLayerService(getDispatchLayerService());
localExecutionService.setEdits(getEdits());
localExecutionService.setReferenceService(getReferenceService());
return localExecutionService;
}
private Edits getEdits() {
// TODO Auto-generated method stub
return null;
}
private ReferenceService getReferenceService() {
// Adapted from org.apache.taverna.activities.testutils.ActivityInvoker
ReferenceServiceImpl referenceServiceImpl = new ReferenceServiceImpl();
ReferenceSetServiceImpl referenceSetService = new ReferenceSetServiceImpl();
ReferenceServiceImpl referenceService = new ReferenceServiceImpl();
SimpleT2ReferenceGenerator referenceGenerator = new SimpleT2ReferenceGenerator();
ReferenceSetAugmentorImpl referenceSetAugmentor = new ReferenceSetAugmentorImpl();
referenceSetAugmentor.setBuilders(getBuilders());
referenceSetAugmentor.setTranslators(getTranslators());
referenceSetService.setReferenceSetAugmentor(referenceSetAugmentor);
referenceSetService.setT2ReferenceGenerator(referenceGenerator);
referenceSetService.setReferenceSetDao(new InMemoryReferenceSetDao());
referenceService.setReferenceSetService(referenceSetService);
ListServiceImpl listService = new ListServiceImpl();
listService.setT2ReferenceGenerator(referenceGenerator);
listService.setListDao(new InMemoryListDao());
referenceService.setListService(listService);
ErrorDocumentServiceImpl errorDocumentService = new ErrorDocumentServiceImpl();
errorDocumentService.setT2ReferenceGenerator(referenceGenerator);
errorDocumentService.setErrorDao(new InMemoryErrorDocumentDao());
referenceService.setErrorDocumentService(errorDocumentService);
referenceService.setConverters(serviceLoader(ValueToReferenceConverterSPI.class));
referenceService.setValueBuilders(serviceLoader(StreamToValueConverterSPI.class));
return referenceService;
}
@SuppressWarnings("unchecked")
private List<ExternalReferenceBuilderSPI<?>> getBuilders() {
List<ExternalReferenceBuilderSPI<?>> builders = new ArrayList<>();
builders.add(new InlineByteArrayReferenceBuilder());
builders.add(new InlineStringReferenceBuilder());
return builders;
}
private List<ExternalReferenceTranslatorSPI<?, ?>> getTranslators() {
List<ExternalReferenceTranslatorSPI<?, ?>> translators = new ArrayList<>();
translators.add(new InlineByteToInlineStringTranslator());
translators.add(new InlineStringToInlineByteTranslator());
return translators;
}
private DispatchLayerService getDispatchLayerService() {
DispatchLayerServiceImpl dispatchLayerServiceImpl = new DispatchLayerServiceImpl();
List<DispatchLayerFactory> list = new ArrayList<>();
list.add(new CoreDispatchLayerFactory());
dispatchLayerServiceImpl.setDispatchLayerFactories(list);
return dispatchLayerServiceImpl;
}
private ActivityService getActivityService() {
ActivityServiceImpl serviceImpl = new ActivityServiceImpl();
serviceImpl.setActivityFactories(serviceLoader(ActivityFactory.class));
return serviceImpl;
}
private EventAdmin getEventAdmin() {
// We're outside osgi, so we'll have to make a fake one
return new EventAdmin() {
@Override
public void postEvent(Event event) {
System.out.println("Posted event: " + event.getTopic());
}
@Override
public void sendEvent(Event event) {
System.out.println("Sent event: " + event.getTopic());
}};
}
public RendererRegistry getRendererRegistry() {
RendererRegistryImpl rendererRegistryImpl = new RendererRegistryImpl();
rendererRegistryImpl.setRenderers(serviceLoader(Renderer.class));
return rendererRegistryImpl;
}
public DesignPerspective getDesignPerspective() {
DesignPerspective p = new DesignPerspective();
p.setEditManager(getEditManager());
p.setFileManager(getFileManager());
p.setMenuManager(getMenuManager());
p.setSelectionManager(getSelectionManager());
p.setServicePanelComponentFactory(getServicePanelComponentFactory());
p.setWorkflowExplorerFactory(getWorkflowExplorerFactory());
p.setReportViewComponentFactory(getReportViewComponentFactory());
p.setContextualViewComponentFactory(getContextualViewComponentFactory());
p.setGraphViewComponentFactory(getGraphViewComponentFactory());
return p;
}
private UIComponentFactorySPI getGraphViewComponentFactory() {
GraphViewComponentFactory f = new GraphViewComponentFactory();
f.setColourManager(getColourManager());
f.setEditManager(getEditManager());
f.setFileManager(getFileManager());
f.setGraphViewConfiguration(getGraphViewConfiguration());
f.setMenuManager(getMenuManager());
f.setSelectionManager(getSelectionManager());
f.setServiceRegistry(getServiceRegistry());
f.setWorkbenchConfiguration(getWorkbenchConfiguration());
return f;
}
public GraphViewConfiguration getGraphViewConfiguration() {
return new GraphViewConfiguration(getConfigurationManager());
}
public ColourManager getColourManager() {
return new ColourManagerImpl(getConfigurationManager());
}
public ConfigurationManager getConfigurationManager() {
if (configurationManager == null) {
configurationManager = new ConfigurationManagerImpl(getApplicationConfiguration());
}
return configurationManager;
}
public UIComponentFactorySPI getReportViewComponentFactory() {
// The report view is broken, so we'll return a dummy instead.
return dummyUiComponentFactory("Report view not implemented");
}
private UIComponentFactorySPI dummyUiComponentFactory(final String message) {
return new UIComponentFactorySPI() {
@Override
public String getName() {
return message;
}
@Override
public ImageIcon getIcon() {
return null;
}
@Override
public UIComponentSPI getComponent() {
return new UIComponentSPI() {
@Override
public void onDispose() {
}
@Override
public void onDisplay() {
}
@Override
public String getName() {
return message;
}
@Override
public ImageIcon getIcon() {
return null;
}
};
}
};
}
public UIComponentFactorySPI getWorkflowExplorerFactory() {
if (workflowExplorerFactory == null) {
workflowExplorerFactory = new WorkflowExplorerFactory();
workflowExplorerFactory.setFileManager(getFileManager());
workflowExplorerFactory.setEditManager(getEditManager());
workflowExplorerFactory.setActivityIconManager(getActivityIconManager());
workflowExplorerFactory.setMenuManager(getMenuManager());
workflowExplorerFactory.setReportManager(getReportManager());
workflowExplorerFactory.setSelectionManager(getSelectionManager());
workflowExplorerFactory.setServiceRegistry(getServiceRegistry());
}
return workflowExplorerFactory;
}
private ReportManager getReportManager() {
// FIXME: ReportManagerImpl does not currently compile.. so we'll give a dummy instead
return new ReportManager() {
@Override
public void updateReport(Profile p, boolean includeTimeConsuming, boolean remember) {
}
@Override
public void updateObjectSetReport(Profile p, Set<WorkflowBean> objects) {
}
@Override
public void updateObjectReport(Profile p, WorkflowBean o) {
}
@Override
public void removeObserver(Observer<ReportManagerEvent> observer) {
}
@Override
public boolean isStructurallySound(Profile p) {
return true;
}
@Override
public String getSummaryMessage(Profile p, WorkflowBean object) {
return "Dummy report";
}
@Override
public Status getStatus(Profile p, WorkflowBean object) {
return Status.OK;
}
@Override
public Status getStatus(Profile p) {
return Status.OK;
}
@Override
public Set<WorkflowBeanReport> getReports(Profile p, WorkflowBean object) {
return Collections.emptySet();
}
@Override
public Map<WorkflowBean, Set<WorkflowBeanReport>> getReports(Profile p) {
return Collections.emptyMap();
}
@Override
public List<Observer<ReportManagerEvent>> getObservers() {
return Collections.emptyList();
}
@Override
public long getLastFullCheckedTime(Profile p) {
return 0;
}
@Override
public long getLastCheckedTime(Profile p) {
return 0;
}
@Override
public void addObserver(Observer<ReportManagerEvent> observer) {
}
};
}
public ActivityIconManager getActivityIconManager() {
ActivityIconManagerImpl activityIconManagerImpl = new ActivityIconManagerImpl();
activityIconManagerImpl.setActivityIcons(serviceLoader(ActivityIconSPI.class));
return activityIconManagerImpl;
}
@SuppressWarnings("unchecked")
private <T> List<T> serviceLoader(Class<T> klass) {
List<T> spis = new ArrayList<>();
for (T impl : ServiceLoader.load(klass)) {
spis.add(impl);
try {
BeanUtils.copyProperties(this, impl);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
// continue ?
}
}
return spis;
}
public UIComponentFactorySPI getServicePanelComponentFactory() {
if (servicePanelFactory == null) {
servicePanelFactory = new ServicePanelComponentFactory();
servicePanelFactory.setEditManager(getEditManager());
servicePanelFactory.setMenuManager(getMenuManager());
servicePanelFactory.setSelectionManager(getSelectionManager());
servicePanelFactory.setServiceDescriptionRegistry(getServiceDescriptionRegistry());
servicePanelFactory.setServiceRegistry(getServiceRegistry());
}
return servicePanelFactory;
}
public ServiceRegistry getServiceRegistry() {
return new ServiceRegistryImpl();
}
public ServiceDescriptionRegistry getServiceDescriptionRegistry() {
if (serviceDescriptionRegistry == null) {
serviceDescriptionRegistry = new ServiceDescriptionRegistryImpl(getApplicationConfiguration());
serviceDescriptionRegistry.setServiceDescriptionProvidersList(serviceLoader(ServiceDescriptionProvider.class));
}
return serviceDescriptionRegistry;
}
public UIComponentFactorySPI getContextualViewComponentFactory() {
ContextualViewComponentFactory contextualViewComponentFactory = new ContextualViewComponentFactory();
contextualViewComponentFactory.setEditManager(getEditManager());
contextualViewComponentFactory.setSelectionManager(getSelectionManager());
contextualViewComponentFactory.setContextualViewFactoryRegistry(getContextualViewFactoryRegistry());
return contextualViewComponentFactory;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public ContextualViewFactoryRegistry getContextualViewFactoryRegistry() {
if (registry == null) {
registry = new ContextualViewFactoryRegistryImpl();
List serviceLoader = serviceLoader(ContextualViewFactory.class);
registry.setContextualViewFactories(serviceLoader);
}
return registry;
}
public List<PerspectiveSPI> getPerspectives() {
return Arrays.asList(getDesignPerspective(), getResultsPerspective());
}
public WorkbenchImpl getWorkbench() {
if (workbench == null) {
workbench = new WorkbenchImpl(getStartupHooks(), getShutdownHooks(), getPerspectives());
workbench.setApplicationConfiguration(getApplicationConfiguration());
workbench.setEditManager(getEditManager());
workbench.setFileManager(getFileManager());
workbench.setMenuManager(getMenuManager());
workbench.setSelectionManager(getSelectionManager());
workbench.setPluginManager(getPluginManager());
workbench.setWorkbenchConfiguration(getWorkbenchConfiguration());
}
return workbench;
}
public WorkbenchConfiguration getWorkbenchConfiguration() {
return new WorkbenchConfiguration() {
@Override
public Map<String, String> getDefaultPropertyMap() {
return Collections.emptyMap();
}
@Override
public String getUUID() {
return "5c51f0d0-91b7-4d90-92e4-4416c61f6442";
}
@Override
public String getDisplayName() {
return "Taverna Test";
}
@Override
public String getFilePrefix() {
return "taverna-test";
}
@Override
public String getCategory() {
return "test";
}
@Override
public void restoreDefaults() {
}
@Override
public String getDefaultProperty(String key) {
return null;
}
@Override
public Set<String> getKeys() {
return Collections.emptySet();
}
@Override
public void clear() {
}
@Override
public Map<String, String> getInternalPropertyMap() {
return Collections.emptyMap();
}
@Override
public String getProperty(String key) {
return null;
}
@Override
public void setProperty(String key, String value) {
// We'll just forget it anyway..
}
@Override
public void deleteProperty(String key) {
}
@Override
public List<String> getPropertyStringList(String key) {
return Collections.emptyList();
}
@Override
public void setPropertyStringList(String key, List<String> value) {
}
@Override
public boolean getCaptureConsole() {
return false;
}
@Override
public void setCaptureConsole(boolean captureConsole) {
}
@Override
public boolean getWarnInternalErrors() {
return false;
}
@Override
public void setWarnInternalErrors(boolean warnInternalErrors) {
}
@Override
public int getMaxMenuItems() {
return 1024;
}
@Override
public void setMaxMenuItems(int maxMenuItems) {
}
@Override
public String getDotLocation() {
// Assume graphviz' dot is on PATH
return "dot";
}
@Override
public void setDotLocation(String dotLocation) {
}
};
}
private PluginManager getPluginManager() {
// Can't install plugins while outside OSGi
return new PluginManager() {
@Override
public Plugin updatePlugin(PluginVersions pluginVersions) throws PluginException {
throw new PluginException("Can't install plugins when running outside OSGi");
}
@Override
public void loadPlugins() throws PluginException {
}
@Override
public Plugin installPlugin(String pluginSiteURL, String pluginFile) throws PluginException {
throw new PluginException("Can't install plugins when running outside OSGi");
}
@Override
public Plugin installPlugin(Path pluginFile) throws PluginException {
throw new PluginException("Can't install plugins when running outside OSGi"); }
@Override
public List<PluginVersions> getPluginUpdates() throws PluginException {
return Collections.emptyList();
}
@Override
public List<Plugin> getInstalledPlugins() throws PluginException {
return Collections.emptyList();
}
@Override
public List<PluginVersions> getAvailablePlugins() throws PluginException {
return Collections.emptyList();
}
@Override
public void checkForUpdates() throws PluginException {
}
};
}
public List<StartupSPI> getStartupHooks() {
SetCredManAuthenticatorStartupHook credManAuthenticatorStartupHook = new SetCredManAuthenticatorStartupHook();
credManAuthenticatorStartupHook.setCredentialManager(getCredentialManager());
InitialiseSSLStartupHook initialiseSSLStartupHook = new InitialiseSSLStartupHook();
initialiseSSLStartupHook.setCredentialManager(getCredentialManager());
return Arrays.asList(initialiseSSLStartupHook, credManAuthenticatorStartupHook);
}
public CredentialManager getCredentialManager() {
if (credentialManager == null) {
try {
credentialManager = new CredentialManagerImpl();
} catch (CMException e) {
e.printStackTrace();
}
}
return credentialManager;
}
public List<ShutdownSPI> getShutdownHooks() {
return Arrays.asList();
}
public ApplicationConfiguration getApplicationConfiguration() {
return new ApplicationConfigurationImpl();
}
}