Community extension to generate a Java client from the provided Camunda 7 OpenAPI descitpion and also warp it into Spring Boot

Overview

Camunda Engine OpenAPI REST Client Java and Spring Boot

This community extension is a convenience wrapper around the generated Java client from the Camunda Platform 7.x OpenAPI spec.

Example application

An example application using this community extension in a Spring Boot context can be found here: https://github.com/berndruecker/camunda-platform-remote-spring-boot-example

Using the client

Plain Java

In a plain Java project you can simply add this dependency:

    <dependency>
      <groupId>org.camunda.community</groupId>
      <artifactId>camunda-engine-rest-client-openapi-java</artifactId>
      <version>7.16.0-alpha1</version>
    </dependency>

Now you can use the ApiClient and various generated artifacts, for example:

 public static void main(String[] args) throws ApiException {
    ApiClient client = new ApiClient("http://localhost:8080/engine-rest");

    new DeploymentApi(client).createDeployment(
            null,
            null,
            true,
            true,
            "benchmark",
            null,
            new File(App.class.getClassLoader().getResource(bpmnXmlPath).getFile())
    );
    System.out.println("DEPLOYED");

    new ProcessDefinitionApi(client).startProcessInstanceByKey(
            processId,
            new StartProcessInstanceDto()
                    .variables(Collections.singletonMap("json", new VariableValueDto().value("test").type("string"))));

    System.out.println("STARTED");
  }

Spring Boot Starter

For convenience, there is also a Spring Boot Starter, that

  • Wires the ApiClient and provide all API's
  • Autodeploys all BPMN, DMN and form resources it finds on the classpath during startup.

Add this dependency:

    <dependency>
      <groupId>org.camunda.community</groupId>
      <artifactId>camunda-engine-rest-client-openapi-springboot</artifactId>
      <version>7.16.0-alpha1</version>
    </dependency>

You can configure the Camunda endpoint via your application.properties:

camunda.bpm.client.base-url: http://localhost:8080/engine-rest

And then simply inject the API, for example:

@RestController
public class ExampleRestEndpoint {

    @Autowired
    private ProcessDefinitionApi processDefinitionApi;

