http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/camel-catalog/src/test/resources/sample.json ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog/src/test/resources/sample.json b/platforms/camel-catalog/src/test/resources/sample.json new file mode 100644 index 0000000..a977639 --- /dev/null +++ b/platforms/camel-catalog/src/test/resources/sample.json @@ -0,0 +1,92 @@ +{ + "properties": { + "host": { "value": "someserver", "kind": "path", "required": "true", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "Hostname of the FTP server" }, + "port": { "value": "21", "kind": "path", "type": "integer", "javaType": "int", "deprecated": "false", "description": "Port of the FTP server" }, + "directoryName": { "value": "foo", "kind": "path", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "The starting directory" }, + "username": { "kind": "parameter", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "Username to use for login" }, + "password": { "kind": "parameter", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "Password to use for login" }, + "binary": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "passiveMode": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "description": "Sets passive mode connections. Default is active mode connections." }, + "connectTimeout": { "value": "5000", "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false", "defaultValue": "10000", "description": "Sets the connect timeout for waiting for a connection to be established Used by both FTPClient and JSCH" }, + "timeout": { "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false", "defaultValue": "30000", "description": "Sets the data timeout for waiting for reply Used only by FTPClient" }, + "soTimeout": { "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false", "description": "Sets the so timeout Used only by FTPClient" }, + "throwExceptionOnConnectFailed": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "description": "Should an exception be thrown if connection failed (exhausted) By default exception is not thrown and a WARN is logged. You can use this to enable exception being thrown and handle the thrown exception from the org.apache.camel.spi.PollingConsumerPollStrategy rollback method." }, + "siteCommand": { "kind": "parameter", "type": "string", "javaType": "java.lang.String", "deprecated": "false", "description": "Sets optional site command(s) to be executed after successful login. Multiple site commands can be separated using a new line character (\n)." }, + "stepwise": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Sets whether we should stepwise change directories while traversing file structures when downloading files or as well when uploading a file to a directory. You can disable this if you for example are in a situation where you cannot change directory on the FTP server due security reasons." }, + "separator": { "kind": "parameter", "type": "object", "javaType": "org.apache.camel.component.file.remote.RemoteFileConfiguration.PathSeparator", "deprecated": "false", "defaultValue": "Auto", "description": "Sets the path separator to be used. UNIX = Uses unix style path separator Windows = Uses windows style path separator Auto = (is default) Use existing path separator in file name" }, + "streamDownload": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "description": "Sets the download method to use when not using a local working directory. If set to true the remote files are streamed to the route as they are read. When set to false the remote files are loaded into memory before being sent into the route." }, + "useList": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true", "description": "Whether to allow using LIST command when downloading a file. Default is true. In some use cases you may want to download a specific file and are not allowed to use the LIST command and therefore you can set this option to false." }, + "ignoreFileNotFoundOrPermissionError": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "description": "Whether to ignore when trying to download a file which does not exist or due to permission error. By default when a file does not exists or insufficient permission then an exception is thrown. Setting this option to true allows to ignore that instead." }, + "dataTimeout": { "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false" }, + "maximumReconnectAttempts": { "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false" }, + "reconnectDelay": { "kind": "parameter", "type": "integer", "javaType": "long", "deprecated": "false" }, + "disconnect": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "fastExistsCheck": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "download": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "autoCreate": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "bufferSize": { "kind": "parameter", "type": "integer", "javaType": "int", "deprecated": "false", "defaultValue": "131072" }, + "flatten": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "charset": { "kind": "parameter", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "fileName": { "kind": "parameter", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "fileExist": { "kind": "parameter", "label": "producer", "type": "string", "javaType": "org.apache.camel.component.file.GenericFileExist", "enum": [ "Override", "Append", "Fail", "Ignore", "Move", "TryRename" ], "deprecated": "false", "defaultValue": "Override" }, + "tempPrefix": { "kind": "parameter", "label": "producer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "tempFileName": { "kind": "parameter", "label": "producer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "eagerDeleteTargetFile": { "kind": "parameter", "label": "producer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "keepLastModified": { "kind": "parameter", "label": "producer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "doneFileName": { "kind": "parameter", "label": "producer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "allowNullBody": { "kind": "parameter", "label": "producer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "chmod": { "kind": "parameter", "label": "producer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "processStrategy": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.component.file.GenericFileProcessStrategy<T>", "deprecated": "false" }, + "inProgressRepository": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository<java.lang.String>", "deprecated": "false" }, + "localWorkDirectory": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "startingDirectoryMustExist": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "directoryMustExist": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "noop": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "recursive": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "delete": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false" }, + "maxMessagesPerPoll": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false" }, + "eagerMaxMessagesPerPoll": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "maxDepth": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false", "defaultValue": "2147483647" }, + "minDepth": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false" }, + "include": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "exclude": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "move": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "moveFailed": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "preMove": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "moveExisting": { "kind": "parameter", "label": "producer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "idempotent": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": "false" }, + "idempotentKey": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.Expression", "deprecated": "false" }, + "idempotentRepository": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository<java.lang.String>", "deprecated": "false" }, + "filter": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.component.file.GenericFileFilter<T>", "deprecated": "false" }, + "antInclude": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "antExclude": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "deprecated": "false" }, + "sorter": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "java.util.Comparator<org.apache.camel.component.file.GenericFile<T>>", "deprecated": "false" }, + "sortBy": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "java.util.Comparator<org.apache.camel.Exchange>", "deprecated": "false" }, + "readLock": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.lang.String", "enum": [ "none", "markerFile", "fileLock", "rename", "changed" ], "deprecated": "false" }, + "readLockCheckInterval": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "1000" }, + "readLockTimeout": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "10000" }, + "readLockMarkerFile": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "readLockLoggingLevel": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "DEBUG", "ERROR", "INFO", "TRACE", "WARN", "OFF" ], "deprecated": "false", "defaultValue": "WARN" }, + "readLockMinLength": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "1" }, + "readLockMinAge": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "0" }, + "exclusiveReadLockStrategy": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy<T>", "deprecated": "false" }, + "startScheduler": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "initialDelay": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "1000" }, + "delay": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "long", "deprecated": "false", "defaultValue": "500" }, + "timeUnit": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": "false", "defaultValue": "MILLISECONDS" }, + "useFixedDelay": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "true" }, + "pollStrategy": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": "false" }, + "runLoggingLevel": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "DEBUG", "ERROR", "INFO", "TRACE", "WARN", "OFF" ], "deprecated": "false", "defaultValue": "TRACE" }, + "sendEmptyMessageWhenIdle": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "greedy": { "kind": "parameter", "label": "consumer", "type": "boolean", "javaType": "boolean", "deprecated": "false" }, + "scheduler": { "kind": "parameter", "label": "consumer", "type": "string", "javaType": "org.apache.camel.spi.ScheduledPollConsumerScheduler", "enum": [ "spring", "quartz2" ], "deprecated": "false" }, + "schedulerProperties": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "java.util.Map<java.lang.String,java.lang.Object>", "deprecated": "false" }, + "scheduledExecutorService": { "kind": "parameter", "label": "consumer", "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": "false" }, + "backoffMultiplier": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false" }, + "backoffIdleThreshold": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false" }, + "backoffErrorThreshold": { "kind": "parameter", "label": "consumer", "type": "integer", "javaType": "int", "deprecated": "false" }, + "exchangePattern": { "kind": "parameter", "type": "string", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "RobustInOnly", "InOut", "InOptionalOut", "OutOnly", "RobustOutOnly", "OutIn", "OutOptionalIn" ], "deprecated": "false", "defaultValue": "InOnly", "description": "Sets the default exchange pattern when creating an exchange" }, + "synchronous": { "kind": "parameter", "type": "boolean", "javaType": "boolean", "deprecated": "false", "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported)." } + } +} +
http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/pom.xml ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/pom.xml b/platforms/catalog-connector/pom.xml deleted file mode 100644 index e85baa9..0000000 --- a/platforms/catalog-connector/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.camel</groupId> - <artifactId>platforms</artifactId> - <version>2.19.0-SNAPSHOT</version> - </parent> - - <artifactId>camel-catalog-connector</artifactId> - <packaging>jar</packaging> - <name>Camel :: Platforms :: Catalog :: Connector</name> - <description>Camel Catalog Connector</description> - - <properties> - <camel.osgi.export.pkg> - org.apache.camel.catalog.connector - </camel.osgi.export.pkg> - </properties> - - <dependencies> - - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-catalog</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>${jackson2-version}</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - - <!-- testing --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - <scope>test</scope> - </dependency> - - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java b/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java deleted file mode 100644 index 6e41646..0000000 --- a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/CamelConnectorCatalog.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import java.util.List; -import javax.management.MXBean; - -/** - * Catalog of connectors. - */ -@MXBean -public interface CamelConnectorCatalog { - - /** - * To configure which {@link ConnectorDataStore} to use - */ - void setConnectorDataStore(ConnectorDataStore dataStore); - - /** - * Adds or updates the connector to the catalog - * - * @param groupId maven group id - * @param artifactId maven artifact id - * @param version maven version - * @param name name of connector - * @param description description of connector - * @param labels labels (separated by comma) of connector - * @param connectorJson the <tt>camel-connector</tt> json file - * @param connectorSchemaJson the <tt>camel-connector-schema</tt> json file - */ - void addConnector(String groupId, String artifactId, String version, String name, String description, String labels, - String connectorJson, String connectorSchemaJson); - - /** - * Removes the connector from the catalog - * - * @param groupId maven group id - * @param artifactId maven artifact id - * @param version maven version - */ - void removeConnector(String groupId, String artifactId, String version); - - /** - * Finds all the connectors from the catalog - * - * @param latestVersionOnly whether to include only latest version of the connectors - */ - List<ConnectorDto> findConnector(boolean latestVersionOnly); - - /** - * Find all the connectors that matches the maven coordinate, name, label or description from the catalog - * - * @param filter filter text - * @param latestVersionOnly whether to include only latest version of the connectors - */ - List<ConnectorDto> findConnector(String filter, boolean latestVersionOnly); - - /** - * Returns the <tt>camel-connector</tt> json file for the given connector with the Maven coordinate - * - * @param groupId maven group id - * @param artifactId maven artifact id - * @param version maven version - */ - String connectorJSon(String groupId, String artifactId, String version); - - /** - * Returns the <tt>camel-connector-schema</tt> json file for the given connector with the Maven coordinate - * - * @param groupId maven group id - * @param artifactId maven artifact id - * @param version maven version - */ - String connectorSchemaJSon(String groupId, String artifactId, String version); - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java b/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java deleted file mode 100644 index f3ae803..0000000 --- a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDataStore.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import java.util.List; - -/** - * Data store for connector details to be used by the {@link CamelConnectorCatalog}. - */ -public interface ConnectorDataStore { - - /** - * Adds or updates the connector to the catalog - * - * @param dto the connector dto - * @param connectorJson the <tt>camel-connector</tt> json file - * @param connectorSchemaJson the <tt>camel-connector-schema</tt> json file - */ - void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson); - - /** - * Removes the connector from the catalog - * - * @param dto the connector dto - */ - void removeConnector(ConnectorDto dto); - - /** - * Find all the connectors that matches the maven coordinate, name, label or description from the catalog - * - * @param filter filter text - * @param latestVersionOnly whether to include only latest version of the connectors - */ - List<ConnectorDto> findConnector(String filter, boolean latestVersionOnly); - - /** - * Returns the <tt>camel-connector</tt> json file for the given connector with the Maven coordinate - * - * @param dto the connector dto - */ - String connectorJSon(ConnectorDto dto); - - /** - * Returns the <tt>camel-connector-schema</tt> json file for the given connector with the Maven coordinate - * - * @param dto the connector dto - */ - String connectorSchemaJSon(ConnectorDto dto); - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java b/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java deleted file mode 100644 index 80ab8fb..0000000 --- a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/ConnectorDto.java +++ /dev/null @@ -1,122 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_EMPTY) -public class ConnectorDto { - - private String name; - private String description; - private String labels; - - private String groupId; - private String artifactId; - private String version; - - public String getMavenGav() { - return groupId + ":" + artifactId + ":" + version; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getLabels() { - return labels; - } - - public void setLabels(String labels) { - this.labels = labels; - } - - public String getGroupId() { - return groupId; - } - - public void setGroupId(String groupId) { - this.groupId = groupId; - } - - public String getArtifactId() { - return artifactId; - } - - public void setArtifactId(String artifactId) { - this.artifactId = artifactId; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - ConnectorDto that = (ConnectorDto) o; - - if (!groupId.equals(that.groupId)) { - return false; - } - if (!artifactId.equals(that.artifactId)) { - return false; - } - return version.equals(that.version); - } - - @Override - public int hashCode() { - int result = groupId.hashCode(); - result = 31 * result + artifactId.hashCode(); - result = 31 * result + version.hashCode(); - return result; - } - - @Override - public String toString() { - return "ConnectorDto[" - + "name='" + name + '\'' - + ", groupId='" + groupId + '\'' - + ", artifactId='" + artifactId + '\'' - + ", version='" + version + '\'' - + ']'; - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java b/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java deleted file mode 100644 index d3272a2..0000000 --- a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/DefaultCamelConnectorCatalog.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import java.util.List; - -public class DefaultCamelConnectorCatalog implements CamelConnectorCatalog { - - private ConnectorDataStore dataStore = new MemoryConnectorDataStore(); - - @Override - public void setConnectorDataStore(ConnectorDataStore dataStore) { - this.dataStore = dataStore; - } - - @Override - public void addConnector(String groupId, String artifactId, String version, String name, String description, String labels, - String connectorJson, String connectorSchemaJson) { - - ConnectorDto dto = new ConnectorDto(); - dto.setGroupId(groupId); - dto.setArtifactId(artifactId); - dto.setVersion(version); - dto.setName(name); - dto.setDescription(description); - dto.setLabels(labels); - - dataStore.addConnector(dto, connectorJson, connectorSchemaJson); - } - - @Override - public void removeConnector(String groupId, String artifactId, String version) { - - ConnectorDto dto = new ConnectorDto(); - dto.setGroupId(groupId); - dto.setArtifactId(artifactId); - dto.setVersion(version); - - dataStore.removeConnector(dto); - } - - @Override - public List<ConnectorDto> findConnector(boolean latestVersionOnly) { - return findConnector(null, latestVersionOnly); - } - - @Override - public List<ConnectorDto> findConnector(String filter, boolean latestVersionOnly) { - return dataStore.findConnector(filter, latestVersionOnly); - } - - @Override - public String connectorJSon(String groupId, String artifactId, String version) { - return null; - } - - @Override - public String connectorSchemaJSon(String groupId, String artifactId, String version) { - return null; - } -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java b/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java deleted file mode 100644 index 495a7f7..0000000 --- a/platforms/catalog-connector/src/main/java/org/apache/camel/catalog/connector/MemoryConnectorDataStore.java +++ /dev/null @@ -1,172 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Locale; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - -/** - * A memory based {@link ConnectorDataStore} - */ -public class MemoryConnectorDataStore implements ConnectorDataStore { - - private Set<ConnectorDetails> store = new CopyOnWriteArraySet<>(); - - @Override - public void addConnector(ConnectorDto dto, String connectorJson, String connectorSchemaJson) { - ConnectorDetails entry = new ConnectorDetails(dto, connectorJson, connectorSchemaJson); - - // remove in case we are updating the connector - store.remove(entry); - store.add(entry); - } - - @Override - public void removeConnector(ConnectorDto dto) { - store.remove(new ConnectorDetails(dto, null, null)); - } - - @Override - public List<ConnectorDto> findConnector(String filter, boolean latestVersionOnly) { - final List<ConnectorDto> answer = new ArrayList<>(); - - if (filter != null && !filter.isEmpty()) { - // search ignore case - filter = filter.toLowerCase(Locale.US); - - for (ConnectorDetails detail : store) { - ConnectorDto dto = detail.getDto(); - if (dto.getName().toLowerCase(Locale.US).contains(filter)) { - answer.add(dto); - } else if (dto.getDescription().toLowerCase(Locale.US).contains(filter)) { - answer.add(dto); - } else if (dto.getGroupId().toLowerCase(Locale.US).contains(filter)) { - answer.add(dto); - } else if (dto.getArtifactId().toLowerCase(Locale.US).contains(filter)) { - answer.add(dto); - } else if (dto.getVersion().toLowerCase(Locale.US).contains(filter)) { - answer.add(dto); - } else { - String labels = dto.getLabels(); - if (labels != null) { - String[] arr = labels.split(","); - for (String lab : arr) { - lab = lab.toLowerCase(Locale.US); - if (lab.contains(filter)) { - answer.add(dto); - break; - } - } - } - } - } - } else { - store.forEach(d -> answer.add(d.getDto())); - } - - // filter only latest version - if (latestVersionOnly && answer.size() > 1) { - // sort first - answer.sort(Comparator.comparing(ConnectorDto::getMavenGav)); - - // keep only latest in each group - List<ConnectorDto> unique = new ArrayList<>(); - ConnectorDto prev = null; - - for (ConnectorDto dto : answer) { - if (prev == null - || (prev.getGroupId().equals(dto.getGroupId()) - && prev.getArtifactId().equals(dto.getArtifactId()))) { - prev = dto; - } else { - unique.add(prev); - prev = dto; - } - } - if (prev != null) { - // special for last element - unique.add(prev); - } - - return unique; - } - - return answer; - } - - @Override - public String connectorJSon(ConnectorDto dto) { - return store.stream().filter(d -> d.getDto().equals(dto)).findFirst().orElse(null).getConnectorJson(); - } - - @Override - public String connectorSchemaJSon(ConnectorDto dto) { - return store.stream().filter(d -> d.getDto().equals(dto)).findFirst().orElse(null).getConnectorSchemaJson(); - } - - /** - * Entry holding the connector details - */ - private static final class ConnectorDetails { - - private ConnectorDto dto; - private String connectorJson; - private String connectorSchemaJson; - - ConnectorDetails(ConnectorDto dto, String connectorJson, String connectorSchemaJson) { - this.dto = dto; - this.connectorJson = connectorJson; - this.connectorSchemaJson = connectorSchemaJson; - } - - ConnectorDto getDto() { - return dto; - } - - String getConnectorJson() { - return connectorJson; - } - - String getConnectorSchemaJson() { - return connectorSchemaJson; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - ConnectorDetails entry = (ConnectorDetails) o; - - return dto.equals(entry.dto); - } - - @Override - public int hashCode() { - return dto.hashCode(); - } - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/resources/META-INF/LICENSE.txt ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/resources/META-INF/LICENSE.txt b/platforms/catalog-connector/src/main/resources/META-INF/LICENSE.txt deleted file mode 100755 index 6b0b127..0000000 --- a/platforms/catalog-connector/src/main/resources/META-INF/LICENSE.txt +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/main/resources/META-INF/NOTICE.txt ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/main/resources/META-INF/NOTICE.txt b/platforms/catalog-connector/src/main/resources/META-INF/NOTICE.txt deleted file mode 100644 index 2e215bf..0000000 --- a/platforms/catalog-connector/src/main/resources/META-INF/NOTICE.txt +++ /dev/null @@ -1,11 +0,0 @@ - ========================================================================= - == NOTICE file corresponding to the section 4 d of == - == the Apache License, Version 2.0, == - == in this case for the Apache Camel distribution. == - ========================================================================= - - This product includes software developed by - The Apache Software Foundation (http://www.apache.org/). - - Please read the different LICENSE files present in the licenses directory of - this distribution. http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java b/platforms/catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java deleted file mode 100644 index 972a2a6..0000000 --- a/platforms/catalog-connector/src/test/java/org/apache/camel/catalog/connector/CamelConnectorCatalogTest.java +++ /dev/null @@ -1,107 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.connector; - -import org.junit.Ignore; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class CamelConnectorCatalogTest { - - @Test - public void testAddConnector() throws Exception { - CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog(); - - assertEquals(0, catalog.findConnector(false).size()); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0", - "MyFoo", "Something cool", "foo,timer", null, null); - - assertEquals(1, catalog.findConnector(false).size()); - } - - @Test - public void testRemoveConnector() throws Exception { - CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog(); - - assertEquals(0, catalog.findConnector(false).size()); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0", - "MyFoo", "Something cool", "foo,timer", null, null); - - assertEquals(1, catalog.findConnector(false).size()); - - catalog.removeConnector("org.apache.camel", "myfoo-connector", "2.19.0"); - - assertEquals(0, catalog.findConnector(false).size()); - } - - @Test - public void testFindConnectorFilter() throws Exception { - CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog(); - - assertEquals(0, catalog.findConnector(false).size()); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0", - "MyFoo", "Something cool", "foo,timer", null, null); - - assertEquals(1, catalog.findConnector("foo", false).size()); - assertEquals(0, catalog.findConnector("bar", false).size()); - } - - @Test - public void testFindConnectorLatestVersionOnly() throws Exception { - CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog(); - - assertEquals(0, catalog.findConnector(false).size()); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0", - "MyFoo", "Something cool", "foo,timer", null, null); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.1", - "MyFoo", "Something more cool", "foo,timer", null, null); - - assertEquals(1, catalog.findConnector("foo", true).size()); - assertEquals(0, catalog.findConnector("bar", true).size()); - - assertEquals("2.19.1", catalog.findConnector("foo", true).get(0).getVersion()); - assertEquals("Something more cool", catalog.findConnector("foo", true).get(0).getDescription()); - } - - @Test - public void testFindConnectorNotLatestVersionOnly() throws Exception { - CamelConnectorCatalog catalog = new DefaultCamelConnectorCatalog(); - - assertEquals(0, catalog.findConnector(false).size()); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.0", - "MyFoo", "Something cool", "foo,timer", null, null); - - catalog.addConnector("org.apache.camel", "myfoo-connector", "2.19.1", - "MyFoo", "Something more cool", "foo,timer", null, null); - - assertEquals(2, catalog.findConnector("foo", false).size()); - assertEquals(0, catalog.findConnector("bar", false).size()); - - assertEquals("2.19.0", catalog.findConnector("foo", false).get(0).getVersion()); - assertEquals("Something cool", catalog.findConnector("foo", false).get(0).getDescription()); - assertEquals("2.19.1", catalog.findConnector("foo", false).get(1).getVersion()); - assertEquals("Something more cool", catalog.findConnector("foo", false).get(1).getDescription()); - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-connector/src/test/resources/log4j2.properties ---------------------------------------------------------------------- diff --git a/platforms/catalog-connector/src/test/resources/log4j2.properties b/platforms/catalog-connector/src/test/resources/log4j2.properties deleted file mode 100644 index 3ab2056..0000000 --- a/platforms/catalog-connector/src/test/resources/log4j2.properties +++ /dev/null @@ -1,28 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- - -appender.file.type = File -appender.file.name = file -appender.file.fileName = target/camel-catalog-connector-test.log -appender.file.layout.type = PatternLayout -appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n -appender.out.type = Console -appender.out.name = out -appender.out.layout.type = PatternLayout -appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n -rootLogger.level = INFO -rootLogger.appenderRef.file.ref = file http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/pom.xml ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/pom.xml b/platforms/catalog-lucene/pom.xml deleted file mode 100644 index 3e653f9..0000000 --- a/platforms/catalog-lucene/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.camel</groupId> - <artifactId>platforms</artifactId> - <version>2.19.0-SNAPSHOT</version> - </parent> - - <artifactId>camel-catalog-lucene</artifactId> - <packaging>jar</packaging> - <name>Camel :: Platforms :: Catalog :: Lucene</name> - <description>Camel Catalog Lucene</description> - - <properties> - <camel.osgi.export.pkg> - org.apache.camel.catalog.lucene - </camel.osgi.export.pkg> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-catalog</artifactId> - </dependency> - - <dependency> - <groupId>org.apache.lucene</groupId> - <artifactId>lucene-core</artifactId> - <version>${lucene-version}</version> - </dependency> - <dependency> - <groupId>org.apache.lucene</groupId> - <artifactId>lucene-suggest</artifactId> - <version>${lucene-version}</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - - <!-- logging --> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java b/platforms/catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java deleted file mode 100644 index 0be3cc5..0000000 --- a/platforms/catalog-lucene/src/main/java/org/apache/camel/catalog/lucene/LuceneSuggestionStrategy.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.lucene; - -import java.io.StringReader; -import java.util.Set; - -import org.apache.camel.catalog.SuggestionStrategy; -import org.apache.lucene.analysis.core.KeywordAnalyzer; -import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.search.spell.PlainTextDictionary; -import org.apache.lucene.search.spell.SpellChecker; -import org.apache.lucene.store.RAMDirectory; - -/** - * Apache Lucene based {@link SuggestionStrategy}. - * <p/> - * This is a simple implementation using in-memory directory and no state. - */ -public class LuceneSuggestionStrategy implements SuggestionStrategy { - - private int maxSuggestions = 3; - - @Override - public String[] suggestEndpointOptions(Set<String> names, String unknownOption) { - // each option must be on a separate line in a String - StringBuilder sb = new StringBuilder(); - for (String name : names) { - sb.append(name); - sb.append("\n"); - } - StringReader reader = new StringReader(sb.toString()); - - try { - PlainTextDictionary words = new PlainTextDictionary(reader); - - // use in-memory lucene spell checker to make the suggestions - RAMDirectory dir = new RAMDirectory(); - SpellChecker checker = new SpellChecker(dir); - checker.indexDictionary(words, new IndexWriterConfig(new KeywordAnalyzer()), false); - - return checker.suggestSimilar(unknownOption, maxSuggestions); - } catch (Exception e) { - // ignore - } - - return null; - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/src/main/resources/META-INF/LICENSE.txt ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/src/main/resources/META-INF/LICENSE.txt b/platforms/catalog-lucene/src/main/resources/META-INF/LICENSE.txt deleted file mode 100755 index 6b0b127..0000000 --- a/platforms/catalog-lucene/src/main/resources/META-INF/LICENSE.txt +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/src/main/resources/META-INF/NOTICE.txt ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/src/main/resources/META-INF/NOTICE.txt b/platforms/catalog-lucene/src/main/resources/META-INF/NOTICE.txt deleted file mode 100644 index 2e215bf..0000000 --- a/platforms/catalog-lucene/src/main/resources/META-INF/NOTICE.txt +++ /dev/null @@ -1,11 +0,0 @@ - ========================================================================= - == NOTICE file corresponding to the section 4 d of == - == the Apache License, Version 2.0, == - == in this case for the Apache Camel distribution. == - ========================================================================= - - This product includes software developed by - The Apache Software Foundation (http://www.apache.org/). - - Please read the different LICENSE files present in the licenses directory of - this distribution. http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/src/test/java/org/apache/camel/catalog/lucene/CamelCatalogLuceneTest.java ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/src/test/java/org/apache/camel/catalog/lucene/CamelCatalogLuceneTest.java b/platforms/catalog-lucene/src/test/java/org/apache/camel/catalog/lucene/CamelCatalogLuceneTest.java deleted file mode 100644 index 1feed85..0000000 --- a/platforms/catalog-lucene/src/test/java/org/apache/camel/catalog/lucene/CamelCatalogLuceneTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.catalog.lucene; - -import org.apache.camel.catalog.CamelCatalog; -import org.apache.camel.catalog.DefaultCamelCatalog; -import org.apache.camel.catalog.EndpointValidationResult; -import org.junit.Before; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -public class CamelCatalogLuceneTest { - - private CamelCatalog catalog; - - @Before - public void createCamelCatalog() { - catalog = new DefaultCamelCatalog(); - catalog.setSuggestionStrategy(new LuceneSuggestionStrategy()); - } - - @Test - public void validateProperties() throws Exception { - // spell typo error - EndpointValidationResult result = catalog.validateEndpointProperties("log:mylog?levl=WARN"); - assertFalse(result.isSuccess()); - assertTrue(result.getUnknown().contains("levl")); - assertEquals("level", result.getUnknownSuggestions().get("levl")[0]); - assertEquals(1, result.getNumberOfErrors()); - } -} http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-lucene/src/test/resources/log4j2.properties ---------------------------------------------------------------------- diff --git a/platforms/catalog-lucene/src/test/resources/log4j2.properties b/platforms/catalog-lucene/src/test/resources/log4j2.properties deleted file mode 100644 index 738d435..0000000 --- a/platforms/catalog-lucene/src/test/resources/log4j2.properties +++ /dev/null @@ -1,28 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- - -appender.file.type = File -appender.file.name = file -appender.file.fileName = target/camel-catalog-lucene-test.log -appender.file.layout.type = PatternLayout -appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n -appender.out.type = Console -appender.out.name = out -appender.out.layout.type = PatternLayout -appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n -rootLogger.level = INFO -rootLogger.appenderRef.file.ref = file http://git-wip-us.apache.org/repos/asf/camel/blob/b23fbb46/platforms/catalog-maven/pom.xml ---------------------------------------------------------------------- diff --git a/platforms/catalog-maven/pom.xml b/platforms/catalog-maven/pom.xml deleted file mode 100644 index 18c504e..0000000 --- a/platforms/catalog-maven/pom.xml +++ /dev/null @@ -1,102 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.camel</groupId> - <artifactId>platforms</artifactId> - <version>2.19.0-SNAPSHOT</version> - </parent> - - <artifactId>camel-catalog-maven</artifactId> - <packaging>jar</packaging> - <name>Camel :: Platforms :: Catalog :: Maven</name> - <description>Camel Catalog Maven</description> - - <properties> - <camel.osgi.export.pkg> - org.apache.camel.catalog.maven - </camel.osgi.export.pkg> - </properties> - - <dependencies> - - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-catalog</artifactId> - </dependency> - - <!-- use groovy grape to download JARs as that is easy to use --> - <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy</artifactId> - <version>${groovy-version}</version> - </dependency> - <dependency> - <groupId>org.apache.ivy</groupId> - <artifactId>ivy</artifactId> - <version>${ivy-version}</version> - </dependency> - - <!-- testing --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-catalog-provider-springboot</artifactId> - <scope>test</scope> - </dependency> - - <!-- logging --> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - <scope>test</scope> - </dependency> - - - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - </plugin> - </plugins> - - </build> - -</project>