Kameleon - project scaffolding for Apache Camel

Overview

Kameleon - project scaffolding for Apache Camel

This is a project generator for Apache Camel. It generates maven-based Java project with preconfigured Apache Camel runtime and selected components/extensions.

Build and run locally

Prerequisites

  • Java 11
  • Maven 3.6
  • Git

Install camel-kamelets-catalog

Kameleon requires camel-kamelets-catalog that is not in maven central yet.

cd /tmp/camel
git clone [email protected]:apache/camel-kamelets.git 
mvn install   

Run in development mode

export MAVEN_HOME=$YOUR_MAVEN_HOME ; mvn quarkus:dev

Build

mvn package

Run

export MAVEN_HOME=$YOUR_MAVEN_HOME ; java -jar target/kameleon/kameleon-0.2.0-runner.jar

Start locally

Start the latest image locally:

docker run -i --rm -p 8080:8080 ghcr.io/apache/camel-kameleon:latest
Comments
  • Generated Spring Boot project missing dependency management

    Generated Spring Boot project missing dependency management

    I created a Spring Boot project and added CXF and File components.

    But there the versions are missing and I assume that there is something missing in the dependency management section.

    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <groupId>ch.martinelli.demo</groupId>
      <artifactId>kameleon</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <name>A Camel Spring Boot Route</name>
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <surefire.plugin.version>3.0.0-M4</surefire.plugin.version>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring.boot-version>2.7.1</spring.boot-version>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring.boot-version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-bom</artifactId>
            <version>3.18.0</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <exclusions>
            <exclusion>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.camel.springboot</groupId>
          <artifactId>camel-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.camel.springboot</groupId>
          <artifactId>camel-stream-starter</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-test-spring-junit5</artifactId>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-cxf-soap</artifactId>
        </dependency>
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-file</artifactId>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring.boot-version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>repackage</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${surefire.plugin.version}</version>
          </plugin>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
            <configuration>
              <release>11</release>
              <source>17</source>
              <target>17</target>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </project>
    
    
    opened by simasch 7
  • NullPointer Exception

    NullPointer Exception

    this method throws nullpointer exception at java version "11.0.8" 2020-07-14 LTS and standart quarkus Dockerfile

    FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3 
    
    ARG JAVA_PACKAGE=java-11-openjdk-headless
    ARG RUN_JAVA_VERSION=1.3.8
    ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
    # Install java and the run-java script
    # Also set up permissions for user `1001`
    RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
        && microdnf update \
        && microdnf clean all \
        && mkdir /deployments \
        && chown 1001 /deployments \
        && chmod "g+rwX" /deployments \
        && chown 1001:root /deployments \
        && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
        && chown 1001 /deployments/run-java.sh \
        && chmod 540 /deployments/run-java.sh \
        && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security
    
    # Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
    ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
    # We make four distinct layers so if there are application changes the library layers can be re-used
    COPY --chown=1001 target/quarkus-app/lib/ /deployments/lib/
    COPY --chown=1001 target/quarkus-app/*.jar /deployments/
    COPY --chown=1001 target/quarkus-app/app/ /deployments/app/
    COPY --chown=1001 target/quarkus-app/quarkus/ /deployments/quarkus/
    
    EXPOSE 8080
    USER 1001
    
    ENTRYPOINT [ "/deployments/run-java.sh" ]
    
    opened by erayerdem 5
  • Bump commons-compress from 1.20 to 1.21

    Bump commons-compress from 1.20 to 1.21

    Bumps commons-compress from 1.20 to 1.21.

    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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • camel-jbang instead of maven

    camel-jbang instead of maven

    @davsclaus Current version of kameleon uses maven to generate output project. It is quite resource demanding and quite slow. I've been thinking about replace project generation with new camel-jbang export stuff. Thoughts? Potential issues?

    enhancement 
    opened by mgubaidullin 1
  • Add SNAPSHOT as a version

    Add SNAPSHOT as a version

    Maybe if we have a [x] for non LTS we can open up for SNAPSHOT and the latest non LTS version eg 3.19.0. For SNAPSHOT then we need at add ASF snapshot repo in the pom.xml

    opened by davsclaus 0
  • Clicking a label should add it as a filter

    Clicking a label should add it as a filter

    This allows quickly to filter the list, such as monitoring, database etc

    Screenshot 2022-08-09 at 07 16 16 c

    And the filter box in the top should be made more highlighted so its easier to spot

    opened by davsclaus 0
  • Allow to pick components and kamelets in the same generator

    Allow to pick components and kamelets in the same generator

    And when you pick a kamelet, then we need to compute its dependencies. And automatic include camel-kamelet and camel-yaml-dsl as they are needed for using kamelets

    opened by davsclaus 0
  • ZIP File should contain Folder

    ZIP File should contain Folder

    Currently, the ZIP only contains the code.

    It would be more convenient if the ZIP file would contain a Folder like https://start.spring.io

    Otherwise one has to first create a folder and then unzip.

    opened by simasch 0
Owner
The Apache Software Foundation
The Apache Software Foundation
Zero is a core test automation project that can be used as a basis for any kind of test automation project (API, Browser, Mobile)

Zero Zero is our feature rich, core test automation framework, that can be used as an underlying automation framework for any/and all kind of test aut

Pramod Kumar Yadav 10 Dec 16, 2022
High performance Java implementation of a Cuckoo filter - Apache Licensed

Cuckoo Filter For Java This library offers a similar interface to Guava's Bloom filters. In most cases it can be used interchangeably and has addition

Mark Gunlogson 161 Dec 30, 2022
BioJava is an open-source project dedicated to providing a Java framework for processing biological data.

Welcome to BioJava is an open-source project dedicated to providing a Java framework for processing biological data. It provides analytical and statis

BioJava 513 Dec 31, 2022
Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.

Apache Camel Apache Camel is a powerful, open-source integration framework based on prevalent Enterprise Integration Patterns with powerful bean integ

The Apache Software Foundation 4.7k Dec 31, 2022
Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.

Apache Camel Apache Camel is a powerful, open-source integration framework based on prevalent Enterprise Integration Patterns with powerful bean integ

The Apache Software Foundation 4.7k Jan 8, 2023
A Spring Boot Camel boilerplate that aims to consume events from Apache Kafka, process it and send to a PostgreSQL database.

SPRING-BOOT CAMEL BOILERPLATE This is a Spring-Boot Camel Application model that you can use as a reference to study or even to use in your company. I

Bruno Delgado 45 Apr 4, 2022
Composable event handlers and skin scaffolding for JavaFX controls.

This project is no longer being maintained. See this issue for more details. WellBehavedFX This project provides a better mechanism for defining and o

null 52 Oct 9, 2022
Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.3k Dec 31, 2022
Scaffolding is a library for Minestom that allows you to load and place schematics.

This library is very early in development and has too many bugs to count. For your own safety, you should not use it in a production environment.

Crystal Games 18 Nov 29, 2022
A maven archetype for EZCloud scaffolding

ezcloud-archetype English Doc 中文文档 A maven archetype for EZCloud scaffolding. ?? Usage create single project Customize the values of the following par

Project-Hephaestus 2 Feb 8, 2022
An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or to turn an existing project into a devops project using open source software (Git, Docker, Jenkins..)

DevOpsify Description An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or t

obaydah bouifadene 14 Nov 8, 2022
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.8k Dec 28, 2022
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.7k Mar 12, 2021
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.8k Dec 28, 2022
Equivalent Exchange 3 Apache 2 Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Mods for Minecraft. License: Apache 2 , .

Welcome to Equivalent Exchange 3! All versions are available here Minecraft Forums page Compiling EE3 - For those that want the latest unreleased feat

Rob Davis 709 Dec 15, 2022
Apache Solr is an enterprise search platform written in Java and using Apache Lucene.

Apache Solr is an enterprise search platform written in Java and using Apache Lucene. Major features include full-text search, index replication and sharding, and result faceting and highlighting.

The Apache Software Foundation 630 Dec 28, 2022
FLiP: StreamNative: Cloud-Native: Streaming Analytics Using Apache Flink SQL on Apache Pulsar

StreamingAnalyticsUsingFlinkSQL FLiP: StreamNative: Cloud-Native: Streaming Analytics Using Apache Flink SQL on Apache Pulsar Running on NVIDIA XAVIER

Timothy Spann 5 Dec 19, 2021