public JiraServiceContainer addServiceConfig(final String serviceName, final Class<? extends JiraService> serviceClass, final long serviceDelay) throws ServiceException { return addServiceConfig(serviceName, serviceClass, null, serviceDelay); }
@Override public void editServiceConfig(final JiraServiceContainer serviceContainer, final String cronExpression, final Map<String, String[]> params) throws ServiceException { editServiceConfig(serviceContainer, null, cronExpression, params); }
public void removeServiceConfig(final JiraServiceContainer config) { final GenericValue serviceConfigGV = getGenericValueForConfig(config); removePropertySet(serviceConfigGV); ofBizDelegator.removeValue(serviceConfigGV); }
throws ServiceException validateServiceConfigDetails(serviceName, serviceClass, serviceDelay, cronExpression); String serviceClassName = serviceClass.getName(); final PropertySet ps = createPropertySet(serviceConfig, jiraService, new HashMap<String, String[]>()); JiraServiceContainer serviceContainer = instantiateServiceContainer(jiraService, serviceConfig, ps); success = true; return serviceContainer;
private JiraServiceContainer instantiateServiceContainer(final GenericValue serviceConfigGV, final PropertySet ps) throws ServiceException { final String className = serviceConfigGV.getString(SERVICE_CONFIG_CLAZZ); try { final JiraService service = loadServiceClass(className); return instantiateServiceContainer(service, serviceConfigGV, ps); } catch (ClassNotFoundException e) { throw new ClassNotFoundServiceException("Could not find class: " + className, className, e); } }
private void editServiceConfig(final JiraServiceContainer config, final Long delay, final String cronExpression, final Map<String, String[]> params) throws ServiceException { final GenericValue serviceConfigGV = getGenericValueForConfig(config); if (log.isDebugEnabled()) { log.debug("Editing service with id '" + serviceConfigGV.getLong(SERVICE_CONFIG_ID) + "'."); } // store the updated properties final PropertySet ps = createPropertySet(serviceConfigGV, config, params); // store the updated schedule if (delay != null) { serviceConfigGV.set(SERVICE_CONFIG_TIME, delay); } serviceConfigGV.set(SERVICE_CONFIG_CRON, cronExpression); ofBizDelegator.store(serviceConfigGV); // update the object to reflect the changes in the db config.setDelay(serviceConfigGV.getLong(SERVICE_CONFIG_TIME)); config.setCronExpression(serviceConfigGV.getString(SERVICE_CONFIG_CRON)); try { config.init(ps); } catch (ObjectConfigurationException ex) { throw new ServiceException("An error occurred when initialising Service '" + config.getName() + "'.", ex); } }
@Nullable public JiraServiceContainer getServiceConfigForId(final Long id) { final GenericValue serviceConfigGV = ofBizDelegator.findById("ServiceConfig", id); if (serviceConfigGV != null) { return getServiceContainer(serviceConfigGV); } return null; }
try return this.instantiateServiceContainer(serviceConfigGV, ps);
@Nullable public JiraServiceContainer getServiceConfigForName(final String name) { final List<GenericValue> services = ofBizDelegator.findByAnd("ServiceConfig", FieldMap.build(SERVICE_CONFIG_NAME, name)); if (services == null || services.isEmpty()) { return null; } if (services.size() > 1) { throw new IllegalArgumentException("Multiple services with name '" + name + "' exist."); } return getServiceContainer(services.get(0)); }
public Collection<JiraServiceContainer> getAllServiceConfigs() { // See explanation in the comments for JIRA_PLUGIN_SCHEDULER_SERVICE, above ofBizDelegator.removeByAnd(ENTITY_NAME, FieldMap.build(SERVICE_CONFIG_CLAZZ, JIRA_PLUGIN_SCHEDULER_SERVICE)); final Collection<GenericValue> serviceConfigGVs = ofBizDelegator.findAll(ENTITY_NAME); final Collection<JiraServiceContainer> serviceConfigs = new ArrayList<JiraServiceContainer>(serviceConfigGVs.size()); for (final GenericValue element : serviceConfigGVs) { serviceConfigs.add(getServiceContainer(element)); } return serviceConfigs; }
public void editServiceConfig(final JiraServiceContainer serviceContainer, final long delay, final Map<String, String[]> params) throws ServiceException { editServiceConfig(serviceContainer, delay, null, params); }