You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/09/24 12:38:21 UTC
[commons-vfs] 03/03: [VFS-851] Split out HDFS provider into its own Maven module commons-vfs2-hdfs
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
commit e6702c04cddf3189a1557e43861c03c49d32add3
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Sep 24 08:38:12 2023 -0400
[VFS-851] Split out HDFS provider into its own Maven module
commons-vfs2-hdfs
---
commons-vfs2-hdfs/pom.xml | 214 +++++++++++++++++++++
.../vfs2/provider/hdfs/HdfsFileAttributes.java | 0
.../provider/hdfs/HdfsFileContentInfoFactory.java | 0
.../commons/vfs2/provider/hdfs/HdfsFileObject.java | 0
.../vfs2/provider/hdfs/HdfsFileProvider.java | 0
.../commons/vfs2/provider/hdfs/HdfsFileSystem.java | 0
.../provider/hdfs/HdfsFileSystemConfigBuilder.java | 0
.../provider/hdfs/HdfsRandomAccessContent.java | 0
.../commons/vfs2/provider/hdfs/package-info.java | 0
.../vfs2/provider/hdfs/HdfsFileProviderTest.java | 1 +
.../provider/hdfs/HdfsFileProviderTestCase.java | 8 +-
commons-vfs2/pom.xml | 43 -----
.../org/apache/commons/vfs2/FileSystemOptions.java | 1 -
.../org/apache/commons/vfs2/impl/providers.xml | 1 +
pom.xml | 17 +-
src/changes/changes.xml | 3 +
16 files changed, 237 insertions(+), 51 deletions(-)
diff --git a/commons-vfs2-hdfs/pom.xml b/commons-vfs2-hdfs/pom.xml
new file mode 100644
index 00000000..94c36e35
--- /dev/null
+++ b/commons-vfs2-hdfs/pom.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-project</artifactId>
+ <version>2.10.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <name>Apache Commons VFS HDFS</name>
+ <artifactId>commons-vfs2-hdfs</artifactId>
+ <description>Apache Commons VFS is a Virtual File System library - Apache Hadoop HDFS provider.</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <!-- Test HDFS with Apache Hadoop -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <!-- VFS-606 - tools.jar not available in Java 9
+ This exclusion can be removed after upgrading Hadoop
+ to 2.7.1 or later
+ -->
+ <groupId>jdk.tools</groupId>
+ <artifactId>jdk.tools</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <properties>
+ <vfs.parent.dir>${basedir}/..</vfs.parent.dir>
+ <commons.packageId>vfs2-jackrabbit2</commons.packageId>
+ <commons.module.name>org.apache.commons.vfs2.hdfs</commons.module.name>
+ <commons.osgi.import>
+ </commons.osgi.import>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </resource>
+ </resources>
+ <!-- include NOTICE/LICENSE in generated test jar -->
+ <testResources>
+ <testResource>
+ <directory>${project.basedir}/src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- surfire do not honor suite(), see MSUREFIRE-131 why our tests wont work with maven 2 -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <test.basedir>target/test-classes/test-data</test.basedir>
+ <test.basedir.res>test-data</test.basedir.res>
+ <derby.stream.error.file>target/derby.log</derby.stream.error.file>
+ </systemPropertyVariables>
+ <excludes>
+ <!-- Need to port fully to JUnit 4 or 5. -->
+ <!-- *Tests.java files with @Test methods should not be run since these classes are in fact JUnit 3 classes used in custom JUnit 3 test suites. -->
+ <exclude>**/*Tests.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- Remove after 2.10.0 -->
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ <configuration>
+ <oldVersion>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>${commons.bc.version}</version>
+ <type>jar</type>
+ </dependency>
+ </oldVersion>
+ <parameter>
+ <includes>
+ <!-- Package moved to new module here -->
+ <include>org.apache.commons.vfs2.provider.hdfs</include>
+ </includes>
+ </parameter>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${collections4.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jcraft</groupId>
+ <artifactId>jsch</artifactId>
+ <version>${jsch.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>${ant.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>${httpclient3.version}</version>
+ </dependency>
+ </dependencies>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileAttributes.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileAttributes.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileAttributes.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileAttributes.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileContentInfoFactory.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileContentInfoFactory.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileContentInfoFactory.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileContentInfoFactory.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileObject.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileObject.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileObject.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileObject.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProvider.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProvider.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProvider.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProvider.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystem.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileSystemConfigBuilder.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsRandomAccessContent.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsRandomAccessContent.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsRandomAccessContent.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/HdfsRandomAccessContent.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/package-info.java b/commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/package-info.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs/package-info.java
rename to commons-vfs2-hdfs/src/main/java/org/apache/commons/vfs2/provider/hdfs/package-info.java
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java b/commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java
similarity index 99%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java
rename to commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java
index 2473a778..7edf5b21 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java
+++ b/commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTest.java
@@ -105,6 +105,7 @@ public class HdfsFileProviderTest {
@BeforeAll
public static void setUp() throws Exception {
+ System.setProperty("test.basedir", "../commons-vfs2/target/test-classes/test-data");
Logger.getRootLogger().setLevel(Level.ERROR);
// Put the MiniDFSCluster directory in the target directory
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java b/commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java
similarity index 90%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java
rename to commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java
index d1d9b953..3468d234 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java
+++ b/commons-vfs2-hdfs/src/test/java/org/apache/commons/vfs2/provider/hdfs/HdfsFileProviderTestCase.java
@@ -20,8 +20,10 @@ import static org.apache.commons.vfs2.VfsTestUtils.getTestDirectoryFile;
import java.io.File;
import java.io.IOException;
+import java.util.Objects;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.commons.vfs2.AbstractProviderTestConfig;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemManager;
@@ -60,7 +62,10 @@ public class HdfsFileProviderTestCase extends AbstractProviderTestConfig {
@SuppressWarnings("deprecation")
private void copyTestResources(final File directory, final Path parent) throws Exception {
- for (final File file : directory.listFiles()) {
+ final File[] listFiles = Objects.requireNonNull(Objects.requireNonNull(directory, "directory").listFiles(),
+ () -> directory.toString() + " no data, directory exists: " + directory.exists() + ", current: " + PathUtils.current().toAbsolutePath().normalize());
+ Assertions.assertNotNull(directory, directory::toString);
+ for (final File file : listFiles) {
if (file.isFile()) {
final Path src = new Path(file.getAbsolutePath());
final Path dst = new Path(parent, file.getName());
@@ -80,6 +85,7 @@ public class HdfsFileProviderTestCase extends AbstractProviderTestConfig {
@SuppressWarnings("deprecation")
@Override
protected void setUp() throws Exception {
+ System.setProperty("test.basedir", "../commons-vfs2/target/test-classes/test-data");
Logger.getRootLogger().setLevel(Level.OFF);
// Put the MiniDFSCluster directory in the target directory
diff --git a/commons-vfs2/pom.xml b/commons-vfs2/pom.xml
index 3bd63959..604138b4 100644
--- a/commons-vfs2/pom.xml
+++ b/commons-vfs2/pom.xml
@@ -58,21 +58,6 @@
<artifactId>commons-collections4</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs-client</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <optional>true</optional>
- </dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
@@ -160,34 +145,6 @@
<artifactId>httpcore-nio</artifactId>
<scope>test</scope>
</dependency>
- <!-- Test HDFS with Apache Hadoop -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <!-- VFS-606 - tools.jar not available in Java 9
- This exclusion can be removed after upgrading Hadoop
- to 2.7.1 or later
- -->
- <groupId>jdk.tools</groupId>
- <artifactId>jdk.tools</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<properties>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemOptions.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemOptions.java
index 850332be..e52db34c 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemOptions.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemOptions.java
@@ -36,7 +36,6 @@ import java.util.TreeMap;
* @see org.apache.commons.vfs2.impl.DefaultFileSystemConfigBuilder
* @see org.apache.commons.vfs2.provider.ftp.FtpFileSystemConfigBuilder
* @see org.apache.commons.vfs2.provider.ftps.FtpsFileSystemConfigBuilder
- * @see org.apache.commons.vfs2.provider.hdfs.HdfsFileSystemConfigBuilder
* @see org.apache.commons.vfs2.provider.http.HttpFileSystemConfigBuilder
* @see org.apache.commons.vfs2.provider.ram.RamFileSystemConfigBuilder
* @see org.apache.commons.vfs2.provider.res.ResourceFileSystemConfigBuilder
diff --git a/commons-vfs2/src/main/resources/org/apache/commons/vfs2/impl/providers.xml b/commons-vfs2/src/main/resources/org/apache/commons/vfs2/impl/providers.xml
index 10c35ec7..dfaad344 100644
--- a/commons-vfs2/src/main/resources/org/apache/commons/vfs2/impl/providers.xml
+++ b/commons-vfs2/src/main/resources/org/apache/commons/vfs2/impl/providers.xml
@@ -148,6 +148,7 @@
<provider class-name="org.apache.commons.vfs2.provider.hdfs.HdfsFileProvider">
<scheme name="hdfs"/>
<if-available class-name="org.apache.hadoop.fs.FileSystem"/>
+ <if-available class-name="org.apache.commons.vfs2.provider.hdfs.HdfsFileSystem"/>
</provider>
<extension-map extension="zip" scheme="zip"/>
diff --git a/pom.xml b/pom.xml
index 197e4bb8..9a6e7126 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,7 @@
<modules>
<module>commons-vfs2</module>
+ <module>commons-vfs2-hdfs</module>
<module>commons-vfs2-jackrabbit1</module>
<module>commons-vfs2-jackrabbit2</module>
<module>commons-vfs2-examples</module>
@@ -194,6 +195,10 @@
<commons.asm.version>9.4</commons.asm.version>
<slf4j.version>1.7.36</slf4j.version>
<log4j2.version>2.20.0</log4j2.version>
+ <collections4.version>4.4</collections4.version>
+ <jsch.version>0.1.55</jsch.version>
+ <httpclient3.version>3.1</httpclient3.version>
+ <ant.version>1.6.5</ant.version>
<!-- For VFS, somehow, SPDX >= 0.6.0 requires Java 11 (maybe because it's a multi-module project). -->
<commons.spdx.version>0.5.5</commons.spdx.version>
@@ -339,7 +344,7 @@
</overrideCompatibilityChangeParameters>
<excludes>
<!-- Package moved to new module -->
- <exclude>org.apache.commons.vfs2.provider.webdav</exclude>
+ <exclude>org.apache.commons.vfs2.provider.hdfs</exclude>
</excludes>
</parameter>
</configuration>
@@ -414,7 +419,7 @@
</overrideCompatibilityChangeParameters>
<excludes>
<!-- Package moved to new module -->
- <exclude>org.apache.commons.vfs2.provider.webdav</exclude>
+ <exclude>org.apache.commons.vfs2.provider.hdfs</exclude>
</excludes>
</parameter>
</configuration>
@@ -483,12 +488,12 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
- <version>4.4</version>
+ <version>${collections4.version}</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
+ <version>${httpclient3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
@@ -513,12 +518,12 @@
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
- <version>1.6.5</version>
+ <version>${ant.version}</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
- <version>0.1.55</version>
+ <version>${jsch.version}</version>
</dependency>
<dependency>
<groupId>jcifs</groupId>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c8e5f8d0..f346f4bf 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -52,6 +52,9 @@ The <action> type attribute can be add,update,fix,remove.
<action type="fix" issue="VFS-848" dev="ggregory" due-to="beise, Gary Gregory">
Config option for trailing slash in webdav URI #425.
</action>
+ <action type="fix" issue="VFS-851" dev="ggregory" due-to="Gary Gregory">
+ Split out HDFS provider into its own Maven module commons-vfs2-hdfs.
+ </action>
<!-- FIX -->
<action type="fix" dev="ggregory" due-to="Seth Falco">
Replace package.html with package-info.java #206.