This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/main by this push:
new 2e784d0 [AMQ-8341] Remove FTP Blob strategy
new de563e7 Merge pull request #738 from mattrpav/AMQ-8341
2e784d0 is described below
commit 2e784d07be5909a0e83c652657c13f734c2b4286
Author: Matt Pavlovich <[email protected]>
AuthorDate: Mon Dec 20 11:49:56 2021 -0600
[AMQ-8341] Remove FTP Blob strategy
- Remove commons-net dependency
---
activemq-client/pom.xml | 7 --
.../apache/activemq/blob/BlobTransferPolicy.java | 12 +-
.../activemq/blob/FTPBlobDownloadStrategy.java | 93 ---------------
.../activemq/blob/FTPBlobUploadStrategy.java | 76 -------------
.../java/org/apache/activemq/blob/FTPStrategy.java | 70 ------------
.../apache/activemq/blob/DownloadStrategyTest.java | 49 +-------
activemq-kahadb-store/pom.xml | 4 -
.../src/main/resources/features-core.xml | 1 -
activemq-mqtt/pom.xml | 4 -
activemq-unit-tests/pom.xml | 10 --
.../activemq/blob/FTPBlobDownloadStrategyTest.java | 114 -------------------
.../java/org/apache/activemq/blob/FTPBlobTest.java | 75 ------------
.../activemq/blob/FTPBlobUploadStrategyTest.java | 75 ------------
.../org/apache/activemq/blob/FTPTestSupport.java | 126 ---------------------
assembly/src/main/descriptors/common-bin.xml | 1 -
pom.xml | 8 --
16 files changed, 5 insertions(+), 720 deletions(-)
diff --git a/activemq-client/pom.xml b/activemq-client/pom.xml
index 6b6932d..ae9f394 100644
--- a/activemq-client/pom.xml
+++ b/activemq-client/pom.xml
@@ -58,13 +58,6 @@
<artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
</dependency>
- <!-- for ftp blob upload/download -->
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <optional>true</optional>
- </dependency>
-
<!-- for zerconf discovery -->
<dependency>
<groupId>javax.jmdns</groupId>
diff --git
a/activemq-client/src/main/java/org/apache/activemq/blob/BlobTransferPolicy.java
b/activemq-client/src/main/java/org/apache/activemq/blob/BlobTransferPolicy.java
index de6ca68..0e6cad6 100644
---
a/activemq-client/src/main/java/org/apache/activemq/blob/BlobTransferPolicy.java
+++
b/activemq-client/src/main/java/org/apache/activemq/blob/BlobTransferPolicy.java
@@ -124,7 +124,7 @@ public class BlobTransferPolicy {
/**
* Returns the upload strategy depending on the information from the
- * uploadURL. Currently supportet HTTP and FTP
+ * uploadURL. Currently supportet HTTP
*
* @return
*/
@@ -133,9 +133,7 @@ public class BlobTransferPolicy {
try {
URL url = new URL(getUploadUrl());
- if(url.getProtocol().equalsIgnoreCase("FTP")) {
- strategy = new FTPBlobUploadStrategy(this);
- } else if (url.getProtocol().equalsIgnoreCase("FILE")) {
+ if (url.getProtocol().equalsIgnoreCase("FILE")) {
strategy = new FileSystemBlobStrategy(this);
} else {
strategy = new DefaultBlobUploadStrategy(this);
@@ -150,7 +148,7 @@ public class BlobTransferPolicy {
/**
* Returns the download strategy depending on the information from the
- * uploadURL. Currently supportet HTTP and FTP
+ * uploadURL. Currently supportet HTTP
*
* @return
*/
@@ -159,9 +157,7 @@ public class BlobTransferPolicy {
try {
URL url = new URL(getUploadUrl());
- if(url.getProtocol().equalsIgnoreCase("FTP")) {
- strategy = new FTPBlobDownloadStrategy(this);
- } else if (url.getProtocol().equalsIgnoreCase("FILE")) {
+ if (url.getProtocol().equalsIgnoreCase("FILE")) {
strategy = new FileSystemBlobStrategy(this);
} else {
strategy = new DefaultBlobDownloadStrategy(this);
diff --git
a/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobDownloadStrategy.java
b/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobDownloadStrategy.java
deleted file mode 100644
index 8491fcc..0000000
---
a/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobDownloadStrategy.java
+++ /dev/null
@@ -1,93 +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.activemq.blob;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.jms.JMSException;
-
-import org.apache.activemq.command.ActiveMQBlobMessage;
-import org.apache.commons.net.ftp.FTPClient;
-
-/**
- * A FTP implementation for {@link BlobDownloadStrategy}.
- */
-public class FTPBlobDownloadStrategy extends FTPStrategy implements
BlobDownloadStrategy {
-
- public FTPBlobDownloadStrategy(BlobTransferPolicy transferPolicy) throws
MalformedURLException {
- super(transferPolicy);
- }
-
- public InputStream getInputStream(ActiveMQBlobMessage message) throws
IOException, JMSException {
- // Do some checks on the received URL against the transfer policy
- URL uploadURL = new URL(super.transferPolicy.getUploadUrl());
- String protocol = message.getURL().getProtocol();
- if (!protocol.equals(uploadURL.getProtocol())) {
- throw new IOException("The message URL protocol is incorrect");
- }
-
- String host = message.getURL().getHost();
- if (!host.equals(uploadURL.getHost())) {
- throw new IOException("The message URL host is incorrect");
- }
-
- int port = message.getURL().getPort();
- if (uploadURL.getPort() != 0 && port != uploadURL.getPort()) {
- throw new IOException("The message URL port is incorrect");
- }
-
- url = message.getURL();
- final FTPClient ftp = createFTP();
- String path = url.getPath();
- String workingDir = path.substring(0, path.lastIndexOf("/"));
- String file = path.substring(path.lastIndexOf("/") + 1);
- ftp.changeWorkingDirectory(workingDir);
- ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
-
- InputStream input = new
FilterInputStream(ftp.retrieveFileStream(file)) {
-
- public void close() throws IOException {
- in.close();
- ftp.quit();
- ftp.disconnect();
- }
- };
-
- return input;
- }
-
- public void deleteFile(ActiveMQBlobMessage message) throws IOException,
JMSException {
- url = message.getURL();
- final FTPClient ftp = createFTP();
-
- String path = url.getPath();
- try {
- if (!ftp.deleteFile(path)) {
- throw new JMSException("Delete file failed: " +
ftp.getReplyString());
- }
- } finally {
- ftp.quit();
- ftp.disconnect();
- }
-
- }
-
-}
diff --git
a/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobUploadStrategy.java
b/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobUploadStrategy.java
deleted file mode 100644
index 4a00746..0000000
---
a/activemq-client/src/main/java/org/apache/activemq/blob/FTPBlobUploadStrategy.java
+++ /dev/null
@@ -1,76 +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.activemq.blob;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.jms.JMSException;
-
-import org.apache.activemq.command.ActiveMQBlobMessage;
-import org.apache.commons.net.ftp.FTPClient;
-
-/**
- * A FTP implementation of {@link BlobUploadStrategy}.
- */
-public class FTPBlobUploadStrategy extends FTPStrategy implements
BlobUploadStrategy {
-
- public FTPBlobUploadStrategy(BlobTransferPolicy transferPolicy) throws
MalformedURLException {
- super(transferPolicy);
- }
-
- @Override
- public URL uploadFile(ActiveMQBlobMessage message, File file) throws
JMSException, IOException {
- try(FileInputStream fis = new FileInputStream(file)) {
- return uploadStream(message, fis);
- }
- }
-
- @Override
- public URL uploadStream(ActiveMQBlobMessage message, InputStream in)
- throws JMSException, IOException {
-
- FTPClient ftp = createFTP();
- try {
- String path = url.getPath();
- String workingDir = path.substring(0, path.lastIndexOf("/"));
- String filename =
message.getMessageId().toString().replaceAll(":", "_");
- ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
-
- String url;
- if(!ftp.changeWorkingDirectory(workingDir)) {
- url = this.url.toString().replaceFirst(this.url.getPath(),
"")+"/";
- } else {
- url = this.url.toString();
- }
-
- if (!ftp.storeFile(filename, in)) {
- throw new JMSException("FTP store failed: " +
ftp.getReplyString());
- }
- return new URL(url + filename);
- } finally {
- ftp.quit();
- ftp.disconnect();
- }
-
- }
-
-}
diff --git
a/activemq-client/src/main/java/org/apache/activemq/blob/FTPStrategy.java
b/activemq-client/src/main/java/org/apache/activemq/blob/FTPStrategy.java
deleted file mode 100644
index 7ba6422..0000000
--- a/activemq-client/src/main/java/org/apache/activemq/blob/FTPStrategy.java
+++ /dev/null
@@ -1,70 +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.activemq.blob;
-
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.jms.JMSException;
-
-import org.apache.commons.net.ftp.FTPClient;
-
-public class FTPStrategy {
-
- protected BlobTransferPolicy transferPolicy;
- protected URL url;
- protected String ftpUser = "";
- protected String ftpPass = "";
-
- public FTPStrategy(BlobTransferPolicy transferPolicy) throws
MalformedURLException {
- this.transferPolicy = transferPolicy;
- this.url = new URL(this.transferPolicy.getUploadUrl());
- }
-
- protected void setUserInformation(String userInfo) {
- if(userInfo != null) {
- String[] userPass = userInfo.split(":");
- if(userPass.length > 0) this.ftpUser = userPass[0];
- if(userPass.length > 1) this.ftpPass = userPass[1];
- } else {
- this.ftpUser = "anonymous";
- this.ftpPass = "anonymous";
- }
- }
-
- protected FTPClient createFTP() throws IOException, JMSException {
- String connectUrl = url.getHost();
- setUserInformation(url.getUserInfo());
- int port = url.getPort() < 1 ? 21 : url.getPort();
-
- FTPClient ftp = new FTPClient();
- try {
- ftp.connect(connectUrl, port);
- } catch(ConnectException e) {
- throw new JMSException("Problem connecting the FTP-server");
- }
- if(!ftp.login(ftpUser, ftpPass)) {
- ftp.quit();
- ftp.disconnect();
- throw new JMSException("Cant Authentificate to FTP-Server");
- }
- return ftp;
- }
-
-}
diff --git
a/activemq-client/src/test/java/org/apache/activemq/blob/DownloadStrategyTest.java
b/activemq-client/src/test/java/org/apache/activemq/blob/DownloadStrategyTest.java
index fe2d1b0..ed90b54 100644
---
a/activemq-client/src/test/java/org/apache/activemq/blob/DownloadStrategyTest.java
+++
b/activemq-client/src/test/java/org/apache/activemq/blob/DownloadStrategyTest.java
@@ -69,51 +69,4 @@ public class DownloadStrategyTest {
}
}
- @Test
- public void testFTPBlobDownloadStrategy() throws Exception {
- BlobTransferPolicy transferPolicy = new BlobTransferPolicy();
- transferPolicy.setUploadUrl("ftp://localhost:22");
- BlobDownloadStrategy downloadStrategy = new
FTPBlobDownloadStrategy(transferPolicy);
-
- ActiveMQBlobMessage message = new ActiveMQBlobMessage();
-
- // Test protocol
- message.setURL(new URL("https://www.apache.org"));
- try {
- downloadStrategy.getInputStream(message);
- fail("Failure expected on an incorrect blob message URL");
- } catch (IOException ex) {
- // expected
- assertEquals("The message URL protocol is incorrect",
ex.getMessage());
- }
-
- // Test host
- message.setURL(new URL("ftp://some-ip:22/somedoc"));
- try {
- downloadStrategy.getInputStream(message);
- fail("Failure expected on an incorrect blob message URL");
- } catch (IOException ex) {
- // expected
- assertEquals("The message URL host is incorrect", ex.getMessage());
- }
-
- // Test port
- message.setURL(new URL("ftp://localhost:12345/somedoc"));
- try {
- downloadStrategy.getInputStream(message);
- fail("Failure expected on an incorrect blob message URL");
- } catch (IOException ex) {
- // expected
- assertEquals("The message URL port is incorrect", ex.getMessage());
- }
-
- // This is OK (but won't connect)
- message.setURL(new URL("ftp://localhost:22/somedoc"));
- try {
- downloadStrategy.getInputStream(message);
- fail("Failure expected on connection");
- } catch (IOException | JMSException ex) {
- // expected
- }
- }
-}
\ No newline at end of file
+}
diff --git a/activemq-kahadb-store/pom.xml b/activemq-kahadb-store/pom.xml
index eefc566..4cef43d 100644
--- a/activemq-kahadb-store/pom.xml
+++ b/activemq-kahadb-store/pom.xml
@@ -111,10 +111,6 @@
<artifactId>xalan</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- </dependency>
<!-- =============================== -->
<!-- Testing Dependencies -->
diff --git a/activemq-karaf/src/main/resources/features-core.xml
b/activemq-karaf/src/main/resources/features-core.xml
index 28bd9b0..e7f1c0f 100644
--- a/activemq-karaf/src/main/resources/features-core.xml
+++ b/activemq-karaf/src/main/resources/features-core.xml
@@ -31,7 +31,6 @@
<bundle
dependency="true">mvn:org.jvnet.jaxb2_commons/jaxb2-basics-runtime/${jaxb-basics-version}</bundle>
<bundle
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${jaxb-bundle-version}</bundle>
<bundle>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle>
- <bundle>mvn:commons-net/commons-net/${commons-net-version}</bundle>
<!-- uber osgi bundle means client is not that lean, todo: introduce
client osgi bundle -->
<bundle>mvn:org.apache.activemq/activemq-osgi/${project.version}</bundle>
</feature>
diff --git a/activemq-mqtt/pom.xml b/activemq-mqtt/pom.xml
index 312aff3..d14cf55 100644
--- a/activemq-mqtt/pom.xml
+++ b/activemq-mqtt/pom.xml
@@ -121,10 +121,6 @@
<artifactId>xalan</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- </dependency>
<!-- =============================== -->
<!-- Testing Dependencies -->
diff --git a/activemq-unit-tests/pom.xml b/activemq-unit-tests/pom.xml
index 2db07af..ee2bbbc 100644
--- a/activemq-unit-tests/pom.xml
+++ b/activemq-unit-tests/pom.xml
@@ -147,10 +147,6 @@
<artifactId>xalan</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- </dependency>
<!-- =============================== -->
<!-- Testing Dependencies -->
@@ -295,12 +291,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.ftpserver</groupId>
- <artifactId>ftpserver-core</artifactId>
- <version>${ftpserver-version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<scope>test</scope>
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobDownloadStrategyTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobDownloadStrategyTest.java
deleted file mode 100644
index 3b1d703..0000000
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobDownloadStrategyTest.java
+++ /dev/null
@@ -1,114 +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.activemq.blob;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import javax.jms.JMSException;
-
-import org.apache.activemq.command.ActiveMQBlobMessage;
-
-public class FTPBlobDownloadStrategyTest extends FTPTestSupport {
-
- final int FILE_SIZE = Short.MAX_VALUE * 10;
-
- public void testDownload() throws Exception {
- setConnection();
-
- // create file
- File uploadFile = new File(ftpHomeDirFile, "test.txt");
- FileWriter wrt = new FileWriter(uploadFile);
-
- wrt.write("hello world");
-
- for(int ix = 0; ix < FILE_SIZE; ++ix ) {
- wrt.write("a");
- }
-
- wrt.close();
-
- ActiveMQBlobMessage message = new ActiveMQBlobMessage();
- BlobTransferPolicy transferPolicy = new BlobTransferPolicy();
- transferPolicy.setUploadUrl(ftpUrl);
- BlobDownloadStrategy strategy = new
FTPBlobDownloadStrategy(transferPolicy);
- InputStream stream;
- try {
- message.setURL(new URL(ftpUrl + "test.txt"));
- stream = strategy.getInputStream(message);
- int i = stream.read();
- StringBuilder sb = new StringBuilder(2048);
- while(i != -1) {
- sb.append((char)i);
- i = stream.read();
- }
- assertEquals("hello world", sb.toString().substring(0, "hello
world".length()));
- assertEquals(FILE_SIZE, sb.toString().substring("hello
world".length()).length());
-
- assertTrue(uploadFile.exists());
- strategy.deleteFile(message);
- assertFalse(uploadFile.exists());
-
- } catch (Exception e) {
- e.printStackTrace();
- assertTrue(false);
- }
- }
-
- public void testWrongAuthentification() throws Exception {
- setConnection();
-
- ActiveMQBlobMessage message = new ActiveMQBlobMessage();
- BlobTransferPolicy transferPolicy = new BlobTransferPolicy();
- transferPolicy.setUploadUrl(ftpUrl);
- BlobDownloadStrategy strategy = new
FTPBlobDownloadStrategy(transferPolicy);
- try {
- message.setURL(new URL("ftp://" + userNamePass + "_wrong:" +
userNamePass + "@localhost:" + ftpPort + "/ftptest/"));
- strategy.getInputStream(message);
- } catch(JMSException e) {
- assertEquals("Wrong Exception", "Cant Authentificate to
FTP-Server", e.getMessage());
- return;
- } catch(Exception e) {
- System.out.println(e);
- assertTrue("Wrong Exception "+ e, false);
- return;
- }
-
- assertTrue("Expect Exception", false);
- }
-
- public void testWrongFTPPort() throws Exception {
- setConnection();
-
- ActiveMQBlobMessage message = new ActiveMQBlobMessage();
- BlobTransferPolicy transferPolicy = new BlobTransferPolicy();
- transferPolicy.setUploadUrl(ftpUrl);
- BlobDownloadStrategy strategy = new
FTPBlobDownloadStrategy(transferPolicy);
- try {
- message.setURL(new URL("ftp://" + userNamePass + ":" +
userNamePass + "@localhost:" + 422 + "/ftptest/"));
- strategy.getInputStream(message);
- } catch (IOException e) {
- assertEquals("Wrong Exception", "The message URL port is
incorrect", e.getMessage());
- return;
- }
-
- assertTrue("Expect Exception", false);
- }
-}
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobTest.java
deleted file mode 100644
index 4aecc09..0000000
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobTest.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.activemq.blob;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-
-import org.apache.activemq.ActiveMQSession;
-import org.apache.activemq.BlobMessage;
-import org.apache.activemq.command.ActiveMQBlobMessage;
-
-public class FTPBlobTest extends FTPTestSupport {
-
- public void testBlobFile() throws Exception {
- setConnection();
- // first create Message
- File file = File.createTempFile("amq-data-file-", ".dat");
- // lets write some data
- String content = "hello world " + System.currentTimeMillis();
- BufferedWriter writer = new BufferedWriter(new FileWriter(file));
- writer.append(content);
- writer.close();
-
- ActiveMQSession session = (ActiveMQSession) connection.createSession(
- false, Session.AUTO_ACKNOWLEDGE);
- MessageProducer producer = session.createProducer(destination);
- MessageConsumer consumer = session.createConsumer(destination);
- BlobMessage message = session.createBlobMessage(file);
- message.setName("fileName");
-
- producer.send(message);
- Thread.sleep(1000);
-
- // check message send
- Message msg = consumer.receive(1000);
- assertTrue(msg instanceof ActiveMQBlobMessage);
-
- assertEquals("name is correct", "fileName",
((ActiveMQBlobMessage)msg).getName());
- InputStream input = ((ActiveMQBlobMessage) msg).getInputStream();
- StringBuilder b = new StringBuilder();
- int i = input.read();
- while (i != -1) {
- b.append((char) i);
- i = input.read();
- }
- input.close();
- File uploaded = new File(ftpHomeDirFile,
msg.getJMSMessageID().toString().replace(":", "_"));
- assertEquals(content, b.toString());
- assertTrue(uploaded.exists());
- ((ActiveMQBlobMessage)msg).deleteFile();
- assertFalse(uploaded.exists());
- }
-
-}
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobUploadStrategyTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobUploadStrategyTest.java
deleted file mode 100644
index cac9a0a..0000000
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPBlobUploadStrategyTest.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.activemq.blob;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-
-import javax.jms.JMSException;
-import javax.jms.Session;
-
-import org.apache.activemq.ActiveMQConnection;
-import org.apache.activemq.ActiveMQSession;
-import org.apache.activemq.command.ActiveMQBlobMessage;
-
-
-public class FTPBlobUploadStrategyTest extends FTPTestSupport {
-
- public void testFileUpload() throws Exception {
- setConnection();
- File file = File.createTempFile("amq-data-file-", ".dat");
- // lets write some data
- BufferedWriter writer = new BufferedWriter(new FileWriter(file));
- writer.append("hello world");
- writer.close();
-
- Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
- ((ActiveMQConnection)connection).setCopyMessageOnSend(false);
-
- ActiveMQBlobMessage message = (ActiveMQBlobMessage)
((ActiveMQSession)session).createBlobMessage(file);
- message.setJMSMessageID("testmessage");
- message.onSend();
- assertEquals(ftpUrl + "ID_testmessage", message.getURL().toString());
- File uploaded = new File(ftpHomeDirFile, "ID_testmessage");
- assertTrue("File doesn't exists", uploaded.exists());
- }
-
- public void testWriteDenied() throws Exception {
- userNamePass = "guest";
- setConnection();
- File file = File.createTempFile("amq-data-file-", ".dat");
- // lets write some data
- BufferedWriter writer = new BufferedWriter(new FileWriter(file));
- writer.append("hello world");
- writer.close();
-
- Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
- ((ActiveMQConnection)connection).setCopyMessageOnSend(false);
-
- ActiveMQBlobMessage message = (ActiveMQBlobMessage)
((ActiveMQSession)session).createBlobMessage(file);
- message.setJMSMessageID("testmessage");
- try {
- message.onSend();
- } catch (JMSException e) {
- e.printStackTrace();
- return;
- }
- fail("Should have failed with permission denied exception!");
- }
-
-}
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPTestSupport.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPTestSupport.java
deleted file mode 100644
index 9a22ce6..0000000
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/blob/FTPTestSupport.java
+++ /dev/null
@@ -1,126 +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.activemq.blob;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jms.Connection;
-
-import org.apache.activemq.EmbeddedBrokerTestSupport;
-import org.apache.activemq.util.IOHelper;
-import org.apache.ftpserver.FtpServer;
-import org.apache.ftpserver.FtpServerFactory;
-import org.apache.ftpserver.ftplet.Authority;
-import org.apache.ftpserver.ftplet.UserManager;
-import org.apache.ftpserver.listener.ListenerFactory;
-import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
-import org.apache.ftpserver.usermanager.impl.BaseUser;
-import org.apache.ftpserver.usermanager.impl.WritePermission;
-import org.jmock.Mockery;
-
-public abstract class FTPTestSupport extends EmbeddedBrokerTestSupport {
-
- protected static final String ftpServerListenerName = "default";
- protected Connection connection;
- protected FtpServer server;
- String userNamePass = "activemq";
-
- Mockery context = null;
- String ftpUrl;
- int ftpPort;
-
- final File ftpHomeDirFile = new File("target/FTPBlobTest/ftptest");
-
- @Override
- protected void setUp() throws Exception {
-
- if (ftpHomeDirFile.getParentFile().exists()) {
- IOHelper.deleteFile(ftpHomeDirFile.getParentFile());
- }
- ftpHomeDirFile.mkdirs();
- ftpHomeDirFile.getParentFile().deleteOnExit();
-
- FtpServerFactory serverFactory = new FtpServerFactory();
- ListenerFactory factory = new ListenerFactory();
-
- PropertiesUserManagerFactory userManagerFactory = new
PropertiesUserManagerFactory();
- UserManager userManager = userManagerFactory.createUserManager();
-
- BaseUser user = new BaseUser();
- user.setName("activemq");
- user.setPassword("activemq");
- user.setHomeDirectory(ftpHomeDirFile.getParent());
-
- // authorize user
- List<Authority> auths = new ArrayList<Authority>();
- Authority auth = new WritePermission();
- auths.add(auth);
- user.setAuthorities(auths);
-
- userManager.save(user);
-
- BaseUser guest = new BaseUser();
- guest.setName("guest");
- guest.setPassword("guest");
- guest.setHomeDirectory(ftpHomeDirFile.getParent());
-
- userManager.save(guest);
-
- serverFactory.setUserManager(userManager);
- factory.setPort(0);
- serverFactory.addListener(ftpServerListenerName, factory
- .createListener());
- server = serverFactory.createServer();
- server.start();
- ftpPort = serverFactory.getListener(ftpServerListenerName)
- .getPort();
- super.setUp();
- }
-
- public void setConnection() throws Exception {
- ftpUrl = "ftp://"
- + userNamePass
- + ":"
- + userNamePass
- + "@localhost:"
- + ftpPort
- + "/ftptest/";
- bindAddress =
"vm://localhost?jms.blobTransferPolicy.defaultUploadUrl=" + ftpUrl;
-
- connectionFactory = createConnectionFactory();
-
- connection = createConnection();
- connection.start();
- }
-
- @Override
- protected void tearDown() throws Exception {
- if (connection != null) {
- connection.close();
- }
- super.tearDown();
- if (server != null) {
- server.stop();
- }
- IOHelper.deleteFile(ftpHomeDirFile.getParentFile());
- }
-
-
-
-}
diff --git a/assembly/src/main/descriptors/common-bin.xml
b/assembly/src/main/descriptors/common-bin.xml
index ce02af9..03409c3 100644
--- a/assembly/src/main/descriptors/common-bin.xml
+++ b/assembly/src/main/descriptors/common-bin.xml
@@ -192,7 +192,6 @@
<include>org.apache.commons:commons-dbcp2</include>
<include>org.apache.commons:commons-pool2</include>
<include>commons-codec:commons-codec</include>
- <include>commons-net:commons-net</include>
<include>org.apache.commons:commons-lang3</include>
<include>org.slf4j:slf4j-log4j12</include>
<include>log4j:log4j</include>
diff --git a/pom.xml b/pom.xml
index 4021256..ee9c6ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,6 @@
<commons-logging-version>1.2</commons-logging-version>
<commons-pool2-version>2.11.1</commons-pool2-version>
<commons-primitives-version>1.0</commons-primitives-version>
- <commons-net-version>3.8.0</commons-net-version>
<directory-version>2.0.0.AM25</directory-version>
<ecj.version>3.17.0</ecj.version>
<ftpserver-version>1.1.1</ftpserver-version>
@@ -998,13 +997,6 @@
<version>3.1.4</version>
</dependency>
- <!-- FTP support for BlobMessages -->
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>${commons-net-version}</version>
- </dependency>
-
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>