Spring-boot register plugin for connect

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);
  }
}
1 Like

Facing similar issue! Any solutions?

Hi @Vedika this post is 2 years old - might be better to just create a topic of your own explaining your own setup and exactly what you’re trying to achieve.
I’m going to lock this topic.