You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2018/01/04 14:17:03 UTC
[2/2] nifi git commit: NIFI-4734 refactored couchbase bundle,
jms bundle, removed jms test-lib usage,
fixed broken SeeAlso and service links causing docs warns. Corrected L&N in
each bundle. This closes #2369.
NIFI-4734 refactored couchbase bundle, jms bundle, removed jms test-lib usage, fixed broken SeeAlso and service links causing docs warns. Corrected L&N in each bundle. This closes #2369.
Signed-off-by: Mark Payne <ma...@hotmail.com>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/6ee6b5e5
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/6ee6b5e5
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/6ee6b5e5
Branch: refs/heads/master
Commit: 6ee6b5e57c5ad932c43f08be1f45acb37f2ffe45
Parents: 42a1ee0
Author: joewitt <jo...@apache.org>
Authored: Wed Jan 3 22:11:01 2018 -0500
Committer: Mark Payne <ma...@hotmail.com>
Committed: Thu Jan 4 09:16:17 2018 -0500
----------------------------------------------------------------------
nifi-assembly/pom.xml | 5 +
.../nifi-couchbase-nar/pom.xml | 5 +
.../src/main/resources/META-INF/NOTICE | 9 +
.../nifi-couchbase-processors/pom.xml | 11 +-
.../CouchbaseClusterControllerService.java | 38 --
.../processors/couchbase/GetCouchbaseKey.java | 3 -
.../processors/couchbase/PutCouchbaseKey.java | 3 -
.../nifi-couchbase-services-api-nar/pom.xml | 41 +++
.../src/main/resources/META-INF/NOTICE | 21 ++
.../nifi-couchbase-services-api/pom.xml | 39 ++
.../CouchbaseClusterControllerService.java | 36 ++
nifi-nar-bundles/nifi-couchbase-bundle/pom.xml | 2 +
.../html/HtmlDocumentationWriter.java | 28 +-
.../src/main/resources/META-INF/LICENSE | 233 ------------
.../src/main/resources/META-INF/NOTICE | 37 +-
.../nifi-jms-bundle/nifi-jms-cf-service/pom.xml | 17 +-
.../jms/cf/JMSConnectionFactoryProvider.java | 266 --------------
.../JMSConnectionFactoryProviderDefinition.java | 98 +-----
.../main/java/org/apache/nifi/jms/cf/Utils.java | 107 ------
...org.apache.nifi.controller.ControllerService | 15 -
.../additionalDetails.html | 56 ---
.../cf/JMSConnectionFactoryProviderTest.java | 195 ----------
.../java/org/apache/nifi/jms/cf/TestUtils.java | 65 ----
.../src/test/resources/log4j.properties | 20 --
.../nifi-jms-cf-service/test-lib/README | 4 -
.../TestConnectionFactory.java | 111 ------
.../test-lib/test_user_lib.jar | Bin 3452 -> 0 bytes
.../src/main/resources/META-INF/NOTICE | 55 ++-
.../nifi-jms-bundle/nifi-jms-processors/pom.xml | 11 +
.../jms/cf/JMSConnectionFactoryProvider.java | 352 +++++++++++++++++++
.../main/java/org/apache/nifi/jms/cf/Utils.java | 107 ++++++
...org.apache.nifi.controller.ControllerService | 15 +
.../additionalDetails.html | 56 +++
.../cf/JMSConnectionFactoryProviderTest.java | 66 ++++
.../processors/standard/HandleHttpRequest.java | 3 +-
.../HBase_1_1_2_ClientMapCacheService.java | 2 +-
pom.xml | 11 +
37 files changed, 860 insertions(+), 1283 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-assembly/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-assembly/pom.xml b/nifi-assembly/pom.xml
index 39b06e8..225ce63 100755
--- a/nifi-assembly/pom.xml
+++ b/nifi-assembly/pom.xml
@@ -338,6 +338,11 @@ language governing permissions and limitations under the License. -->
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-services-api-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
<artifactId>nifi-hbase-nar</artifactId>
<type>nar</type>
</dependency>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/pom.xml b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/pom.xml
index ae7773f..61ba773 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/pom.xml
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/pom.xml
@@ -33,6 +33,11 @@
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-services-api-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
<artifactId>nifi-couchbase-processors</artifactId>
<version>1.5.0-SNAPSHOT</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/src/main/resources/META-INF/NOTICE
index f7343f5..ff94b66 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/src/main/resources/META-INF/NOTICE
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-nar/src/main/resources/META-INF/NOTICE
@@ -19,3 +19,12 @@ The following binary components are provided under the Apache Software License v
The following NOTICE information applies:
Couchbase Java SDK
Copyright 2012 Netflix, Inc.
+
+ (ASLv2) Apache Commons Lang
+ The following NOTICE information applies:
+ Apache Commons Lang
+ Copyright 2001-2017 The Apache Software Foundation
+
+ This product includes software from the Spring Framework,
+ under the Apache License 2.0 (see: StringUtils.containsWhitespace())
+
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/pom.xml b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/pom.xml
index f8e5b34..f21713a 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/pom.xml
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/pom.xml
@@ -35,6 +35,11 @@
<artifactId>nifi-utils</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-services-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
@@ -49,14 +54,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.couchbase.client</groupId>
- <artifactId>java-client</artifactId>
- <version>2.2.0</version>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
deleted file mode 100644
index fcf72d5..0000000
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
+++ /dev/null
@@ -1,38 +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.nifi.couchbase;
-
-import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.controller.ControllerService;
-
-import com.couchbase.client.java.Bucket;
-
-/**
- * Provides a connection to a Couchbase Server cluster throughout a NiFi Data
- * flow.
- */
-@CapabilityDescription("Provides a centralized Couchbase connection.")
-public interface CouchbaseClusterControllerService extends ControllerService {
-
- /**
- * Open a bucket connection.
- * @param bucketName the bucket name to access
- * @return a connected bucket instance
- */
- public Bucket openBucket(String bucketName);
-
-}
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
index 63b583a..76e28cb 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
@@ -32,11 +32,9 @@ import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.behavior.WritesAttribute;
import org.apache.nifi.annotation.behavior.WritesAttributes;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.couchbase.CouchbaseAttributes;
-import org.apache.nifi.couchbase.CouchbaseClusterControllerService;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.ProcessContext;
@@ -59,7 +57,6 @@ import com.couchbase.client.java.error.DocumentDoesNotExistException;
@CapabilityDescription("Get a document from Couchbase Server via Key/Value access. The ID of the document to fetch may be supplied by setting the <Document Id> property. "
+ "NOTE: if the Document Id property is not set, the contents of the FlowFile will be read to determine the Document Id, which means that the contents of the entire "
+ "FlowFile will be buffered in memory.")
-@SeeAlso({CouchbaseClusterControllerService.class})
@WritesAttributes({
@WritesAttribute(attribute = "couchbase.cluster", description = "Cluster where the document was retrieved from."),
@WritesAttribute(attribute = "couchbase.bucket", description = "Bucket where the document was retrieved from."),
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
index 2d89d8f..f8c32b8 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
@@ -32,11 +32,9 @@ import org.apache.nifi.annotation.behavior.ReadsAttributes;
import org.apache.nifi.annotation.behavior.WritesAttribute;
import org.apache.nifi.annotation.behavior.WritesAttributes;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.couchbase.CouchbaseAttributes;
-import org.apache.nifi.couchbase.CouchbaseClusterControllerService;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.logging.ComponentLog;
@@ -58,7 +56,6 @@ import com.couchbase.client.java.document.RawJsonDocument;
@Tags({"nosql", "couchbase", "database", "put"})
@CapabilityDescription("Put a document to Couchbase Server via Key/Value access.")
-@SeeAlso({CouchbaseClusterControllerService.class})
@InputRequirement(Requirement.INPUT_REQUIRED)
@ReadsAttributes({
@ReadsAttribute(attribute = "uuid", description = "Used as a document id if 'Document Id' is not specified"),
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/pom.xml b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/pom.xml
new file mode 100644
index 0000000..3e0f790
--- /dev/null
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/pom.xml
@@ -0,0 +1,41 @@
+<?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/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-bundle</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>nifi-couchbase-services-api-nar</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ <packaging>nar</packaging>
+ <properties>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <source.skip>true</source.skip>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-services-api</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..18858c3
--- /dev/null
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api-nar/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,21 @@
+nifi-couchbase-services-api-nar
+Copyright 2014-2017 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+******************
+Apache Software License v2
+******************
+
+The following binary components are provided under the Apache Software License v2
+
+ (ASLv2) Couchbase Java SDK
+ The following NOTICE information applies:
+ Couchbase Java SDK
+ Copyright 2014 Couchbase, Inc.
+
+ (ASLv2) RxJava
+ The following NOTICE information applies:
+ Couchbase Java SDK
+ Copyright 2012 Netflix, Inc.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/pom.xml b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/pom.xml
new file mode 100644
index 0000000..079bde6
--- /dev/null
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/pom.xml
@@ -0,0 +1,39 @@
+<?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/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-couchbase-bundle</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>nifi-couchbase-services-api</artifactId>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.couchbase.client</groupId>
+ <artifactId>java-client</artifactId>
+ <version>2.2.0</version>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
new file mode 100644
index 0000000..83e52be
--- /dev/null
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-services-api/src/main/java/org/apache/nifi/couchbase/CouchbaseClusterControllerService.java
@@ -0,0 +1,36 @@
+/*
+ * 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.nifi.couchbase;
+
+import org.apache.nifi.controller.ControllerService;
+
+import com.couchbase.client.java.Bucket;
+
+/**
+ * Provides a connection to a Couchbase Server cluster throughout a NiFi Data
+ * flow.
+ */
+public interface CouchbaseClusterControllerService extends ControllerService {
+
+ /**
+ * Open a bucket connection.
+ * @param bucketName the bucket name to access
+ * @return a connected bucket instance
+ */
+ public Bucket openBucket(String bucketName);
+
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-couchbase-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-couchbase-bundle/pom.xml b/nifi-nar-bundles/nifi-couchbase-bundle/pom.xml
index 83fcc8b..94b4eb8 100644
--- a/nifi-nar-bundles/nifi-couchbase-bundle/pom.xml
+++ b/nifi-nar-bundles/nifi-couchbase-bundle/pom.xml
@@ -28,6 +28,8 @@
<packaging>pom</packaging>
<modules>
+ <module>nifi-couchbase-services-api</module>
+ <module>nifi-couchbase-services-api-nar</module>
<module>nifi-couchbase-processors</module>
<module>nifi-couchbase-nar</module>
</modules>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
index 15f3e5a..a61429a 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
@@ -287,7 +287,7 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
if (componentNames.length > 0 || classNames.length > 0) {
// Write alternatives
- iterateAndLinkComponents(xmlStreamWriter, componentNames, classNames, ",");
+ iterateAndLinkComponents(xmlStreamWriter, componentNames, classNames, ",", configurableComponent.getClass().getSimpleName());
} else {
xmlStreamWriter.writeCharacters("No alternative components suggested.");
}
@@ -314,7 +314,7 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
String[] classNames = seeAlso.classNames();
if (componentNames.length > 0 || classNames.length > 0) {
// Write alternatives
- iterateAndLinkComponents(xmlStreamWriter, componentNames, classNames, ", ");
+ iterateAndLinkComponents(xmlStreamWriter, componentNames, classNames, ", ", configurableComponent.getClass().getSimpleName());
} else {
xmlStreamWriter.writeCharacters("No tags provided.");
}
@@ -643,7 +643,7 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
if (implementations.length > 0) {
final String title = implementations.length > 1 ? "Implementations: " : "Implementation: ";
writeSimpleElement(xmlStreamWriter, "strong", title);
- iterateAndLinkComponents(xmlStreamWriter, implementations, null, "<br>");
+ iterateAndLinkComponents(xmlStreamWriter, implementations, null, "<br>", controllerServiceClass.getSimpleName());
} else {
xmlStreamWriter.writeCharacters("No implementations found.");
}
@@ -762,21 +762,23 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
* @param separator a separator used to split the values (in case more than 1. If the separator is enclosed in
* between "<" and ">" (.e.g "<br>" it is treated as a tag and written to the xmlStreamWriter as an
* empty tag
+ * @param sourceContextName the source context/name of the item being linked
* @throws XMLStreamException thrown if there is a problem writing the XML
*/
- protected void iterateAndLinkComponents(final XMLStreamWriter xmlStreamWriter, final Class<? extends ConfigurableComponent>[] linkedComponents, String[] classNames, String separator)
+ protected void iterateAndLinkComponents(final XMLStreamWriter xmlStreamWriter, final Class<? extends ConfigurableComponent>[] linkedComponents,
+ final String[] classNames, final String separator, final String sourceContextName)
throws XMLStreamException {
-
+ String effectiveSeparator = separator;
// Treat the the possible separators
boolean separatorIsElement;
- if (separator.startsWith("<") && separator.endsWith(">")) {
+ if (effectiveSeparator.startsWith("<") && effectiveSeparator.endsWith(">")) {
separatorIsElement = true;
} else {
separatorIsElement = false;
}
// Whatever the result, strip the possible < and > characters
- separator = separator.replaceAll("\\<([^>]*)>","$1");
+ effectiveSeparator = effectiveSeparator.replaceAll("\\<([^>]*)>","$1");
int index = 0;
for (final Class<? extends ConfigurableComponent> linkedComponent : linkedComponents ) {
@@ -794,16 +796,16 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
if (index != 0) {
if (separatorIsElement) {
- xmlStreamWriter.writeEmptyElement(separator);
+ xmlStreamWriter.writeEmptyElement(effectiveSeparator);
} else {
- xmlStreamWriter.writeCharacters(separator);
+ xmlStreamWriter.writeCharacters(effectiveSeparator);
}
}
writeLink(xmlStreamWriter, linkedComponent.getSimpleName(), "../../../../../components/" + group + "/" + id + "/" + version + "/" + linkedComponent.getCanonicalName() + "/index.html");
++index;
} else {
- LOGGER.warn("Could not link to {} because no bundles were found", new Object[] {linkedComponentName});
+ LOGGER.warn("Could not link to {} because no bundles were found for {}", new Object[] {linkedComponentName, sourceContextName});
}
}
@@ -811,9 +813,9 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
for (final String className : classNames) {
if (index != 0) {
if (separatorIsElement) {
- xmlStreamWriter.writeEmptyElement(separator);
+ xmlStreamWriter.writeEmptyElement(effectiveSeparator);
} else {
- xmlStreamWriter.writeCharacters(separator);
+ xmlStreamWriter.writeCharacters(effectiveSeparator);
}
}
@@ -835,7 +837,7 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
++index;
} else {
- LOGGER.warn("Could not link to {} because no bundles were found", new Object[] {className});
+ LOGGER.warn("Could not link to {} because no bundles were found for {}", new Object[] {className, sourceContextName});
}
}
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/LICENSE
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index 0c6534d..0000000
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,233 +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.
-
-APACHE NIFI SUBCOMPONENTS:
-
-The Apache NiFi project contains subcomponents with separate copyright
-notices and license terms. Your use of the source code for the these
-subcomponents is subject to the terms and conditions of the following
-licenses.
-
- The binary distribution of this product bundles 'Bouncy Castle JDK 1.5'
- under an MIT style license.
-
- Copyright (c) 2000 - 2015 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/NOTICE
index 9c13792..ec45e91 100644
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/NOTICE
+++ b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service-nar/src/main/resources/META-INF/NOTICE
@@ -4,36 +4,11 @@ Copyright 2014-2017 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
-******************
-Apache Software License v2
-******************
+************************
+Common Development and Distribution License 1.1
+************************
-The following binary components are provided under the Apache Software License v2
+The following binary components are provided under the Common Development and Distribution License 1.1. See project link for details.
- (ASLv2) Apache Commons Lang
- The following NOTICE information applies:
- Apache Commons Lang
- Copyright 2001-2016 The Apache Software Foundation
-
- (ASLv2) Jackson JSON processor
- The following NOTICE information applies:
- # Jackson JSON processor
-
- Jackson is a high-performance, Free/Open Source JSON processing library.
- It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
- been in development since 2007.
- It is currently developed by a community of developers, as well as supported
- commercially by FasterXML.com.
-
- ## Licensing
-
- Jackson core and extension components may licensed under different licenses.
- To find the details that apply to this artifact see the accompanying LICENSE file.
- For more information, including possible other licensing options, contact
- FasterXML.com (http://fasterxml.com).
-
- ## Credits
-
- A list of contributors may be found from CREDITS file, which is included
- in some artifacts (usually source distributions); but is always available
- from the source code management (SCM) system project uses.
+ (CDDL 1.1) (GPL2 w/ CPE) Javax JMS Api (javax.jms:javax.jms-api:jar:2.0.1 - http://java.net/projects/jms-spec/pages/Home)
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/pom.xml
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/pom.xml b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/pom.xml
index e45ae37..5279be0 100644
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/pom.xml
+++ b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/pom.xml
@@ -20,26 +20,11 @@
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ssl-context-service-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-processor-utils</artifactId>
+ <artifactId>nifi-api</artifactId>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
</dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
deleted file mode 100644
index d21b0be..0000000
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProvider.java
+++ /dev/null
@@ -1,266 +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.nifi.jms.cf;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map.Entry;
-
-import javax.jms.ConnectionFactory;
-import javax.net.ssl.SSLContext;
-
-import org.apache.nifi.annotation.behavior.DynamicProperty;
-import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.annotation.documentation.SeeAlso;
-import org.apache.nifi.annotation.documentation.Tags;
-import org.apache.nifi.annotation.lifecycle.OnDisabled;
-import org.apache.nifi.annotation.lifecycle.OnEnabled;
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.controller.AbstractControllerService;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.reporting.InitializationException;
-import org.apache.nifi.ssl.SSLContextService;
-import org.apache.nifi.ssl.SSLContextService.ClientAuth;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Provides a factory service that creates and initializes
- * {@link ConnectionFactory} specific to the third party JMS system.
- * <p>
- * It accomplishes it by adjusting current classpath by adding to it the
- * additional resources (i.e., JMS client libraries) provided by the user via
- * {@link JMSConnectionFactoryProviderDefinition#CLIENT_LIB_DIR_PATH}, allowing
- * it then to create an instance of the target {@link ConnectionFactory} based
- * on the provided {@link JMSConnectionFactoryProviderDefinition#CONNECTION_FACTORY_IMPL}
- * which can be than access via {@link #getConnectionFactory()} method.
- * </p>
- */
-@Tags({ "jms", "messaging", "integration", "queue", "topic", "publish", "subscribe" })
-@CapabilityDescription("Provides a generic service to create vendor specific javax.jms.ConnectionFactory implementations. "
- + "ConnectionFactory can be served once this service is configured successfully")
-@DynamicProperty(name = "The name of a Connection Factory configuration property.", value = "The value of a given Connection Factory configuration property.",
- description = "The properties that are set following Java Beans convention where a property name is derived from the 'set*' method of the vendor "
- + "specific ConnectionFactory's implementation. For example, 'com.ibm.mq.jms.MQConnectionFactory.setChannel(String)' would imply 'channel' "
- + "property and 'com.ibm.mq.jms.MQConnectionFactory.setTransportType(int)' would imply 'transportType' property.")
-@SeeAlso(classNames = { "org.apache.nifi.jms.processors.ConsumeJMS", "org.apache.nifi.jms.processors.PublishJMS" })
-public class JMSConnectionFactoryProvider extends AbstractControllerService implements JMSConnectionFactoryProviderDefinition {
-
- private final Logger logger = LoggerFactory.getLogger(JMSConnectionFactoryProvider.class);
-
- private static final List<PropertyDescriptor> propertyDescriptors;
-
- static {
- propertyDescriptors = Collections.unmodifiableList(Arrays.asList(CONNECTION_FACTORY_IMPL, CLIENT_LIB_DIR_PATH, BROKER_URI, SSL_CONTEXT_SERVICE));
- }
-
- private volatile boolean configured;
-
- private volatile ConnectionFactory connectionFactory;
-
- /**
- *
- */
- @Override
- protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
- return propertyDescriptors;
- }
-
- /**
- *
- */
- @Override
- protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
- return new PropertyDescriptor.Builder()
- .description("Specifies the value for '" + propertyDescriptorName
- + "' property to be set on the provided ConnectionFactory implementation.")
- .name(propertyDescriptorName).addValidator(StandardValidators.NON_EMPTY_VALIDATOR).dynamic(true)
- .build();
- }
-
- /**
- *
- * @return new instance of {@link ConnectionFactory}
- */
- @Override
- public ConnectionFactory getConnectionFactory() {
- if (this.configured) {
- return this.connectionFactory;
- }
- throw new IllegalStateException("ConnectionFactory can not be obtained unless "
- + "this ControllerService is configured. See onConfigure(ConfigurationContext) method.");
- }
-
- /**
- *
- */
- @OnEnabled
- public void enable(ConfigurationContext context) throws InitializationException {
- try {
- if (!this.configured) {
- if (logger.isInfoEnabled()) {
- logger.info("Configuring " + this.getClass().getSimpleName() + " for '"
- + context.getProperty(CONNECTION_FACTORY_IMPL).evaluateAttributeExpressions().getValue() + "' to be connected to '"
- + BROKER_URI + "'");
- }
- // will load user provided libraries/resources on the classpath
- Utils.addResourcesToClasspath(context.getProperty(CLIENT_LIB_DIR_PATH).evaluateAttributeExpressions().getValue());
-
- this.createConnectionFactoryInstance(context);
-
- this.setConnectionFactoryProperties(context);
- }
- this.configured = true;
- } catch (Exception e) {
- logger.error("Failed to configure " + this.getClass().getSimpleName(), e);
- this.configured = false;
- throw new IllegalStateException(e);
- }
- }
-
- /**
- *
- */
- @OnDisabled
- public void disable() {
- this.connectionFactory = null;
- this.configured = false;
- }
-
- /**
- * This operation follows standard bean convention by matching property name
- * to its corresponding 'setter' method. Once the method was located it is
- * invoked to set the corresponding property to a value provided by during
- * service configuration. For example, 'channel' property will correspond to
- * 'setChannel(..) method and 'queueManager' property will correspond to
- * setQueueManager(..) method with a single argument.
- *
- * There are also few adjustments to accommodate well known brokers. For
- * example ActiveMQ ConnectionFactory accepts address of the Message Broker
- * in a form of URL while IBMs in the form of host/port pair (more common).
- * So this method will use value retrieved from the 'BROKER_URI' static
- * property 'as is' if ConnectionFactory implementation is coming from
- * ActiveMQ and for all others (for now) the 'BROKER_URI' value will be
- * split on ':' and the resulting pair will be used to execute
- * setHostName(..) and setPort(..) methods on the provided
- * ConnectionFactory. This may need to be maintained and adjusted to
- * accommodate other implementation of ConnectionFactory, but only for
- * URL/Host/Port issue. All other properties are set as dynamic properties
- * where user essentially provides both property name and value, The bean
- * convention is also explained in user manual for this component with links
- * pointing to documentation of various ConnectionFactories.
- *
- * @see #setProperty(String, String) method
- */
- private void setConnectionFactoryProperties(ConfigurationContext context) {
- for (final Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet()) {
- PropertyDescriptor descriptor = entry.getKey();
- String propertyName = descriptor.getName();
- if (descriptor.isDynamic()) {
- this.setProperty(propertyName, entry.getValue());
- } else {
- if (propertyName.equals(BROKER)) {
- String brokerValue = context.getProperty(descriptor).evaluateAttributeExpressions().getValue();
- if (context.getProperty(CONNECTION_FACTORY_IMPL).evaluateAttributeExpressions().getValue().startsWith("org.apache.activemq")) {
- this.setProperty("brokerURL", brokerValue);
- } else {
- String[] hostPort = brokerValue.split(":");
- if (hostPort.length == 2) {
- this.setProperty("hostName", hostPort[0]);
- this.setProperty("port", hostPort[1]);
- } else if (hostPort.length != 2) {
- this.setProperty("serverUrl", brokerValue); // for tibco
- } else {
- throw new IllegalArgumentException("Failed to parse broker url: " + brokerValue);
- }
- }
- SSLContextService sc = context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
- if (sc != null) {
- SSLContext ssl = sc.createSSLContext(ClientAuth.NONE);
- this.setProperty("sSLSocketFactory", ssl.getSocketFactory());
- }
- } // ignore 'else', since it's the only non-dynamic property that is relevant to CF configuration
- }
- }
- }
-
- /**
- * Sets corresponding {@link ConnectionFactory}'s property to a
- * 'propertyValue' by invoking a 'setter' method that corresponds to
- * 'propertyName'. For example, 'channel' property will correspond to
- * 'setChannel(..) method and 'queueManager' property will correspond to
- * setQueueManager(..) method with a single argument.
- *
- * NOTE: There is a limited type conversion to accommodate property value
- * types since all NiFi configuration properties comes as String. It is
- * accomplished by checking the argument type of the method and executing
- * its corresponding conversion to target primitive (e.g., value 'true' will
- * go thru Boolean.parseBoolean(propertyValue) if method argument is of type
- * boolean). None-primitive values are not supported at the moment and will
- * result in {@link IllegalArgumentException}. It is OK though since based
- * on analysis of several ConnectionFactory implementation the all seem to
- * follow bean convention and all their properties using Java primitives as
- * arguments.
- */
- private void setProperty(String propertyName, Object propertyValue) {
- String methodName = this.toMethodName(propertyName);
- Method method = Utils.findMethod(methodName, this.connectionFactory.getClass());
- if (method != null) {
- try {
- Class<?> returnType = method.getParameterTypes()[0];
- if (String.class.isAssignableFrom(returnType)) {
- method.invoke(this.connectionFactory, propertyValue);
- } else if (int.class.isAssignableFrom(returnType)) {
- method.invoke(this.connectionFactory, Integer.parseInt((String) propertyValue));
- } else if (long.class.isAssignableFrom(returnType)) {
- method.invoke(this.connectionFactory, Long.parseLong((String) propertyValue));
- } else if (boolean.class.isAssignableFrom(returnType)) {
- method.invoke(this.connectionFactory, Boolean.parseBoolean((String) propertyValue));
- } else {
- method.invoke(this.connectionFactory, propertyValue);
- }
- } catch (Exception e) {
- throw new IllegalStateException("Failed to set property " + propertyName, e);
- }
- } else if (propertyName.equals("hostName")) {
- this.setProperty("host", propertyValue); // try 'host' as another common convention.
- }
- }
-
- /**
- * Creates an instance of the {@link ConnectionFactory} from the provided
- * 'CONNECTION_FACTORY_IMPL'.
- */
- private void createConnectionFactoryInstance(ConfigurationContext context) {
- String connectionFactoryImplName = context.getProperty(CONNECTION_FACTORY_IMPL).evaluateAttributeExpressions().getValue();
- this.connectionFactory = Utils.newDefaultInstance(connectionFactoryImplName);
- }
-
- /**
- * Will convert propertyName to a method name following bean convention. For
- * example, 'channel' property will correspond to 'setChannel method and
- * 'queueManager' property will correspond to setQueueManager method name
- */
- private String toMethodName(String propertyName) {
- char c[] = propertyName.toCharArray();
- c[0] = Character.toUpperCase(c[0]);
- return "set" + new String(c);
- }
-}
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderDefinition.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderDefinition.java b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderDefinition.java
index c3afd32..adb94fd 100644
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderDefinition.java
+++ b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderDefinition.java
@@ -16,119 +16,23 @@
*/
package org.apache.nifi.jms.cf;
-import java.io.File;
-
import javax.jms.ConnectionFactory;
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.components.ValidationContext;
-import org.apache.nifi.components.ValidationResult;
-import org.apache.nifi.components.Validator;
import org.apache.nifi.controller.ControllerService;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.ssl.SSLContextService;
/**
* Defines a strategy to create implementations to load and initialize third
* party implementations of the {@link ConnectionFactory}
*/
public interface JMSConnectionFactoryProviderDefinition extends ControllerService {
- static final String BROKER = "broker";
- static final String CF_IMPL = "cf";
- static final String CF_LIB = "cflib";
-
- public static final PropertyDescriptor CONNECTION_FACTORY_IMPL = new PropertyDescriptor.Builder()
- .name(CF_IMPL)
- .displayName("MQ ConnectionFactory Implementation")
- .description("A fully qualified name of the JMS ConnectionFactory implementation "
- + "class (i.e., org.apache.activemq.ActiveMQConnectionFactory)")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .required(true)
- .expressionLanguageSupported(true)
- .build();
- public static final PropertyDescriptor CLIENT_LIB_DIR_PATH = new PropertyDescriptor.Builder()
- .name(CF_LIB)
- .displayName("MQ Client Libraries path (i.e., /usr/jms/lib)")
- .description("Path to the directory with additional resources (i.e., JARs, configuration files etc.) to be added "
- + "to the classpath. Such resources typically represent target MQ client libraries for the "
- + "ConnectionFactory implementation.")
- .addValidator(new ClientLibValidator())
- .required(true)
- .expressionLanguageSupported(true)
- .build();
-
- // ConnectionFactory specific properties
- public static final PropertyDescriptor BROKER_URI = new PropertyDescriptor.Builder()
- .name(BROKER)
- .displayName("Broker URI")
- .description("URI pointing to the network location of the JMS Message broker. For example, "
- + "'tcp://myhost:61616' for ActiveMQ or 'myhost:1414' for IBM MQ")
- .addValidator(new NonEmptyBrokerURIValidator())
- .required(true)
- .expressionLanguageSupported(true)
- .build();
-
- public static final PropertyDescriptor SSL_CONTEXT_SERVICE = new PropertyDescriptor.Builder()
- .name("SSL Context Service")
- .description("The SSL Context Service used to provide client certificate information for TLS/SSL connections.")
- .required(false)
- .identifiesControllerService(SSLContextService.class)
- .build();
/**
* Returns an instance of the {@link ConnectionFactory} specific to the
* target messaging system (i.e.,
- * org.apache.activemq.ActiveMQConnectionFactory). It is created based on
- * the value of the supplied 'CONNECTION_FACTORY_IMPL' property and JMS
- * client libraries supplied via 'CLIENT_LIB_DIR_PATH' property.
+ * org.apache.activemq.ActiveMQConnectionFactory).
*
* @return instance of {@link ConnectionFactory}
*/
ConnectionFactory getConnectionFactory();
- /**
- * {@link Validator} that ensures that brokerURI's length > 0 after EL evaluation
- */
- static class NonEmptyBrokerURIValidator implements Validator {
-
- @Override
- public ValidationResult validate(String subject, String input, ValidationContext context) {
- String value = input;
- if (context.isExpressionLanguageSupported(subject) && context.isExpressionLanguagePresent(input)) {
- value = context.getProperty(BROKER_URI).evaluateAttributeExpressions().getValue();
- }
- return StandardValidators.NON_EMPTY_VALIDATOR.validate(subject, value, context);
- }
- }
-
- /**
- *
- */
- static class ClientLibValidator implements Validator {
- @Override
- public ValidationResult validate(String subject, String input, ValidationContext context) {
- String libDirPath = context.getProperty(CLIENT_LIB_DIR_PATH).evaluateAttributeExpressions().getValue();
- StringBuilder invalidationMessageBuilder = new StringBuilder();
- if (libDirPath != null) {
- File file = new File(libDirPath);
- if (!file.isDirectory()) {
- invalidationMessageBuilder.append("'MQ Client Libraries path' must point to a directory. Was '"
- + file.getAbsolutePath() + "'.");
- }
- } else {
- invalidationMessageBuilder.append("'MQ Client Libraries path' must be provided. \n");
- }
- String invalidationMessage = invalidationMessageBuilder.toString();
- ValidationResult vResult;
- if (invalidationMessage.length() == 0) {
- vResult = new ValidationResult.Builder().subject(subject).input(input)
- .explanation("Client lib path is valid and points to a directory").valid(true).build();
- } else {
- vResult = new ValidationResult.Builder().subject(subject).input(input)
- .explanation("Client lib path is invalid. " + invalidationMessage)
- .valid(false).build();
- }
- return vResult;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/Utils.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/Utils.java b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/Utils.java
deleted file mode 100644
index cd191c3..0000000
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/java/org/apache/nifi/jms/cf/Utils.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.nifi.jms.cf;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- */
-public final class Utils {
-
- private static final Logger logger = LoggerFactory.getLogger(Utils.class);
-
- /**
- * Creates new instance of the class specified by 'className' by first
- * loading it using thread context class loader and then executing default
- * constructor.
- */
- @SuppressWarnings("unchecked")
- static <T> T newDefaultInstance(String className) {
- try {
- Class<T> clazz = (Class<T>) Class.forName(className, false, Thread.currentThread().getContextClassLoader());
- return clazz.newInstance();
- } catch (Exception e) {
- throw new IllegalStateException("Failed to load and/or instantiate class '" + className + "'", e);
- }
- }
-
- /**
- * Finds a method by name on the target class. If more then one method
- * present it will return the first one encountered.
- *
- * @param name method name
- * @param targetClass instance of target class
- * @return instance of {@link Method}
- */
- public static Method findMethod(String name, Class<?> targetClass) {
- Class<?> searchType = targetClass;
- while (searchType != null) {
- Method[] methods = (searchType.isInterface() ? searchType.getMethods() : searchType.getDeclaredMethods());
- for (Method method : methods) {
- if (name.equals(method.getName())) {
- return method;
- }
- }
- searchType = searchType.getSuperclass();
- }
- return null;
- }
-
- /**
- * Adds content of the directory specified with 'path' to the classpath. It
- * does so by creating a new instance of the {@link URLClassLoader} using
- * {@link URL}s created from listing the contents of the directory denoted
- * by 'path' and setting it as thread context class loader.
- */
- static void addResourcesToClasspath(String path) {
- if (logger.isDebugEnabled()) {
- logger.debug("Adding additional resources from '" + path + "' to the classpath.");
- }
- if (path == null) {
- throw new IllegalArgumentException("'path' must not be null");
- }
- File libraryDir = new File(path);
- if (libraryDir.exists() && libraryDir.isDirectory()) {
- String[] cpResourceNames = libraryDir.list();
- URL[] urls = new URL[cpResourceNames.length];
- try {
- for (int i = 0; i < urls.length; i++) {
- urls[i] = new File(libraryDir, cpResourceNames[i]).toURI().toURL();
- if (logger.isDebugEnabled()) {
- logger.debug("Identifying additional resource to the classpath: " + urls[i]);
- }
- }
- } catch (Exception e) {
- throw new IllegalStateException(
- "Failed to parse user libraries from '" + libraryDir.getAbsolutePath() + "'", e);
- }
-
- URLClassLoader cl = new URLClassLoader(urls, Utils.class.getClassLoader());
- Thread.currentThread().setContextClassLoader(cl);
- } else {
- throw new IllegalArgumentException("Path '" + libraryDir.getAbsolutePath()
- + "' is not valid because it doesn't exist or does not point to a directory.");
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
deleted file mode 100644
index f191675..0000000
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
+++ /dev/null
@@ -1,15 +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.
-org.apache.nifi.jms.cf.JMSConnectionFactoryProvider
http://git-wip-us.apache.org/repos/asf/nifi/blob/6ee6b5e5/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/docs/org.apache.nifi.jms.cf.JMSConnectionFactoryProvider/additionalDetails.html
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/docs/org.apache.nifi.jms.cf.JMSConnectionFactoryProvider/additionalDetails.html b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/docs/org.apache.nifi.jms.cf.JMSConnectionFactoryProvider/additionalDetails.html
deleted file mode 100644
index d1e1325..0000000
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/main/resources/docs/org.apache.nifi.jms.cf.JMSConnectionFactoryProvider/additionalDetails.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <!--
- 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.
- -->
- <head>
- <meta charset="utf-8" />
- <title>JMSConnectionFactoryProvider</title>
- <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
- </head>
-
- <body>
- <h2>Description:</h2>
- <p>
- This ControllerService serves as a general factory service to serving vendor specific
- instances of the <i>javax.jms.ConnectionFactory</i>. It does so by allowing user to
- configure vendor specific properties as well as point to the location of the vendor
- provided JMS client libraries so the correct implementation of the <i>javax.jms.ConnectionFactory</i>
- can be found, loaded, instantiated and served to the dependent Processors (see PublishJMS, ConsumeJMS).
- </p>
- <p>
- To accommodate variety of JMS vendors and their implementation of the <i>ConnectionFactory</i>
- this ControllerService exposes only 3 static configuration properties that are common across many implementations
- of the <i>ConnectionFactory</i>. The rest of the configuration properties are set following
- <a href="http://docstore.mik.ua/orelly/java-ent/jnut/ch06_02.htm">Java Beans</a> convention (see below).
- </p>
- <p>
- The 3 static configuration properties are:
- <ul>
- <li><b>MQ ConnectionFactory Implementation</b> - A fully qualified name of the JMS ConnectionFactory implementation
- class (i.e., org.apache.activemq.ActiveMQConnectionFactory)</li>
- <li><b>MQ Client Libraries path</b> - Path to the directory with additional resources (i.e., JARs, configuration files etc.) to be added
- to the classpath. Such resources typically represent target MQ client libraries for the ConnectionFactory
- implementation. It is optional if you are using Apache ActiveMQ since its libraries are distributed with this component.</li>
- <li><b>Broker URI</b> - URI pointing to the network location of the JMS Message broker. For example, 'tcp://myhost:61616' for ActiveMQ or simply 'myhost:1414'.</li>
- </ul>
- The rest of the properties are set as Dynamic Properties following <a href="http://docstore.mik.ua/orelly/java-ent/jnut/ch06_02.htm">Java Beans</a>
- convention where a property name is derived from the <i>set*</i> method of the vendor specific ConnectionFactory's implementation.
- For example, <i>com.ibm.mq.jms.MQConnectionFactory.setChannel(String)</i> would imply 'channel' property and
- <i>com.ibm.mq.jms.MQConnectionFactory.setTransportType(int)</i> would imply 'transportType' property.
- For the list of available properties please consult vendor provided documentation. Here is an example for
- <a href="https://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.javadoc.doc/WMQJMSClasses/com/ibm/mq/jms/MQQueueConnectionFactory.html">IBM's com.ibm.mq.jms.MQConnectionFactory</a>
- </p>
- </body>
-</html>