    @PutMapping("/start")
    public ResponseEntity<String> startProcess(ServerWebExchange exchange) throws ApiException {
        // ...

        // start process instance
        ProcessInstanceWithVariablesDto processInstance = processDefinitionApi.startProcessInstanceByKey(
                ProcessConstants.PROCESS_KEY,
                new StartProcessInstanceDto().variables(variables));
        // ...

Spring Boot OpenAPI + External Task Bundle

Most often you might also want to use the OpenAPI, but also leverage the Camunda External Task Client as Spring Boot Starter. To do so you can simply add this convenience library which bundles both:

    <dependency>
      <groupId>org.camunda.community</groupId>
      <artifactId>camunda-engine-rest-client-complete-springboot-starter</artifactId>
      <version>7.16.0-SNAPSHOT</version>
    </dependency>

Now you further simply add workers, for example:

@Configuration
@ExternalTaskSubscription("check-number")
public class ExampleCheckNumberWorker implements ExternalTaskHandler {

    private final static Logger LOGGER = Logger.getLogger(ExampleCheckNumberWorker.class.getName());

    @Override
    public void execute(ExternalTask externalTask, ExternalTaskService externalTaskService) {
      // ...
      externalTaskService.complete(externalTask);
    }
Comments
  • Created Jar is failing to execute via java -jar

    Created Jar is failing to execute via java -jar

    Used the project at https://github.com/berndruecker/camunda-7-remote-spring-boot-example

    • Did mvn package to create jar
    • Ran java -jar <APP>.jar got the error no main manifest attribute, in camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar

    Updated pom.xml to have

    <build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    				<version>2.1.5.RELEASE</version>
    				<executions>
    					<execution>
    						<goals>
    							<goal>repackage</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    	</build>
    

    but now I am getting below error. Please help !!

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.camunda.community.rest.client.springboot.CamundaProcessAutodeployment': Invocation of init method failed; nested exception is java.io.FileNotFoundException: URL [jar:file:/C:/Users/test/Downloads/camunda-7-remote-spring-boot-example-main/target/camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/playground-sempahore.bpmn] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/C:/Users/test/Downloads/camunda-7-remote-spring-boot-example-main/target/camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/playground-sempahore.bpmn
            at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.19.jar!/:5.3.19]
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.19.jar!/:5.3.19]
            at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:64) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-2.6.7.jar!/:2.6.7]
            at io.berndruecker.demo.springboot.SpringBootApp.main(SpringBootApp.java:15) ~[classes!/:na]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
            at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar:na]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar:na]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) ~[camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar:na]
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) ~[camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar:na]
    Caused by: java.io.FileNotFoundException: URL [jar:file:/C:/Users/test/Downloads/camunda-7-remote-spring-boot-example-main/target/camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/playground-sempahore.bpmn] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/C:/Users/test/Downloads/camunda-7-remote-spring-boot-example-main/target/camunda-platform-remote-spring-boot-example-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/playground-sempahore.bpmn
            at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:217) ~[spring-core-5.3.19.jar!/:5.3.19]
            at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:162) ~[spring-core-5.3.19.jar!/:5.3.19]
            at org.springframework.core.io.UrlResource.getFile(UrlResource.java:240) ~[spring-core-5.3.19.jar!/:5.3.19]
            at org.camunda.community.rest.client.springboot.CamundaProcessAutodeployment.deployCamundaResources(CamundaProcessAutodeployment.java:54) ~[camunda-engine-rest-client-openapi-springboot-7.17.0.jar!/:7.17.0]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
            at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
            at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.3.19.jar!/:5.3.19]
            at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.3.19.jar!/:5.3.19]
            ... 26 common frames omitted
    
    opened by gamodg 15
  • Incompatible okhttp version

    Incompatible okhttp version

    Playing around with the java client I think I discovered an incompability to the camunda-engine-rest-openapi.

    The openapi lib uses version 3.14.2 of the okhttp3 dependency (see https://github.com/camunda/camunda-bpm-platform/blob/a3137428e8598121095f472161ff9183a85f2233/engine-rest/engine-rest-openapi/pom.xml), while this repo declares version 4.9.3 of the okhttp3 dep.

    The problem occures when I try to deploy a process with the DeploymentApi. The incompability is located in the buildRequestBodyMultipart method of the auto-generated ApiClient class. The okhttp3 lib changed the parameter order of the RequestBody.create method between version 3 and 4.

    In my opinion updating the dependency in camunda-engine-rest-openapi repo would be possible and solves the problem.

    Best regards, Hendrik

    opened by hoestreich 9
  • CamundaProcessAutodeployment PostConstruct ERROR

    CamundaProcessAutodeployment PostConstruct ERROR

    When there is an feign-form-spring-3.8.0 dependent library, resourcesToDeploy will scan feign-form-spring-3.8.0.jar!/META-INF/maven/io.github.openfeign.form/, then camundaResource.getFile() will error

    opened by houkunlin 9
  • Using TempFiles breaks duplicateFiltering

    Using TempFiles breaks duplicateFiltering

    Hey guys, I love the idea of making it easier to use Camunda's rest API, especially for diagram deployment! However, this does not seem to work as intended at the moment:

    TempFiles -> Random File Names -> Duplicate Check Broken

    https://github.com/camunda-community-hub/camunda-platform-7-rest-client-java/blob/1670cf44d65aa37065554aae26e0bd55b192544f/camunda-engine-rest-client-openapi-springboot/src/main/java/org/camunda/community/rest/client/springboot/CamundaProcessAutodeployment.java#L75

    Using TempFiles to temporarily store the (e.g.) .bpmn-files right before uploading them leads to the flags dulicateFiltering/deployChangedOnly not working properly. Explanation: Using TempFiles create files whose filename consists of the given prefix and suffix while also adding a (somewhat) unique random number at runtime. This number is then part of the filename and is different with every new startup of the application.

    Unfortunately, this filename is then part of the resource being deployed via the rest api and then used to check whether or not the deployed diagram differs from the latest version. As these names will (virtually) always be different from the last deployment call (even if nothing has changed about the diagram itself), the API call will always create a new deployment despite deployChangedOnly being set (cf. ResourceManager::findLatestResourcesByDeploymentName within the Camunda RestApi code.)

    A workaround

    On possible way around this (while still using openapi generated clients) is to specify <library>resttemplate</library> as part of the ConfigOptions of the client generation, as these clients (also) accept ByteArrayInputStreams instead of files for multi part form parameters. Thus, files can be uploaded from within .jars without creating temp files.

    A problem with the workaround and/or Camunda's open API spec

    Using "resttemplate" as the client library carries its own problems, as the default serialization of the multipart form here leads to the boolean parameters deployChangedOnly and duplicateFiltering not being parsed correctly by the Rest API, thus necessitating additional steps to fix the serialization. (The OpenApi-Spec gives their type as 'boolean', which the opanepi generator interprets as Boolean. As this is a proper class, the values get serialized as application/json instead of text fields within the multipartform when using Spring Boot's Resttemplate with the default configuration. This is then not interpreted as intended by Camunda's Rest Api (cf. DeploymentRestServiceImpl::extractDuplicateFilteringForDeployment ), where only test values are read.) Currently, Camuna's Openapi spec does not specify that this value should be encoded as a string (cf. https://github.com/camunda/camunda-bpm-platform/blob/master/engine-rest/engine-rest-openapi/src/main/templates/models/org/camunda/bpm/engine/rest/dto/MultiFormDeploymentDto.ftl ). The API reference itself is quite clear about all values having to be encoded as plain text. Perhaps it might be a good idea to add the encoding to the Camunda's Openapi spec ( cf. https://swagger.io/docs/specification/describing-request-body/multipart-requests/ )? :) I am not sure, though, whether the generated client would pick up on that.

    opened by ChrisSchoe 8
  • The client tries to connect to 127.0.0.1:8080 regardless of what is given in configs

    The client tries to connect to 127.0.0.1:8080 regardless of what is given in configs

    In application.yml, I have:

    camunda.bpm.client:
      base-url: http://localhost:8081/engine-rest
    

    The ApiClient takes no argument for constructor and I found no method to set a host/port for it.

    dependency:

    		<dependency>
    			<groupId>org.camunda.community</groupId>
    			<artifactId>camunda-engine-rest-client-openapi-java</artifactId>
    			<version>7.17.0</version>
    		</dependency>
    

    Port 8080 is not in use by any other service/apput and I always get following exception :

    org.camunda.community.rest.client.invoker.ApiException: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8080
    	at org.camunda.community.rest.client.invoker.ApiClient.execute(ApiClient.java:913)
    	at org.camunda.community.rest.client.api.MessageApi.deliverMessageWithHttpInfo(MessageApi.java:148)
    	at org.camunda.community.rest.client.api.MessageApi.deliverMessage(MessageApi.java:127)
    

    in

    new MessageApi(client).deliverMessage(new CorrelationMessageDto().messageName("paymentRquestMessage")

    Any Idea!!???

    opened by farhangamary 6
  • Enable flag to turn off auto deploy

    Enable flag to turn off auto deploy

    Currently there isn't a way to turn off auto deployment. I had explicit issue while having IT test in java where it is trying to deploy the bpmn to endpoint which is ofcorse not available. Setting the flag camunda.autoDeploy.enabled it can be turned off, which is defaulted to true to keep current behavior intact.

    opened by sumant1801 5
  • [BUG] User Feign Client Naming Issue

    [BUG] User Feign Client Naming Issue

    The generated Feign client for UserApi is defined as:

    @FeignClient(name="${user.name:user}", url="${feign.client.config.user.url:http://localhost:8080/engine-rest}", configuration = ClientConfiguration.class)
    public interface UserApiClient extends UserApi {
    }
    

    The user.name property is used to hold the username of the user the application is running with. This causes issues when the username is not a valid hostname:

    java.lang.IllegalStateException: Service id not legal hostname (my-username-with-special-characters/!&)
    	at org.springframework.util.Assert.state(Assert.java:76)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:111)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:282)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:270)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.getContextId(FeignClientsRegistrar.java:288)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerFeignClient(FeignClientsRegistrar.java:213)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerFeignClients(FeignClientsRegistrar.java:202)
    	at org.springframework.cloud.openfeign.FeignClientsRegistrar.registerBeanDefinitions(FeignClientsRegistrar.java:151)
    	at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
    	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:396)
    	at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
    	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:395)
    	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:157)
    	at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129)
    	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343)
    	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
    	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
    	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
    	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:453)
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:343)
    	.....
    

    The Feign client should not use the "user.name" property.

    opened by Xyaren 3
  • Fix syntax error on formResourcesPattern

    Fix syntax error on formResourcesPattern

    Using version 7.17.2 I get the error Could not open ServletContext resource [/${camunda.autoDeploy.formResources:]due to a malformed @Value in CamundaProcessAutodeployment

    opened by Drvolks 3
  • Incorrect arguments passed  in a method in APIClient class

    Incorrect arguments passed in a method in APIClient class

    Description

    While trying to use the camunda-engine-rest-client-openapi-springboot to remotely interact with a camunda engine I am seeing below issue during the application startup

    An attempt was made to call a method that does not exist. The attempt was made from the following location:
    
        org.camunda.community.rest.client.invoker.ApiClient.buildRequestBodyMultipart(ApiClient.java:1220)
    
    The following method did not exist:
    
        okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;
    

    Issue seems to be in this line (#1220) of APIClient class, that was auto-generated as part of org.camunda.community.rest.client.invoker package.

    mpBuilder.addPart(partHeaders, RequestBody.create(parameterToString(param.getValue()), null));

    Below is the actual signature of the RequestBody.create method

    RequestBody okhttp3.RequestBody.create(@Nullable MediaType contentType, String content)

    But in above class first a String argument was passed then a null value in place of the MediaType

    Dependency Used in my application

    <dependency>
    	<groupId>org.camunda.community</groupId>
    	<artifactId>camunda-engine-rest-client-openapi-springboot</artifactId>
    	<version>7.16.0-alpha1</version>
    </dependency>
    

    Remote Engine used:

    camunda-bpm-run-7.13.0-alpha2 - with default configurations

    Application.Java:

    @SpringBootApplication
    @ComponentScan(basePackages = "com")
    public class Application implements CommandLineRunner{
    
    	
    	@Autowired
    	StartProcessController startProcessController;
    	public static void main(String... args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    	@Override
    	public void run(String... args) throws Exception {
            System.out.println("Started Processing... : " + new Date());
            startProcessController.execute();
    	}
    }
    

    StartProcessController.java:

    @Component
    public class StartProcessController {
    
    	@Autowired
        private ProcessDefinitionApi processDefinitionApi;
    	
    	public void execute() {
    		try {
    			ProcessInstanceWithVariablesDto processInstance = processDefinitionApi.startProcessInstanceByKey(
    			        "sample-process-solution-process",
    			        new StartProcessInstanceDto());
    			
    			String processInstId = processInstance.getId();
    			System.out.println("ProcessInstance instantiated with id: "+processInstId);
    			
    		} catch (ApiException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

    BPMN models referenced from here

    opened by Gopinath-G01 3
  • Autodeploy bpmn resource with original file name

    Autodeploy bpmn resource with original file name

    If we deploy a bpmn resource with a random name, then the flag changedOnly does not work. Just changing the file name is not enough, because the method File.createTempFile adds randomly (random.nextLong()) to the file name

    opened by turyanitsa 2
  • Add configuration to disable auto deployment for springboot?

    Add configuration to disable auto deployment for springboot?

    For camunda-engine-rest-client-complete-springboot-starter package it would be helpful to have configuration that would allow a consumer of this package to disable theauto deployment that occurs on startup.

    Potential configuration value camunda.autoDeploy.enabled would be supplied in the application properties and then used to determine if deployment should occur.

    opened by vijamesDD 2
  • Bump gson from 2.9.0 to 2.10.1

    Bump gson from 2.9.0 to 2.10.1

    Bumps gson from 2.9.0 to 2.10.1.

    Release notes

    Sourced from gson's releases.

    Gson 2.10.1

    This is technically a minor release rather than a patch release because there is one small API change: a new JsonObject.isEmpty() method.

    What's Changed: User-Visible Changes

    Site Documentation and Maintenance Changes (these were already visible)

    Other Changes

    New Contributors (thanks!)

    Full Changelog: https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1

    Gson 2.10

    Most important changes

    • Support for serializing and deserializing Java records, on Java ≥ 16. (#2201)

    • Add JsonArray.asList and JsonObject.asMap view methods (#2225)

    • Fix TypeAdapterRuntimeTypeWrapper not detecting reflective TreeTypeAdapter and FutureTypeAdapter (#1787)

    ... (truncated)

    Changelog

    Sourced from gson's changelog.

    Change Log

    The change log for versions newer than 2.10 is available only on the GitHub Releases page.

    Version 2.10

    Version 2.9.1

    Also many small improvements to javadoc.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump okio from 2.10.0 to 3.3.0

    Bump okio from 2.10.0 to 3.3.0

    Bumps okio from 2.10.0 to 3.3.0.

    Changelog

    Sourced from okio's changelog.

    Version 3.3.0

    2023-01-07

    • Fix: Don't leak resources when use {} is used with a non-local return. We introduced this performance and stability bug by not considering that non-local returns execute neither the return nor catch control flows.
    • Fix: Use a sealed interface for BufferedSink and BufferedSource. These were never intended for end-users to implement, and we're happy that Kotlin now allows us to express that in our API.
    • New: Change internal locks from synchronized to ReentrantLock and Condition. We expect this to improve help when using Okio with Java virtual threads ([Project Loom][loom]).
    • Upgrade: [Kotlin 1.8.0][kotlin_1_8_0].

    Version 3.2.0

    2022-06-26

    • Fix: Configure the multiplatform artifact (com.squareup.okio:okio:3.x.x) to depend on the JVM artifact (com.squareup.okio:okio-jvm:3.x.x) for Maven builds. This should work-around an issue where Maven doesn't interpret Gradle metadata.
    • Fix: Change CipherSource and CipherSink to recover if the cipher doesn't support streaming. This should work around a crash with AES/GCM ciphers on Android.
    • New: Enable compatibility with non-hierarchical projects.

    Version 3.1.0

    2022-04-19

    • Upgrade: [Kotlin 1.6.20][kotlin_1_6_20].
    • New: Support [Hierarchical project structure][hierarchical_projects]. If you're using Okio in a multiplatform project please upgrade your project to Kotlin 1.6.20 (or newer) to take advantage of this. With hierarchical projects it's easier to use properties like FileSystem.SYSTEM that are available on most Okio platforms but not all of them.
    • New: ForwardingSource is now available on all platforms.
    • New: The watchosX64 platform is now supported.
    • Fix: Don't crash in `NSData.toByteString()' when the input is empty.
    • Fix: Support empty ZIP files in FileSystem.openZip().
    • Fix: Throw in canonicalize() of ZIP file systems if the path doesn't exist.
    • Fix: Don't require ZIP files start with a local file header.
    • New: okio.ProtocolException is a new exception type for multiplatform users. (It is aliased to java.net.ProtocolException on JVM platforms).

    Version 3.0.0

    2021-10-28

    This is the first stable release of Okio 3.x. This release is strongly backwards-compatible with

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump spring-boot-starter from 2.7.4 to 3.0.1

    Bump spring-boot-starter from 2.7.4 to 3.0.1

    Bumps spring-boot-starter from 2.7.4 to 3.0.1.

    Release notes

    Sourced from spring-boot-starter's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • `java.lang.NoSuchMethodError: okhttp3.RequestBody.create` On Camunda 7.18.0 client on Quarkus

    `java.lang.NoSuchMethodError: okhttp3.RequestBody.create` On Camunda 7.18.0 client on Quarkus

    Hello, I'm trying to use the camunda-engine-rest-client-openapi-java dependency in a Quarkus 1.15.0 application. Executing the .startProcessInstanceByKey() method throws the following exception:

    {
      "details": "Error id 9dd416e7-4e54-4c2f-923f-f322801d70d9-1, org.jboss.resteasy.spi.UnhandledException: java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;",
      "stack": "org.jboss.resteasy.spi.UnhandledException: java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\r\n\tat org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:105)\r\n\tat org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:359)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)\r\n\tat org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)\r\n\tat io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:82)\r\n\tat io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:147)\r\n\tat io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:93)\r\n\tat io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576)\r\n\tat org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)\r\n\tat org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)\r\n\tat org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)\r\n\tat org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)\r\n\tat io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n\tat java.base/java.lang.Thread.run(Thread.java:834)\r\nCaused by: java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\r\n\tat org.camunda.community.rest.client.invoker.ApiClient.serialize(ApiClient.java:816)\r\n\tat org.camunda.community.rest.client.invoker.ApiClient.buildRequest(ApiClient.java:1069)\r\n\tat org.camunda.community.rest.client.invoker.ApiClient.buildCall(ApiClient.java:1018)\r\n\tat org.camunda.community.rest.client.api.ProcessDefinitionApi.startProcessInstanceByKeyCall(ProcessDefinitionApi.java:4995)\r\n\tat org.camunda.community.rest.client.api.ProcessDefinitionApi.startProcessInstanceByKeyValidateBeforeCall(ProcessDefinitionApi.java:5007)\r\n\tat org.camunda.community.rest.client.api.ProcessDefinitionApi.startProcessInstanceByKeyWithHttpInfo(ProcessDefinitionApi.java:5048)\r\n\tat org.camunda.community.rest.client.api.ProcessDefinitionApi.startProcessInstanceByKey(ProcessDefinitionApi.java:5028)\r\n\tat com.aurigaspa.pbm.processes.kongserviceconfiguration.resource.Process.start(Process.java:45)\r\n\tat com.aurigaspa.pbm.processes.kongserviceconfiguration.resource.Process_Subclass.start$$superforward1(Unknown Source)\r\n\tat com.aurigaspa.pbm.processes.kongserviceconfiguration.resource.Process_Subclass$$function$$1.apply(Unknown Source)\r\n\tat io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54)\r\n\tat io.quarkus.hibernate.validator.runtime.interceptor.AbstractMethodValidationInterceptor.validateMethodInvocation(AbstractMethodValidationInterceptor.java:71)\r\n\tat io.quarkus.hibernate.validator.runtime.jaxrs.JaxrsEndPointValidationInterceptor.validateMethodInvocation(JaxrsEndPointValidationInterceptor.java:35)\r\n\tat io.quarkus.hibernate.validator.runtime.jaxrs.JaxrsEndPointValidationInterceptor_Bean.intercept(Unknown Source)\r\n\tat io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)\r\n\tat io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41)\r\n\tat io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:33)\r\n\tat com.aurigaspa.pbm.processes.kongserviceconfiguration.resource.Process_Subclass.start(Unknown Source)\r\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\r\n\tat org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)\r\n\tat org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:660)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:524)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:474)\r\n\tat org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:476)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:434)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:408)\r\n\tat org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:69)\r\n\tat org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)\r\n\t... 15 more"
    }
    

    I guess 7.18.0 client is generated with a specific OkHttp3 dependency version, however the project POM defines another version.

    Info

    Camunda Client (plain java) - 7.18.0 Quarkus - 1.15.0 JDK - 11

    opened by fenix-hub 0
  • Bump threetenbp from 1.6.0 to 1.6.5

    Bump threetenbp from 1.6.0 to 1.6.5

    Bumps threetenbp from 1.6.0 to 1.6.5.

    Release notes

    Sourced from threetenbp's releases.

    Release v1.6.5

    See the change notes for more information.

    Release v1.6.4

    See the change notes for more information.

    Release v1.6.3

    See the change notes for more information.

    Release v1.6.2

    See the change notes for more information.

    Release v1.6.1

    See the change notes for more information.

    Commits
    • b39ab30 [maven-release-plugin] prepare release v1.6.5
    • e878ff8 Prepare for release v1.6.5
    • a30cade Update time zone data to 2022ggtz (#176)
    • fe6730a Update the license short code (#174)
    • 9924a52 [maven-release-plugin] prepare for next development iteration
    • 40df6ec [maven-release-plugin] prepare release v1.6.4
    • ac64efd Prepare for release v1.6.4
    • ea63d41 Update time zone data to 2022fgtz (#172)
    • 1a8869e [maven-release-plugin] prepare for next development iteration
    • 9e025c8 [maven-release-plugin] prepare release v1.6.3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump swagger-annotations from 1.6.6 to 1.6.9

    Bump swagger-annotations from 1.6.6 to 1.6.9

    Bumps swagger-annotations from 1.6.6 to 1.6.9.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(7.18.0)
Owner
Camunda Community Hub
The Camunda Community Hub is a GitHub Organization for Camunda community contributed extensions.
Camunda Community Hub
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

OpenAPI Generator Master (5.4.x): 6.0.x (6.0.x): ⭐ ⭐ ⭐ If you would like to contribute, please refer to guidelines and a list of open tasks. ⭐ ⭐ ⭐ ‼️

OpenAPI Tools 14.8k Dec 30, 2022
OpenAPI JSON Schema Generator allows auto-generation of API client libraries with a focus on JSON schema given an OpenAPI Spec

OpenAPI JSON Schema Generator IMPORTANT: before the first release, one will need to build the project locally to use the enhancements, bug fixes in th

OpenAPI Tools 5 Dec 31, 2022
IntelliJ plugin for continuous OpenAPI linting using the Spectral OpenAPI linter

Spectral IntelliJ Plugin This plugin is a wrapper for the tool Spectral, a linter for OpenApi schemas. It supports all Jetbrains IDEs starting at vers

Schwarz IT 19 Jun 6, 2022
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。

Spring Boot Projects 该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的前

十三 4.5k Dec 30, 2022
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

mrbird 24.8k Jan 6, 2023
The VAST ad sample code provided by HUAWEI Ads Kit describes how to display linear ads by integrating the HUAWEI VAST SDK into your app.

HMS Ads Demo for VAST English | 中文 Table of Contents Introduction Installation Configuration Supported Environments Sample Code Result License Introdu

HMS 11 Jul 16, 2022
This is an example of how conditional events can be triggered in Camunda using a simple spring boot project

Camunda Conditional Events Example This example is a Spring Boot Application using Camunda. In this example i'll show a variety of ways that BPMN's Co

Niall 5 Sep 30, 2021
Not only Spring Boot but also important knowledge of Spring(不只是SpringBoot还有Spring重要知识点)

在线阅读 : https://snailclimb.gitee.io/springboot-guide (上面的地址访问速度缓慢的建议使用这个路径访问) 重要知识点 基础 Spring Boot 介绍 第一个 Hello World 第一个 RestFul Web 服务 Spring 如何优雅读取配

Guide哥 4.7k Jan 3, 2023
Tuya 37 Dec 26, 2022
A code sharing platform built using spring boot, hibernate and JPA as ORM with PostgreSQL which also follows a RESTful architecture.

Snap-Snippet A code sharing platform built using spring boot, hibernate and JPA as ORM with PostgreSQL which also follows a RESTful architecture. Tech

Adnan Hossain 7 Nov 29, 2022
OpenApi Generator - REST Client Generator

Quarkus - Openapi Generator Welcome to Quarkiverse! Congratulations and thank you for creating a new Quarkus extension project in Quarkiverse! Feel fr

Quarkiverse Hub 46 Jan 3, 2023
Spring Boot Login and Registration example with MySQL, JWT, Rest Api - Spring Boot Spring Security Login example

Spring Boot Login example with Spring Security, MySQL and JWT Appropriate Flow for User Login and Registration with JWT Spring Boot Rest Api Architect

null 58 Jan 5, 2023
A web application to generate Java source code with spring-boot and mybatis-plus

A web application to generate Java source code with spring-boot and mybatis-plus. Also, The class of Domain,Mapper,XML of Mapper Interface,Service,Controller are included. You can change the data source what you want to generate for your project in app running without restart this code -generator application.

Weasley 3 Aug 29, 2022
A fun way to learn Camunda and win a small price

Camunda-Coding-Challenge A fun way to learn about Camunda and win a small prize. The coding challenge is designed for the Camunda Code Studio. Results

null 3 Oct 2, 2021
An example to show how you could use clean architecture and DDD elements with Camunda.

Camunda DDD and Clean Architecture An example to show how you could use clean architecture and DDD and their advantages with Camunda. I also wrote a b

Luc Weinbrecht 10 Dec 15, 2022
Representational State Transfer + Structured Query Language(RSQL): Demo application using RSQL parser to filter records based on provided condition(s)

Representational State Transfer + Structured Query Language: RSQL Demo application using RSQL parser to filter records based on provided condition(s)

Hardik Singh Behl 9 Nov 23, 2022
SpringBoot SpringSecurity Jpa mybatis-plus websocket Redis camunda Vue3 Vite ant-design VbenAdmin vxe-table bpmn.js

SpringBoot SpringSecurity Jpa mybatis-plus websocket Redis camunda Vue3 Vite ant-design VbenAdmin vxe-table bpmn.js

zsvg 16 Dec 13, 2022
A near-real-time Mesh Join Algorithm Implementation provided with a Complete Data warehouse for METRO

Mesh Join Algorithm and Data Warehouse A complete Mesh-Join Algorithm Implementation as provided in the paper R-MESHJOIN . This is demonstrated by the

null 3 Aug 11, 2022
A plugin to help you easily edit Swagger and OpenAPI specification files inside IntelliJ IDEA

Swagger Plugin Swagger Plugin makes it easy to edit Swagger and OpenAPI specification files inside IntelliJ IDEA. You can find it on JetBrains' plugin

Zalando SE 1.1k Dec 15, 2022