Hi All,
This question is following my ealier question: One of the attributes 'class', 'delegateExpression', 'type', or 'expression' is mandatory on serviceTask - #5 by camundaabhishek
Pls bear my limited knowledge of Camunda.
I am developing a application where I need to use Connector plugin. since this is an embeded process application the connector plugin is not enabled by default and we need to enable the same via bpm-platform.xml or programatically.
I am trying to achieve the same programatically as below, however no luck. and it gives me error
Caused by: java.lang.NoClassDefFoundError: org/camunda/connect/plugin/impl/ConnectProcessEnginePlugin
I have already added below entries in pom.xml
<dependency>
<groupId>org.camunda.connect</groupId>
<artifactId>camunda-connect-core</artifactId>
<version>1.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.camunda.bpm/camunda-engine-plugin-connect -->
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-engine-plugin-connect</artifactId>
<version>7.9.0</version>
</dependency>
import org.camunda.bpm.engine.impl.cfg.IdGenerator;
import org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.CamundaProcessEngineConfiguration;
import org.camunda.bpm.spring.boot.starter.configuration.impl.AbstractCamundaConfiguration;
import org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Optional;
@Configuration
public class MyCamundaConfiguration extends AbstractCamundaConfiguration implements CamundaProcessEngineConfiguration {
Logger logger = LoggerFactory.getLogger(WebappExampleProcessApplication.class);
@Autowired
private Optional<IdGenerator> idGenerator;
@Override
public void preInit(SpringProcessEngineConfiguration configuration) {
logger.info("MyCamundaConfiguration ");
setProcessEngineName(configuration);
setDefaultSerializationFormat(configuration);
setIdGenerator(configuration);
setJobExecutorAcquireByPriority(configuration);
setDefaultNumberOfRetries(configuration);
setProcessEngineNamePlugins(configuration);
}
private void setIdGenerator(SpringProcessEngineConfiguration configuration) {
idGenerator.ifPresent(configuration::setIdGenerator);
}
private void setProcessEngineName(SpringProcessEngineConfiguration configuration) {
logger.info("Setting process engine name");
String processEngineName = StringUtils.trimAllWhitespace(camundaBpmProperties.getProcessEngineName());
if (!StringUtils.isEmpty(processEngineName) && !processEngineName.contains("-")) {
logger.info("Setting process engine name" + processEngineName);
configuration.setProcessEngineName(processEngineName);
} else {
logger.warn("Ignoring invalid processEngineName='{}' - must not be null, blank or contain hyphen", camundaBpmProperties.getProcessEngineName());
}
}
private void setProcessEngineNamePlugins(SpringProcessEngineConfiguration configuration) {
logger.info("Setting process engine plugin");
List<ProcessEnginePlugin> list = configuration.getProcessEnginePlugins();
logger.info("##############################Listing all plugins");
ConnectProcessEnginePlugin connectPlugin = new ConnectProcessEnginePlugin();
list.add(connectPlugin);
for(ProcessEnginePlugin l :list)
{
logger.info("Plugin ---->"+l.toString() );
}
}
private void setJobExecutorAcquireByPriority(SpringProcessEngineConfiguration configuration) {
//Optional.ofNullable(camundaBpmProperties.getJobExecutorAcquireByPriority())
// .ifPresent(configuration::setJobExecutorAcquireByPriority);
}
private void setDefaultNumberOfRetries(SpringProcessEngineConfiguration configuration) {
//Optional.ofNullable(camundaBpmProperties.getDefaultNumberOfRetries())
// .ifPresent(configuration::setDefaultNumberOfRetries);
}
}