diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..63c228a --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,18 @@ +name: Maven Build + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Build with Maven + run: mvn -B install --no-transfer-progress --file pom.xml diff --git a/.github/workflows/release-to-maven-central.yml b/.github/workflows/release-to-maven-central.yml new file mode 100644 index 0000000..fa077bc --- /dev/null +++ b/.github/workflows/release-to-maven-central.yml @@ -0,0 +1,56 @@ +name: release-to-maven-central +on: + workflow_dispatch: + inputs: + releaseversion: + description: 'Release version' + required: true + default: '2.0.0' +jobs: + publish: + runs-on: ubuntu-latest + steps: + - run: echo "Will start a Maven Central upload with version ${{ github.event.inputs.releaseversion }}" + + - uses: actions/checkout@v2 + + - name: Set up settings.xml for Maven Central Repository + uses: actions/setup-java@v1 + with: + java-version: 11 + server-id: oss.sonatype.org + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + gpg-passphrase: MAVEN_GPG_PASSPHRASE + + - name: Set projects Maven version to GitHub Action GUI set version + run: mvn versions:set "-DnewVersion=${{ github.event.inputs.releaseversion }}" --no-transfer-progress + + - name: Publish package + run: mvn --batch-mode clean deploy --no-transfer-progress -P central-deploy -DskipTests=true + env: + MAVEN_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} + + - name: Generate changelog + id: changelog + uses: metcalfc/changelog-generator@v0.4.4 + with: + myToken: ${{ secrets.GITHUB_TOKEN }} + + - name: Create GitHub Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.event.inputs.releaseversion }} + release_name: ${{ github.event.inputs.releaseversion }} + body: | + Grab the new version from Maven central https://repo1.maven.org/maven2/de/codecentric/reedelk/module-rabbitmq/${{ github.event.inputs.releaseversion }}/ + ### Things that changed in this release + ${{ steps.changelog.outputs.changelog }} + draft: false + prerelease: false \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9e67c56..dbed906 100644 --- a/pom.xml +++ b/pom.xml @@ -5,13 +5,13 @@ 4.0.0 - com.reedelk + de.codecentric.reedelk module-parent - 1.0.6 + 2.0.0 bundle - 1.0.6 + 2.0.0 module-rabbitmq @@ -19,6 +19,13 @@ UTF-8 5.8.0 0.8.2 + + 2.8.1 + 3.0.0-M1 + 1.6 + 3.2.1 + 3.2.0 + 1.6.8 @@ -73,4 +80,96 @@ + + + + central-deploy + + + + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + sign-artifacts + verify + + sign + + + + + --pinentry-mode + loopback + + + + + + + org.codehaus.mojo + versions-maven-plugin + ${versions-maven-plugin.version} + + false + + + + maven-deploy-plugin + ${maven-deploy-plugin.version} + + true + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + attach-javadocs + + jar + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + ${nexus-staging-maven-plugin.version} + true + + oss.sonatype.org + https://oss.sonatype.org/ + ${project.version} + + + + deploy-to-sonatype + deploy + + deploy + release + + + + + + + + diff --git a/src/main/java/com/reedelk/rabbitmq/ModuleDefinition.java b/src/main/java/com/reedelk/rabbitmq/ModuleDefinition.java deleted file mode 100644 index d2f9d04..0000000 --- a/src/main/java/com/reedelk/rabbitmq/ModuleDefinition.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.reedelk.rabbitmq; - -import com.reedelk.runtime.api.annotation.Module; - -@Module("RabbitMQ Module") -public class ModuleDefinition { -} - diff --git a/src/main/java/de/codecentric/reedelk/rabbitmq/ModuleDefinition.java b/src/main/java/de/codecentric/reedelk/rabbitmq/ModuleDefinition.java new file mode 100644 index 0000000..1fdaa81 --- /dev/null +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/ModuleDefinition.java @@ -0,0 +1,8 @@ +package de.codecentric.reedelk.rabbitmq; + +import de.codecentric.reedelk.runtime.api.annotation.Module; + +@Module("RabbitMQ Module") +public class ModuleDefinition { +} + diff --git a/src/main/java/com/reedelk/rabbitmq/component/ConnectionConfiguration.java b/src/main/java/de/codecentric/reedelk/rabbitmq/component/ConnectionConfiguration.java similarity index 95% rename from src/main/java/com/reedelk/rabbitmq/component/ConnectionConfiguration.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/component/ConnectionConfiguration.java index 48e3ad8..800950d 100644 --- a/src/main/java/com/reedelk/rabbitmq/component/ConnectionConfiguration.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/component/ConnectionConfiguration.java @@ -1,7 +1,7 @@ -package com.reedelk.rabbitmq.component; +package de.codecentric.reedelk.rabbitmq.component; -import com.reedelk.runtime.api.annotation.*; -import com.reedelk.runtime.api.component.Implementor; +import de.codecentric.reedelk.runtime.api.annotation.*; +import de.codecentric.reedelk.runtime.api.component.Implementor; import org.osgi.service.component.annotations.Component; import static java.util.Optional.ofNullable; diff --git a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumer.java b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumer.java similarity index 89% rename from src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumer.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumer.java index 84f9240..a87c10b 100644 --- a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumer.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumer.java @@ -1,19 +1,19 @@ -package com.reedelk.rabbitmq.component; +package de.codecentric.reedelk.rabbitmq.component; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; -import com.reedelk.rabbitmq.internal.*; -import com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes; -import com.reedelk.rabbitmq.internal.exception.RabbitMQConsumerException; -import com.reedelk.runtime.api.annotation.*; -import com.reedelk.runtime.api.component.AbstractInbound; -import com.reedelk.runtime.api.message.content.MimeType; +import de.codecentric.reedelk.rabbitmq.internal.*; +import de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes; +import de.codecentric.reedelk.rabbitmq.internal.exception.RabbitMQConsumerException; +import de.codecentric.reedelk.runtime.api.annotation.*; +import de.codecentric.reedelk.runtime.api.component.AbstractInbound; +import de.codecentric.reedelk.runtime.api.message.content.MimeType; import org.osgi.service.component.annotations.Component; import java.io.IOException; -import static com.reedelk.rabbitmq.internal.commons.Messages.RabbitMQConsumer.CONSUME_ERROR; -import static com.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireNotBlank; +import static de.codecentric.reedelk.rabbitmq.internal.commons.Messages.RabbitMQConsumer.CONSUME_ERROR; +import static de.codecentric.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireNotBlank; import static java.util.Optional.of; import static java.util.Optional.ofNullable; import static org.osgi.service.component.annotations.ServiceScope.PROTOTYPE; diff --git a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java similarity index 94% rename from src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java index 67cfa5d..7560338 100644 --- a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQConsumerQueueConfiguration.java @@ -1,7 +1,7 @@ -package com.reedelk.rabbitmq.component; +package de.codecentric.reedelk.rabbitmq.component; -import com.reedelk.runtime.api.annotation.*; -import com.reedelk.runtime.api.component.Implementor; +import de.codecentric.reedelk.runtime.api.annotation.*; +import de.codecentric.reedelk.runtime.api.component.Implementor; import org.osgi.service.component.annotations.Component; import static java.util.Optional.ofNullable; diff --git a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducer.java b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducer.java similarity index 84% rename from src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducer.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducer.java index f3a64cc..65f47d2 100644 --- a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducer.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducer.java @@ -1,29 +1,29 @@ -package com.reedelk.rabbitmq.component; +package de.codecentric.reedelk.rabbitmq.component; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; -import com.reedelk.rabbitmq.internal.ChannelUtils; -import com.reedelk.rabbitmq.internal.ConnectionFactoryProvider; -import com.reedelk.rabbitmq.internal.exception.RabbitMQProducerException; -import com.reedelk.runtime.api.annotation.*; -import com.reedelk.runtime.api.commons.StringUtils; -import com.reedelk.runtime.api.component.ProcessorSync; -import com.reedelk.runtime.api.converter.ConverterService; -import com.reedelk.runtime.api.flow.FlowContext; -import com.reedelk.runtime.api.message.Message; -import com.reedelk.runtime.api.script.ScriptEngineService; -import com.reedelk.runtime.api.script.dynamicvalue.DynamicString; +import de.codecentric.reedelk.rabbitmq.internal.ChannelUtils; +import de.codecentric.reedelk.rabbitmq.internal.ConnectionFactoryProvider; +import de.codecentric.reedelk.rabbitmq.internal.exception.RabbitMQProducerException; +import de.codecentric.reedelk.runtime.api.annotation.*; +import de.codecentric.reedelk.runtime.api.commons.StringUtils; +import de.codecentric.reedelk.runtime.api.component.ProcessorSync; +import de.codecentric.reedelk.runtime.api.converter.ConverterService; +import de.codecentric.reedelk.runtime.api.flow.FlowContext; +import de.codecentric.reedelk.runtime.api.message.Message; +import de.codecentric.reedelk.runtime.api.script.ScriptEngineService; +import de.codecentric.reedelk.runtime.api.script.dynamicvalue.DynamicString; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import java.io.IOException; import java.util.UUID; -import static com.reedelk.rabbitmq.internal.commons.Messages.RabbitMQProducer.CREATE_CHANNEL_ERROR; -import static com.reedelk.rabbitmq.internal.commons.Messages.RabbitMQProducer.PUBLISH_MESSAGE_ERROR; -import static com.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireNotBlank; -import static com.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireTrue; +import static de.codecentric.reedelk.rabbitmq.internal.commons.Messages.RabbitMQProducer.CREATE_CHANNEL_ERROR; +import static de.codecentric.reedelk.rabbitmq.internal.commons.Messages.RabbitMQProducer.PUBLISH_MESSAGE_ERROR; +import static de.codecentric.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireNotBlank; +import static de.codecentric.reedelk.runtime.api.commons.ComponentPrecondition.Configuration.requireTrue; import static java.util.Optional.of; import static java.util.Optional.ofNullable; import static org.osgi.service.component.annotations.ServiceScope.PROTOTYPE; diff --git a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java similarity index 87% rename from src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java index 0fbd406..4864d30 100644 --- a/src/main/java/com/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/component/RabbitMQProducerQueueConfiguration.java @@ -1,10 +1,10 @@ -package com.reedelk.rabbitmq.component; +package de.codecentric.reedelk.rabbitmq.component; -import com.reedelk.runtime.api.annotation.DefaultValue; -import com.reedelk.runtime.api.annotation.Description; -import com.reedelk.runtime.api.annotation.Property; -import com.reedelk.runtime.api.annotation.When; -import com.reedelk.runtime.api.component.Implementor; +import de.codecentric.reedelk.runtime.api.annotation.DefaultValue; +import de.codecentric.reedelk.runtime.api.annotation.Description; +import de.codecentric.reedelk.runtime.api.annotation.Property; +import de.codecentric.reedelk.runtime.api.annotation.When; +import de.codecentric.reedelk.runtime.api.component.Implementor; import org.osgi.service.component.annotations.Component; import static java.util.Optional.ofNullable; diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ChannelUtils.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ChannelUtils.java similarity index 93% rename from src/main/java/com/reedelk/rabbitmq/internal/ChannelUtils.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ChannelUtils.java index 47b0650..65ba4ba 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ChannelUtils.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ChannelUtils.java @@ -1,4 +1,4 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java similarity index 61% rename from src/main/java/com/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java index fc0c3c2..fd91bb8 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConnectionFactoryProvider.java @@ -1,9 +1,9 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; -import com.reedelk.rabbitmq.component.ConnectionConfiguration; -import com.reedelk.runtime.api.exception.PlatformException; +import de.codecentric.reedelk.rabbitmq.component.ConnectionConfiguration; +import de.codecentric.reedelk.runtime.api.exception.PlatformException; import java.io.IOException; import java.net.URISyntaxException; @@ -11,8 +11,6 @@ import java.security.NoSuchAlgorithmException; import java.util.concurrent.TimeoutException; -import static com.reedelk.rabbitmq.component.ConnectionConfiguration.*; - public class ConnectionFactoryProvider { public static Connection from(String uri) { @@ -32,12 +30,12 @@ public static Connection from(String uri) { public static Connection from(ConnectionConfiguration configuration) { ConnectionFactory factory = new ConnectionFactory(); try { - factory.setUsername(userName(configuration)); - factory.setPassword(password(configuration)); - factory.setVirtualHost(virtualHost(configuration)); - factory.setHost(hostName(configuration)); - factory.setPort(port(configuration)); - factory.setAutomaticRecoveryEnabled(isAutomaticRecovery(configuration)); + factory.setUsername(ConnectionConfiguration.userName(configuration)); + factory.setPassword(ConnectionConfiguration.password(configuration)); + factory.setVirtualHost(ConnectionConfiguration.virtualHost(configuration)); + factory.setHost(ConnectionConfiguration.hostName(configuration)); + factory.setPort(ConnectionConfiguration.port(configuration)); + factory.setAutomaticRecoveryEnabled(ConnectionConfiguration.isAutomaticRecovery(configuration)); return factory.newConnection(); } catch (IOException | TimeoutException e) { throw new PlatformException(e); diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerCancelCallback.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerCancelCallback.java similarity index 83% rename from src/main/java/com/reedelk/rabbitmq/internal/ConsumerCancelCallback.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerCancelCallback.java index a35547e..15b96e7 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerCancelCallback.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerCancelCallback.java @@ -1,4 +1,4 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.CancelCallback; diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java similarity index 72% rename from src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java index 3db1892..d938592 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallback.java @@ -1,15 +1,15 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.DeliverCallback; import com.rabbitmq.client.Delivery; -import com.reedelk.rabbitmq.component.RabbitMQConsumer; -import com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes; -import com.reedelk.runtime.api.message.Message; -import com.reedelk.runtime.api.message.MessageAttributes; -import com.reedelk.runtime.api.message.MessageBuilder; -import com.reedelk.runtime.api.message.content.MimeType; - -import static com.reedelk.runtime.api.commons.Preconditions.checkArgument; +import de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer; +import de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes; +import de.codecentric.reedelk.runtime.api.message.Message; +import de.codecentric.reedelk.runtime.api.message.MessageAttributes; +import de.codecentric.reedelk.runtime.api.message.MessageBuilder; +import de.codecentric.reedelk.runtime.api.message.content.MimeType; + +import static de.codecentric.reedelk.runtime.api.commons.Preconditions.checkArgument; abstract class ConsumerDeliverCallback implements DeliverCallback { diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java similarity index 62% rename from src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java index 8e0384a..a125384 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackAutoAck.java @@ -1,11 +1,11 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.Delivery; -import com.reedelk.runtime.api.component.InboundEventListener; -import com.reedelk.runtime.api.message.Message; -import com.reedelk.runtime.api.message.content.MimeType; +import de.codecentric.reedelk.runtime.api.component.InboundEventListener; +import de.codecentric.reedelk.runtime.api.message.Message; +import de.codecentric.reedelk.runtime.api.message.content.MimeType; -import static com.reedelk.runtime.api.commons.Preconditions.checkArgument; +import static de.codecentric.reedelk.runtime.api.commons.Preconditions.checkArgument; public class ConsumerDeliverCallbackAutoAck extends ConsumerDeliverCallback { diff --git a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java similarity index 76% rename from src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java index 3599c40..ea3eb32 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/ConsumerDeliverCallbackExplicitAck.java @@ -1,18 +1,18 @@ -package com.reedelk.rabbitmq.internal; +package de.codecentric.reedelk.rabbitmq.internal; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Delivery; -import com.reedelk.runtime.api.component.InboundEventListener; -import com.reedelk.runtime.api.component.OnResult; -import com.reedelk.runtime.api.flow.FlowContext; -import com.reedelk.runtime.api.message.Message; -import com.reedelk.runtime.api.message.content.MimeType; +import de.codecentric.reedelk.runtime.api.component.InboundEventListener; +import de.codecentric.reedelk.runtime.api.component.OnResult; +import de.codecentric.reedelk.runtime.api.flow.FlowContext; +import de.codecentric.reedelk.runtime.api.message.Message; +import de.codecentric.reedelk.runtime.api.message.content.MimeType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import static com.reedelk.runtime.api.commons.Preconditions.checkArgument; +import static de.codecentric.reedelk.runtime.api.commons.Preconditions.checkArgument; public class ConsumerDeliverCallbackExplicitAck extends ConsumerDeliverCallback { diff --git a/src/main/java/com/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java similarity index 74% rename from src/main/java/com/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java index 0aa56b3..85e1534 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/EnvelopeAttributes.java @@ -1,13 +1,13 @@ -package com.reedelk.rabbitmq.internal.attribute; +package de.codecentric.reedelk.rabbitmq.internal.attribute; import com.rabbitmq.client.Envelope; -import com.reedelk.runtime.api.annotation.Type; -import com.reedelk.runtime.api.annotation.TypeProperty; +import de.codecentric.reedelk.runtime.api.annotation.Type; +import de.codecentric.reedelk.runtime.api.annotation.TypeProperty; import java.io.Serializable; import java.util.HashMap; -import static com.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes.*; +import static de.codecentric.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes.*; @Type(displayName = "EnvelopeAttributes", mapKeyType = String.class, mapValueType = Serializable.class) @TypeProperty(name = DELIVERY_TAG, type = long.class) diff --git a/src/main/java/com/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java similarity index 88% rename from src/main/java/com/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java index 53c6013..cb2fd8d 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/PropertiesAttributes.java @@ -1,15 +1,15 @@ -package com.reedelk.rabbitmq.internal.attribute; +package de.codecentric.reedelk.rabbitmq.internal.attribute; import com.rabbitmq.client.AMQP; -import com.reedelk.runtime.api.annotation.Type; -import com.reedelk.runtime.api.annotation.TypeProperty; -import com.reedelk.runtime.api.commons.SerializableUtils; +import de.codecentric.reedelk.runtime.api.annotation.Type; +import de.codecentric.reedelk.runtime.api.annotation.TypeProperty; +import de.codecentric.reedelk.runtime.api.commons.SerializableUtils; import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import static com.reedelk.rabbitmq.internal.attribute.PropertiesAttributes.*; +import static de.codecentric.reedelk.rabbitmq.internal.attribute.PropertiesAttributes.*; @Type(displayName = "PropertiesAttributes", mapKeyType = String.class, mapValueType = Serializable.class) @TypeProperty(name = CONTENT_ENCODING, type = String.class) diff --git a/src/main/java/com/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java similarity index 73% rename from src/main/java/com/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java index 1ff72ca..16c52ae 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/attribute/RabbitMQConsumerAttributes.java @@ -1,18 +1,18 @@ -package com.reedelk.rabbitmq.internal.attribute; +package de.codecentric.reedelk.rabbitmq.internal.attribute; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Delivery; import com.rabbitmq.client.Envelope; -import com.reedelk.runtime.api.annotation.Type; -import com.reedelk.runtime.api.annotation.TypeProperty; -import com.reedelk.runtime.api.message.MessageAttributeKey; -import com.reedelk.runtime.api.message.MessageAttributes; +import de.codecentric.reedelk.runtime.api.annotation.Type; +import de.codecentric.reedelk.runtime.api.annotation.TypeProperty; +import de.codecentric.reedelk.runtime.api.message.MessageAttributeKey; +import de.codecentric.reedelk.runtime.api.message.MessageAttributes; import java.io.Serializable; import java.util.HashMap; -import static com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes.ENVELOPE; -import static com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes.PROPERTIES; +import static de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes.ENVELOPE; +import static de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes.PROPERTIES; @Type @TypeProperty(name = PROPERTIES, type = PropertiesAttributes.class) diff --git a/src/main/java/com/reedelk/rabbitmq/internal/commons/Messages.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/commons/Messages.java similarity index 88% rename from src/main/java/com/reedelk/rabbitmq/internal/commons/Messages.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/commons/Messages.java index 60e5bd6..0fbc49c 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/commons/Messages.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/commons/Messages.java @@ -1,6 +1,6 @@ -package com.reedelk.rabbitmq.internal.commons; +package de.codecentric.reedelk.rabbitmq.internal.commons; -import com.reedelk.runtime.api.commons.FormattedMessage; +import de.codecentric.reedelk.runtime.api.commons.FormattedMessage; public class Messages { diff --git a/src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java similarity index 59% rename from src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java index ae081b3..bfcb606 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQConsumerException.java @@ -1,6 +1,6 @@ -package com.reedelk.rabbitmq.internal.exception; +package de.codecentric.reedelk.rabbitmq.internal.exception; -import com.reedelk.runtime.api.exception.PlatformException; +import de.codecentric.reedelk.runtime.api.exception.PlatformException; public class RabbitMQConsumerException extends PlatformException { diff --git a/src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java similarity index 67% rename from src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java rename to src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java index aec10d1..5d79b76 100644 --- a/src/main/java/com/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java +++ b/src/main/java/de/codecentric/reedelk/rabbitmq/internal/exception/RabbitMQProducerException.java @@ -1,6 +1,6 @@ -package com.reedelk.rabbitmq.internal.exception; +package de.codecentric.reedelk.rabbitmq.internal.exception; -import com.reedelk.runtime.api.exception.PlatformException; +import de.codecentric.reedelk.runtime.api.exception.PlatformException; public class RabbitMQProducerException extends PlatformException { diff --git a/src/main/resources/com.reedelk.rabbitmq.component.RabbitMQConsumer-icon.png b/src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer-icon.png similarity index 100% rename from src/main/resources/com.reedelk.rabbitmq.component.RabbitMQConsumer-icon.png rename to src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer-icon.png diff --git a/src/main/resources/com.reedelk.rabbitmq.component.RabbitMQConsumer.png b/src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer.png similarity index 100% rename from src/main/resources/com.reedelk.rabbitmq.component.RabbitMQConsumer.png rename to src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer.png diff --git a/src/main/resources/com.reedelk.rabbitmq.component.RabbitMQProducer-icon.png b/src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQProducer-icon.png similarity index 100% rename from src/main/resources/com.reedelk.rabbitmq.component.RabbitMQProducer-icon.png rename to src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQProducer-icon.png diff --git a/src/main/resources/com.reedelk.rabbitmq.component.RabbitMQProducer.png b/src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQProducer.png similarity index 100% rename from src/main/resources/com.reedelk.rabbitmq.component.RabbitMQProducer.png rename to src/main/resources/de.codecentric.reedelk.rabbitmq.component.RabbitMQProducer.png diff --git a/src/main/resources/module-descriptor.json b/src/main/resources/module-descriptor.json index 81146df..9d7db3d 100644 --- a/src/main/resources/module-descriptor.json +++ b/src/main/resources/module-descriptor.json @@ -1 +1 @@ -{"name":"module-rabbitmq","displayName":"RabbitMQ Module","version":"1.0.6","components":[{"hidden":false,"displayName":"RabbitMQ Consumer","description":"Consumes messages from a RabbitMQ broker queue whenever a message is published to the subscribed queue. The component might be configured to create the source queue if it does not exists already. The RabbitMQ Consumer is an Inbound component and it can only be placed at the beginning of a flow.","fullyQualifiedName":"com.reedelk.rabbitmq.component.RabbitMQConsumer","type":"INBOUND","output":{"description":"The data consumed from the broker queue","dynamicPropertyName":"","payload":["java.lang.String","byte[]"],"attributes":["com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes"]},"properties":[{"mandatory":false,"name":"connection","initValue":"###USE_DEFAULT_VALUE###","displayName":"Connection","type":{"classname":"com.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"YES","dialogTitle":"RabbitMQ Connection Factory","collapsible":"NO","typeFullyQualifiedName":"com.reedelk.rabbitmq.component.ConnectionConfiguration","objectProperties":[{"mandatory":false,"name":"userName","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP user name to use when connecting to the broker.","displayName":"Username","defaultValue":"guest","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"password","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP password to use when connecting to the broker.","displayName":"Password","defaultValue":"guest","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"virtualHost","example":"/","initValue":"###USE_DEFAULT_VALUE###","hintValue":"/","description":"The virtual host to use when connecting to the broker.","displayName":"Virtual Host","defaultValue":"/","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"hostName","example":"rabbitmq.domain.com","initValue":"###USE_DEFAULT_VALUE###","hintValue":"localhost","description":"The host to use for connections to the broker.","displayName":"Host Name","defaultValue":"localhost","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"portNumber","example":"5672","initValue":"###USE_DEFAULT_VALUE###","hintValue":"5672","description":"The port to use for connections to the broker.","displayName":"Port Number","defaultValue":"5672","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Integer"}},"whens":[]},{"mandatory":false,"name":"automaticRecovery","example":"true","initValue":"true","description":"If true automatic recovery of this connection is performed when the network connection with the server fails.","displayName":"Automatic Recovery","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]}],"type":"com.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"connectionURI","example":"amqp://guest:guest@localhost:5672","initValue":"amqp://guest:guest@localhost:5672","hintValue":"amqp://guest:guest@localhost:5672","description":"Configure a connection using the provided AMQP URI containing the connection data.","displayName":"Connection URI","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[{"propertyName":"connection","propertyValue":"###NULL###"},{"propertyName":"connection","propertyValue":"{\u0027ref\u0027: \u0027###BLANK###\u0027}"}]},{"mandatory":false,"name":"queueName","example":"queue_inbound","initValue":"###USE_DEFAULT_VALUE###","hintValue":"queue_inbound","description":"Defines the name of the queue this consumer will be consuming messages from.","displayName":"Queue Name","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"queueConfiguration","group":"Queue Configuration","initValue":"###USE_DEFAULT_VALUE###","displayName":"Queue Configuration","type":{"classname":"com.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"NO","collapsible":"NO","typeFullyQualifiedName":"com.reedelk.rabbitmq.component.RabbitMQConsumerQueueConfiguration","objectProperties":[{"mandatory":false,"name":"create","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true, a queue with the name provided in the \u0027Queue Name\u0027 field will be created in the broker. If false the queue is considered already defined in the broker and an error will be thrown if the queue does not exists.","displayName":"Create new queue","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]},{"mandatory":false,"name":"durable","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the queue will survive a server restart.","displayName":"Durable after restart","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"exclusive","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the use of the queue will be restricted to this connection.","displayName":"Exclusive to connection","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"autoDelete","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the server will delete the queue when it is no longer in use.","displayName":"Auto Delete","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]}],"type":"com.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"messageMimeType","example":"application/octet-stream","initValue":"###USE_DEFAULT_VALUE###","description":"The Mime Type of the consumed content allows to create a flow message with a suitable content type for the following flow components (e.g a \u0027text/plain\u0027 mime type converts the consumed content to a string, a \u0027application/octet-stream\u0027 keeps the consumed content as byte array).","displayName":"Content Mime Type","defaultValue":"text/plain","type":{"classname":"com.reedelk.module.descriptor.model.property.ComboDescriptor","instance":{"editable":true,"prototype":"XXXXXXXXXXXXXXXXXXXXXXXXXX","comboValues":["text/css","text/html","text/plain","text/richtext","text/scriptlet","text/tab-separated-values","text/csv","text/webviewhtml","text/x-component","text/x-setext","text/x-vcard","text/xml","text/json","text/javascript","image/bmp","image/gif","image/png","image/jpeg","image/pipeg","image/svg+xml","image/tiff","image/x-cmu-raster","image/x-cmx","image/x-icon","image/x-portable-anymap","image/x-portable-bitmap","image/x-portable-graymap","image/x-portable-pixmap","image/x-rgb","image/x-xbitmap","image/x-xpixmap","image/x-xwindowdump","image/ief","message/rfc822","video/mpeg","video/mp4","video/quicktime","video/x-la-asf","video/x-ms-asf","video/x-msvideo","video/x-sgi-movie","audio/basic","audio/mid","audio/mpeg","audio/x-aiff","audio/x-mpegurl","audio/x-pn-realaudio","audio/x-wav","application/envoy","application/fractals","application/futuresplash","application/hta","application/msword","application/octet-stream","application/oda","application/olescript","application/pdf","application/pics-rules","application/pkcs10","application/pkix-crl","application/postscript","application/rtf","application/set-payment-initiation","application/set-registration-initiation","application/vnd.ms-excel","application/vnd.ms-outlook","application/vnd.ms-pkicertstore","application/vnd.ms-pkiseccat","application/vnd.ms-pkistl","application/vnd.ms-powerpoint","application/vnd.ms-project","application/vnd.ms-works","application/winhlp","application/x-bcpio","application/x-cdf","application/x-compress","application/x-compressed","application/x-cpio","application/x-csh","application/x-director","application/x-dvi","application/x-gtar","application/x-gzip","application/x-hdf","application/x-internet-signup","application/javascript","application/x-latex","application/x-msaccess","application/x-mscardfile","application/x-msclip","application/x-msdownload","application/x-msmediaview","application/x-msmetafile","application/x-msmoney","application/x-mspublisher","application/x-msschedule","application/x-msterminal","application/x-mswrite","application/x-netcdf","application/x-pkcs12","application/x-pkcs7-certificates","application/x-pkcs7-certreqresp","application/x-pkcs7-mime","application/x-pkcs7-signature","application/x-sh","application/x-shar","application/x-shockwave-flash","application/x-tar","application/x-x509-ca-cert","application/zip","application/atom+xml","application/rss+xml","application/xml","application/json","application/java","application/x-www-form-urlencoded","*/*","content/unknown","multipart/form-data"],"type":"com.reedelk.runtime.api.annotation.Combo"}},"whens":[]},{"mandatory":false,"name":"autoAck","example":"true","initValue":"true","description":"True to immediately consider messages delivered by the broker as soon as the flow starts. False to acknowledge the message only if the flow executed successfully.","displayName":"Auto Acknowledge","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"boolean"}},"whens":[]}]},{"hidden":false,"displayName":"RabbitMQ Producer","description":"Sends the message payload to a RabbitMQ broker queue. The component might be configured to create the destination queue if it does not exists already.","fullyQualifiedName":"com.reedelk.rabbitmq.component.RabbitMQProducer","type":"PROCESSOR","input":{"description":"The data to be published to the broker queue.","payload":["java.lang.String","byte[]"]},"output":{"description":"","dynamicPropertyName":"","payload":["com.reedelk.runtime.api.annotation.ComponentOutput$PreviousComponent"],"attributes":["com.reedelk.runtime.api.annotation.ComponentOutput$PreviousComponent"]},"properties":[{"mandatory":false,"name":"connection","initValue":"###USE_DEFAULT_VALUE###","displayName":"Connection","type":{"classname":"com.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"YES","dialogTitle":"RabbitMQ Connection Factory","collapsible":"NO","typeFullyQualifiedName":"com.reedelk.rabbitmq.component.ConnectionConfiguration","objectProperties":[{"mandatory":false,"name":"userName","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP user name to use when connecting to the broker.","displayName":"Username","defaultValue":"guest","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"password","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP password to use when connecting to the broker.","displayName":"Password","defaultValue":"guest","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"virtualHost","example":"/","initValue":"###USE_DEFAULT_VALUE###","hintValue":"/","description":"The virtual host to use when connecting to the broker.","displayName":"Virtual Host","defaultValue":"/","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"hostName","example":"rabbitmq.domain.com","initValue":"###USE_DEFAULT_VALUE###","hintValue":"localhost","description":"The host to use for connections to the broker.","displayName":"Host Name","defaultValue":"localhost","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"portNumber","example":"5672","initValue":"###USE_DEFAULT_VALUE###","hintValue":"5672","description":"The port to use for connections to the broker.","displayName":"Port Number","defaultValue":"5672","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Integer"}},"whens":[]},{"mandatory":false,"name":"automaticRecovery","example":"true","initValue":"true","description":"If true automatic recovery of this connection is performed when the network connection with the server fails.","displayName":"Automatic Recovery","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]}],"type":"com.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"connectionURI","initValue":"amqp://guest:guest@localhost:5672","hintValue":"amqp://guest:guest@localhost:5672","description":"Configure a connection using the provided AMQP URI containing the connection data.","displayName":"Connection URI","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[{"propertyName":"connection","propertyValue":"###NULL###"},{"propertyName":"connection","propertyValue":"{\u0027ref\u0027: \u0027###BLANK###\u0027}"}]},{"mandatory":false,"name":"exchangeName","initValue":"###USE_DEFAULT_VALUE###","hintValue":"amq.fanout","description":"The name of the exchange to publish the message to. It might be a dynamic property.","displayName":"Exchange Name","type":{"classname":"com.reedelk.module.descriptor.model.property.DynamicValueDescriptor","instance":{"type":"com.reedelk.runtime.api.script.dynamicvalue.DynamicString"}},"whens":[]},{"mandatory":false,"name":"queueName","initValue":"###USE_DEFAULT_VALUE###","hintValue":"queue_outbound","displayName":"Queue Name","type":{"classname":"com.reedelk.module.descriptor.model.property.DynamicValueDescriptor","instance":{"type":"com.reedelk.runtime.api.script.dynamicvalue.DynamicString"}},"whens":[]},{"mandatory":false,"name":"queueConfiguration","group":"Queue Configuration","initValue":"###USE_DEFAULT_VALUE###","displayName":"Queue Configuration","type":{"classname":"com.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"NO","collapsible":"NO","typeFullyQualifiedName":"com.reedelk.rabbitmq.component.RabbitMQProducerQueueConfiguration","objectProperties":[{"mandatory":false,"name":"create","initValue":"###USE_DEFAULT_VALUE###","description":"If true, a queue with the name provided in the \u0027Queue Name\u0027 field will be created in the broker. If false the queue is considered already defined in the broker and an error will be thrown if the queue does not exists.","displayName":"Create new queue","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]},{"mandatory":false,"name":"durable","initValue":"###USE_DEFAULT_VALUE###","description":"If true the queue will survive a server restart.","displayName":"Durable after restart","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"exclusive","initValue":"###USE_DEFAULT_VALUE###","description":"If true the use of the queue will be restricted to this connection.","displayName":"Exclusive to connection","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"autoDelete","initValue":"###USE_DEFAULT_VALUE###","description":"If true the server will delete the queue when it is no longer in use.","displayName":"Auto Delete","defaultValue":"false","type":{"classname":"com.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]}],"type":"com.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[{"propertyName":"queueName","propertyValue":"###NOT_SCRIPT###"}]}]}],"types":[{"global":false,"type":"com.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes","extendsType":"java.util.HashMap","displayName":"EnvelopeAttributes","description":"","mapKeyType":"java.lang.String","mapValueType":"java.io.Serializable","functions":[],"properties":[{"name":"deliveryTag","type":"long","example":"","description":""},{"name":"routingKey","type":"java.lang.String","example":"","description":""},{"name":"exchange","type":"java.lang.String","example":"","description":""}]},{"global":false,"type":"com.reedelk.rabbitmq.internal.attribute.PropertiesAttributes","extendsType":"java.util.HashMap","displayName":"PropertiesAttributes","description":"","mapKeyType":"java.lang.String","mapValueType":"java.io.Serializable","functions":[],"properties":[{"name":"contentEncoding","type":"java.lang.String","example":"","description":""},{"name":"correlationId","type":"java.lang.String","example":"","description":""},{"name":"deliveryMode","type":"java.lang.Integer","example":"","description":""},{"name":"contentType","type":"java.lang.String","example":"","description":""},{"name":"expiration","type":"java.lang.String","example":"","description":""},{"name":"clusterId","type":"java.lang.String","example":"","description":""},{"name":"messageId","type":"java.lang.String","example":"","description":""},{"name":"timestamp","type":"long","example":"","description":""},{"name":"priority","type":"java.lang.Integer","example":"","description":""},{"name":"replyTo","type":"java.lang.String","example":"","description":""},{"name":"headers","type":"java.util.Map","example":"","description":""},{"name":"userId","type":"java.lang.String","example":"","description":""},{"name":"appId","type":"java.lang.String","example":"","description":""},{"name":"type","type":"java.lang.String","example":"","description":""}]},{"global":false,"type":"com.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes","extendsType":"com.reedelk.runtime.api.message.MessageAttributes","description":"","mapKeyType":"java.lang.Object","mapValueType":"java.lang.Object","functions":[],"properties":[{"name":"properties","type":"com.reedelk.rabbitmq.internal.attribute.PropertiesAttributes","example":"","description":""},{"name":"envelope","type":"com.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes","example":"","description":""}]}]} \ No newline at end of file +{"name":"module-rabbitmq","displayName":"RabbitMQ Module","version":"2.0.0","components":[{"hidden":false,"displayName":"RabbitMQ Consumer","description":"Consumes messages from a RabbitMQ broker queue whenever a message is published to the subscribed queue. The component might be configured to create the source queue if it does not exists already. The RabbitMQ Consumer is an Inbound component and it can only be placed at the beginning of a flow.","fullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumer","type":"INBOUND","output":{"description":"The data consumed from the broker queue","dynamicPropertyName":"","payload":["java.lang.String","byte[]"],"attributes":["de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes"]},"properties":[{"mandatory":false,"name":"connection","initValue":"###USE_DEFAULT_VALUE###","displayName":"Connection","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"YES","dialogTitle":"RabbitMQ Connection Factory","collapsible":"NO","typeFullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.ConnectionConfiguration","objectProperties":[{"mandatory":false,"name":"userName","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP user name to use when connecting to the broker.","displayName":"Username","defaultValue":"guest","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"password","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP password to use when connecting to the broker.","displayName":"Password","defaultValue":"guest","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"virtualHost","example":"/","initValue":"###USE_DEFAULT_VALUE###","hintValue":"/","description":"The virtual host to use when connecting to the broker.","displayName":"Virtual Host","defaultValue":"/","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"hostName","example":"rabbitmq.domain.com","initValue":"###USE_DEFAULT_VALUE###","hintValue":"localhost","description":"The host to use for connections to the broker.","displayName":"Host Name","defaultValue":"localhost","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"portNumber","example":"5672","initValue":"###USE_DEFAULT_VALUE###","hintValue":"5672","description":"The port to use for connections to the broker.","displayName":"Port Number","defaultValue":"5672","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Integer"}},"whens":[]},{"mandatory":false,"name":"automaticRecovery","example":"true","initValue":"true","description":"If true automatic recovery of this connection is performed when the network connection with the server fails.","displayName":"Automatic Recovery","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]}],"type":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"connectionURI","example":"amqp://guest:guest@localhost:5672","initValue":"amqp://guest:guest@localhost:5672","hintValue":"amqp://guest:guest@localhost:5672","description":"Configure a connection using the provided AMQP URI containing the connection data.","displayName":"Connection URI","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[{"propertyName":"connection","propertyValue":"###NULL###"},{"propertyName":"connection","propertyValue":"{\u0027ref\u0027: \u0027###BLANK###\u0027}"}]},{"mandatory":false,"name":"queueName","example":"queue_inbound","initValue":"###USE_DEFAULT_VALUE###","hintValue":"queue_inbound","description":"Defines the name of the queue this consumer will be consuming messages from.","displayName":"Queue Name","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"queueConfiguration","group":"Queue Configuration","initValue":"###USE_DEFAULT_VALUE###","displayName":"Queue Configuration","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"NO","collapsible":"NO","typeFullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.RabbitMQConsumerQueueConfiguration","objectProperties":[{"mandatory":false,"name":"create","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true, a queue with the name provided in the \u0027Queue Name\u0027 field will be created in the broker. If false the queue is considered already defined in the broker and an error will be thrown if the queue does not exists.","displayName":"Create new queue","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]},{"mandatory":false,"name":"durable","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the queue will survive a server restart.","displayName":"Durable after restart","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"exclusive","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the use of the queue will be restricted to this connection.","displayName":"Exclusive to connection","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"autoDelete","example":"true","initValue":"###USE_DEFAULT_VALUE###","description":"If true the server will delete the queue when it is no longer in use.","displayName":"Auto Delete","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]}],"type":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"messageMimeType","example":"application/octet-stream","initValue":"###USE_DEFAULT_VALUE###","description":"The Mime Type of the consumed content allows to create a flow message with a suitable content type for the following flow components (e.g a \u0027text/plain\u0027 mime type converts the consumed content to a string, a \u0027application/octet-stream\u0027 keeps the consumed content as byte array).","displayName":"Content Mime Type","defaultValue":"text/plain","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.ComboDescriptor","instance":{"editable":true,"prototype":"XXXXXXXXXXXXXXXXXXXXXXXXXX","comboValues":["text/css","text/html","text/plain","text/richtext","text/scriptlet","text/tab-separated-values","text/csv","text/webviewhtml","text/x-component","text/x-setext","text/x-vcard","text/xml","text/json","text/javascript","image/bmp","image/gif","image/png","image/jpeg","image/pipeg","image/svg+xml","image/tiff","image/x-cmu-raster","image/x-cmx","image/x-icon","image/x-portable-anymap","image/x-portable-bitmap","image/x-portable-graymap","image/x-portable-pixmap","image/x-rgb","image/x-xbitmap","image/x-xpixmap","image/x-xwindowdump","image/ief","message/rfc822","video/mpeg","video/mp4","video/quicktime","video/x-la-asf","video/x-ms-asf","video/x-msvideo","video/x-sgi-movie","audio/basic","audio/mid","audio/mpeg","audio/x-aiff","audio/x-mpegurl","audio/x-pn-realaudio","audio/x-wav","application/envoy","application/fractals","application/futuresplash","application/hta","application/msword","application/octet-stream","application/oda","application/olescript","application/pdf","application/pics-rules","application/pkcs10","application/pkix-crl","application/postscript","application/rtf","application/set-payment-initiation","application/set-registration-initiation","application/vnd.ms-excel","application/vnd.ms-outlook","application/vnd.ms-pkicertstore","application/vnd.ms-pkiseccat","application/vnd.ms-pkistl","application/vnd.ms-powerpoint","application/vnd.ms-project","application/vnd.ms-works","application/winhlp","application/x-bcpio","application/x-cdf","application/x-compress","application/x-compressed","application/x-cpio","application/x-csh","application/x-director","application/x-dvi","application/x-gtar","application/x-gzip","application/x-hdf","application/x-internet-signup","application/javascript","application/x-latex","application/x-msaccess","application/x-mscardfile","application/x-msclip","application/x-msdownload","application/x-msmediaview","application/x-msmetafile","application/x-msmoney","application/x-mspublisher","application/x-msschedule","application/x-msterminal","application/x-mswrite","application/x-netcdf","application/x-pkcs12","application/x-pkcs7-certificates","application/x-pkcs7-certreqresp","application/x-pkcs7-mime","application/x-pkcs7-signature","application/x-sh","application/x-shar","application/x-shockwave-flash","application/x-tar","application/x-x509-ca-cert","application/zip","application/atom+xml","application/rss+xml","application/xml","application/json","application/java","application/x-www-form-urlencoded","*/*","content/unknown","multipart/form-data"],"type":"de.codecentric.reedelk.runtime.api.annotation.Combo"}},"whens":[]},{"mandatory":false,"name":"autoAck","example":"true","initValue":"true","description":"True to immediately consider messages delivered by the broker as soon as the flow starts. False to acknowledge the message only if the flow executed successfully.","displayName":"Auto Acknowledge","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"boolean"}},"whens":[]}]},{"hidden":false,"displayName":"RabbitMQ Producer","description":"Sends the message payload to a RabbitMQ broker queue. The component might be configured to create the destination queue if it does not exists already.","fullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.RabbitMQProducer","type":"PROCESSOR","input":{"description":"The data to be published to the broker queue.","payload":["java.lang.String","byte[]"]},"output":{"description":"","dynamicPropertyName":"","payload":["de.codecentric.reedelk.runtime.api.annotation.ComponentOutput$PreviousComponent"],"attributes":["de.codecentric.reedelk.runtime.api.annotation.ComponentOutput$PreviousComponent"]},"properties":[{"mandatory":false,"name":"connection","initValue":"###USE_DEFAULT_VALUE###","displayName":"Connection","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"YES","dialogTitle":"RabbitMQ Connection Factory","collapsible":"NO","typeFullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.ConnectionConfiguration","objectProperties":[{"mandatory":false,"name":"userName","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP user name to use when connecting to the broker.","displayName":"Username","defaultValue":"guest","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"password","example":"guest","initValue":"###USE_DEFAULT_VALUE###","hintValue":"guest","description":"The AMQP password to use when connecting to the broker.","displayName":"Password","defaultValue":"guest","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"virtualHost","example":"/","initValue":"###USE_DEFAULT_VALUE###","hintValue":"/","description":"The virtual host to use when connecting to the broker.","displayName":"Virtual Host","defaultValue":"/","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"hostName","example":"rabbitmq.domain.com","initValue":"###USE_DEFAULT_VALUE###","hintValue":"localhost","description":"The host to use for connections to the broker.","displayName":"Host Name","defaultValue":"localhost","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[]},{"mandatory":false,"name":"portNumber","example":"5672","initValue":"###USE_DEFAULT_VALUE###","hintValue":"5672","description":"The port to use for connections to the broker.","displayName":"Port Number","defaultValue":"5672","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Integer"}},"whens":[]},{"mandatory":false,"name":"automaticRecovery","example":"true","initValue":"true","description":"If true automatic recovery of this connection is performed when the network connection with the server fails.","displayName":"Automatic Recovery","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]}],"type":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[]},{"mandatory":false,"name":"connectionURI","initValue":"amqp://guest:guest@localhost:5672","hintValue":"amqp://guest:guest@localhost:5672","description":"Configure a connection using the provided AMQP URI containing the connection data.","displayName":"Connection URI","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.String"}},"whens":[{"propertyName":"connection","propertyValue":"###NULL###"},{"propertyName":"connection","propertyValue":"{\u0027ref\u0027: \u0027###BLANK###\u0027}"}]},{"mandatory":false,"name":"exchangeName","initValue":"###USE_DEFAULT_VALUE###","hintValue":"amq.fanout","description":"The name of the exchange to publish the message to. It might be a dynamic property.","displayName":"Exchange Name","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.DynamicValueDescriptor","instance":{"type":"de.codecentric.reedelk.runtime.api.script.dynamicvalue.DynamicString"}},"whens":[]},{"mandatory":false,"name":"queueName","initValue":"###USE_DEFAULT_VALUE###","hintValue":"queue_outbound","displayName":"Queue Name","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.DynamicValueDescriptor","instance":{"type":"de.codecentric.reedelk.runtime.api.script.dynamicvalue.DynamicString"}},"whens":[]},{"mandatory":false,"name":"queueConfiguration","group":"Queue Configuration","initValue":"###USE_DEFAULT_VALUE###","displayName":"Queue Configuration","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor","instance":{"shared":"NO","collapsible":"NO","typeFullyQualifiedName":"de.codecentric.reedelk.rabbitmq.component.RabbitMQProducerQueueConfiguration","objectProperties":[{"mandatory":false,"name":"create","initValue":"###USE_DEFAULT_VALUE###","description":"If true, a queue with the name provided in the \u0027Queue Name\u0027 field will be created in the broker. If false the queue is considered already defined in the broker and an error will be thrown if the queue does not exists.","displayName":"Create new queue","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[]},{"mandatory":false,"name":"durable","initValue":"###USE_DEFAULT_VALUE###","description":"If true the queue will survive a server restart.","displayName":"Durable after restart","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"exclusive","initValue":"###USE_DEFAULT_VALUE###","description":"If true the use of the queue will be restricted to this connection.","displayName":"Exclusive to connection","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]},{"mandatory":false,"name":"autoDelete","initValue":"###USE_DEFAULT_VALUE###","description":"If true the server will delete the queue when it is no longer in use.","displayName":"Auto Delete","defaultValue":"false","type":{"classname":"de.codecentric.reedelk.module.descriptor.model.property.PrimitiveDescriptor","instance":{"type":"java.lang.Boolean"}},"whens":[{"propertyName":"create","propertyValue":"true"}]}],"type":"de.codecentric.reedelk.module.descriptor.model.property.ObjectDescriptor$TypeObject"}},"whens":[{"propertyName":"queueName","propertyValue":"###NOT_SCRIPT###"}]}]}],"types":[{"global":false,"type":"de.codecentric.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes","extendsType":"java.util.HashMap","displayName":"EnvelopeAttributes","description":"","mapKeyType":"java.lang.String","mapValueType":"java.io.Serializable","functions":[],"properties":[{"name":"deliveryTag","type":"long","example":"","description":""},{"name":"routingKey","type":"java.lang.String","example":"","description":""},{"name":"exchange","type":"java.lang.String","example":"","description":""}]},{"global":false,"type":"de.codecentric.reedelk.rabbitmq.internal.attribute.PropertiesAttributes","extendsType":"java.util.HashMap","displayName":"PropertiesAttributes","description":"","mapKeyType":"java.lang.String","mapValueType":"java.io.Serializable","functions":[],"properties":[{"name":"contentEncoding","type":"java.lang.String","example":"","description":""},{"name":"correlationId","type":"java.lang.String","example":"","description":""},{"name":"deliveryMode","type":"java.lang.Integer","example":"","description":""},{"name":"contentType","type":"java.lang.String","example":"","description":""},{"name":"expiration","type":"java.lang.String","example":"","description":""},{"name":"clusterId","type":"java.lang.String","example":"","description":""},{"name":"messageId","type":"java.lang.String","example":"","description":""},{"name":"timestamp","type":"long","example":"","description":""},{"name":"priority","type":"java.lang.Integer","example":"","description":""},{"name":"replyTo","type":"java.lang.String","example":"","description":""},{"name":"headers","type":"java.util.Map","example":"","description":""},{"name":"userId","type":"java.lang.String","example":"","description":""},{"name":"appId","type":"java.lang.String","example":"","description":""},{"name":"type","type":"java.lang.String","example":"","description":""}]},{"global":false,"type":"de.codecentric.reedelk.rabbitmq.internal.attribute.RabbitMQConsumerAttributes","extendsType":"de.codecentric.reedelk.runtime.api.message.MessageAttributes","description":"","mapKeyType":"java.lang.Object","mapValueType":"java.lang.Object","functions":[],"properties":[{"name":"properties","type":"de.codecentric.reedelk.rabbitmq.internal.attribute.PropertiesAttributes","example":"","description":""},{"name":"envelope","type":"de.codecentric.reedelk.rabbitmq.internal.attribute.EnvelopeAttributes","example":"","description":""}]}]} \ No newline at end of file