8038500: (zipfs) Upgrade ZIP provider to be a supported provider
To move zipfs into jdk.nio.zipfs Reviewed-by: alanb, mchung, erikj
This commit is contained in:
parent
492411d1c6
commit
0298d8c0fa
@ -176,7 +176,6 @@ $(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
|
|||||||
$(eval $(call SetupDemo,JTop,management,,JTop,,,README*))
|
$(eval $(call SetupDemo,JTop,management,,JTop,,,README*))
|
||||||
$(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
|
$(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
|
||||||
$(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
|
$(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
|
||||||
$(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java,,,,Main-Class: \n))
|
|
||||||
|
|
||||||
ifndef OPENJDK
|
ifndef OPENJDK
|
||||||
$(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
|
$(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
|
||||||
|
@ -160,11 +160,13 @@ RT_JAR_EXCLUDES += \
|
|||||||
javax/swing/JWindowBeanInfo.class \
|
javax/swing/JWindowBeanInfo.class \
|
||||||
javax/swing/SwingBeanInfoBase.class \
|
javax/swing/SwingBeanInfoBase.class \
|
||||||
javax/swing/text/JTextComponentBeanInfo.class \
|
javax/swing/text/JTextComponentBeanInfo.class \
|
||||||
|
jdk/nio/zipfs \
|
||||||
META-INF/services/com.sun.jdi.connect.Connector \
|
META-INF/services/com.sun.jdi.connect.Connector \
|
||||||
META-INF/services/com.sun.jdi.connect.spi.TransportService \
|
META-INF/services/com.sun.jdi.connect.spi.TransportService \
|
||||||
META-INF/services/com.sun.tools.attach.spi.AttachProvider \
|
META-INF/services/com.sun.tools.attach.spi.AttachProvider \
|
||||||
META-INF/services/com.sun.tools.xjc.Plugin \
|
META-INF/services/com.sun.tools.xjc.Plugin \
|
||||||
META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
|
META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor \
|
||||||
|
META-INF/services/java.nio.file.spi.FileSystemProvider \
|
||||||
org/relaxng/datatype \
|
org/relaxng/datatype \
|
||||||
sun/awt/HKSCS.class \
|
sun/awt/HKSCS.class \
|
||||||
sun/awt/motif/X11GB2312.class \
|
sun/awt/motif/X11GB2312.class \
|
||||||
@ -356,6 +358,16 @@ $(eval $(call SetupArchive,BUILD_CHARSETS_JAR, , \
|
|||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
|
$(eval $(call SetupArchive,BUILD_ZIPFS_JAR, , \
|
||||||
|
SRCS := $(JDK_OUTPUTDIR)/classes, \
|
||||||
|
INCLUDES := jdk/nio/zipfs, \
|
||||||
|
EXTRA_FILES := META-INF/services/java.nio.file.spi.FileSystemProvider, \
|
||||||
|
JAR := $(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar, \
|
||||||
|
SKIP_METAINF := true, \
|
||||||
|
CHECK_COMPRESS_JAR := true))
|
||||||
|
|
||||||
|
##########################################################################################
|
||||||
|
|
||||||
ifndef OPENJDK
|
ifndef OPENJDK
|
||||||
ifeq ($(ENABLE_JFR), true)
|
ifeq ($(ENABLE_JFR), true)
|
||||||
$(eval $(call SetupArchive,BUILD_JFR_JAR, , \
|
$(eval $(call SetupArchive,BUILD_JFR_JAR, , \
|
||||||
@ -660,11 +672,6 @@ $(IMAGES_OUTPUTDIR)/lib/management-agent.jar: $(JDK_TOPDIR)/src/share/classes/su
|
|||||||
|
|
||||||
##########################################################################################
|
##########################################################################################
|
||||||
|
|
||||||
$(IMAGES_OUTPUTDIR)/lib/ext/zipfs.jar: $(JDK_OUTPUTDIR)/demo/nio/zipfs/zipfs.jar
|
|
||||||
$(install-file)
|
|
||||||
|
|
||||||
##########################################################################################
|
|
||||||
|
|
||||||
# This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
|
# This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
|
||||||
# all jars can be found in one place when creating images in Images.gmk. It needs to be
|
# all jars can be found in one place when creating images in Images.gmk. It needs to be
|
||||||
# done here so that clean targets can be simple and accurate.
|
# done here so that clean targets can be simple and accurate.
|
||||||
|
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package jdk.nio.zipfs;
|
||||||
|
|
||||||
|
import java.nio.file.*;
|
||||||
|
import java.nio.file.spi.*;
|
||||||
|
import java.nio.file.attribute.*;
|
||||||
|
import java.nio.file.spi.FileSystemProvider;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.nio.channels.FileChannel;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
class JarFileSystemProvider extends ZipFileSystemProvider
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getScheme() {
|
||||||
|
return "jar";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Path uriToPath(URI uri) {
|
||||||
|
String scheme = uri.getScheme();
|
||||||
|
if ((scheme == null) || !scheme.equalsIgnoreCase(getScheme())) {
|
||||||
|
throw new IllegalArgumentException("URI scheme is not '" + getScheme() + "'");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
String uristr = uri.toString();
|
||||||
|
int end = uristr.indexOf("!/");
|
||||||
|
uristr = uristr.substring(4, (end == -1) ? uristr.length() : end);
|
||||||
|
uri = new URI(uristr);
|
||||||
|
return Paths.get(new URI("file", uri.getHost(), uri.getPath(), null))
|
||||||
|
.toAbsolutePath();
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new AssertionError(e); //never thrown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Path getPath(URI uri) {
|
||||||
|
FileSystem fs = getFileSystem(uri);
|
||||||
|
String path = uri.getFragment();
|
||||||
|
if (path == null) {
|
||||||
|
String uristr = uri.toString();
|
||||||
|
int off = uristr.indexOf("!/");
|
||||||
|
if (off != -1)
|
||||||
|
path = uristr.substring(off + 2);
|
||||||
|
}
|
||||||
|
if (path != null)
|
||||||
|
return fs.getPath(path);
|
||||||
|
throw new IllegalArgumentException("URI: "
|
||||||
|
+ uri
|
||||||
|
+ " does not contain path fragment ex. jar:///c:/foo.zip!/BAR");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
jdk.nio.zipfs.ZipFileSystemProvider
|
||||||
|
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.CharBuffer;
|
import java.nio.CharBuffer;
|
@ -1,45 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.file.DirectoryStream;
|
import java.nio.file.DirectoryStream;
|
||||||
import java.nio.file.ClosedDirectoryStreamException;
|
import java.nio.file.ClosedDirectoryStreamException;
|
||||||
@ -53,7 +38,7 @@ import java.io.IOException;
|
|||||||
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipDirectoryStream implements DirectoryStream<Path> {
|
class ZipDirectoryStream implements DirectoryStream<Path> {
|
||||||
|
|
||||||
private final ZipFileSystem zipfs;
|
private final ZipFileSystem zipfs;
|
||||||
private final byte[] path;
|
private final byte[] path;
|
@ -1,45 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.file.attribute.*;
|
import java.nio.file.attribute.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -50,7 +34,7 @@ import java.util.Map;
|
|||||||
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipFileAttributeView implements BasicFileAttributeView
|
class ZipFileAttributeView implements BasicFileAttributeView
|
||||||
{
|
{
|
||||||
private static enum AttrID {
|
private static enum AttrID {
|
||||||
size,
|
size,
|
@ -1,59 +1,42 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.file.attribute.BasicFileAttributes;
|
import java.nio.file.attribute.BasicFileAttributes;
|
||||||
import java.nio.file.attribute.FileTime;
|
import java.nio.file.attribute.FileTime;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Formatter;
|
import java.util.Formatter;
|
||||||
import static com.sun.nio.zipfs.ZipUtils.*;
|
import static jdk.nio.zipfs.ZipUtils.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Xueming Shen, Rajendra Gutupalli,Jaya Hangal
|
* @author Xueming Shen, Rajendra Gutupalli,Jaya Hangal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipFileAttributes implements BasicFileAttributes
|
class ZipFileAttributes implements BasicFileAttributes
|
||||||
|
|
||||||
{
|
{
|
||||||
private final ZipFileSystem.Entry e;
|
private final ZipFileSystem.Entry e;
|
||||||
|
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@ -56,7 +41,7 @@ import java.util.Formatter;
|
|||||||
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
* @author Xueming Shen, Rajendra Gutupalli, Jaya Hangal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipFileStore extends FileStore {
|
class ZipFileStore extends FileStore {
|
||||||
|
|
||||||
private final ZipFileSystem zfs;
|
private final ZipFileSystem zfs;
|
||||||
|
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
@ -54,6 +39,8 @@ import java.nio.channels.*;
|
|||||||
import java.nio.file.*;
|
import java.nio.file.*;
|
||||||
import java.nio.file.attribute.*;
|
import java.nio.file.attribute.*;
|
||||||
import java.nio.file.spi.*;
|
import java.nio.file.spi.*;
|
||||||
|
import java.security.AccessController;
|
||||||
|
import java.security.PrivilegedAction;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.locks.ReadWriteLock;
|
import java.util.concurrent.locks.ReadWriteLock;
|
||||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||||
@ -66,8 +53,8 @@ import java.util.zip.DeflaterOutputStream;
|
|||||||
import java.util.zip.ZipException;
|
import java.util.zip.ZipException;
|
||||||
import java.util.zip.ZipError;
|
import java.util.zip.ZipError;
|
||||||
import static java.lang.Boolean.*;
|
import static java.lang.Boolean.*;
|
||||||
import static com.sun.nio.zipfs.ZipConstants.*;
|
import static jdk.nio.zipfs.ZipConstants.*;
|
||||||
import static com.sun.nio.zipfs.ZipUtils.*;
|
import static jdk.nio.zipfs.ZipUtils.*;
|
||||||
import static java.nio.file.StandardOpenOption.*;
|
import static java.nio.file.StandardOpenOption.*;
|
||||||
import static java.nio.file.StandardCopyOption.*;
|
import static java.nio.file.StandardCopyOption.*;
|
||||||
|
|
||||||
@ -77,7 +64,7 @@ import static java.nio.file.StandardCopyOption.*;
|
|||||||
* @author Xueming Shen
|
* @author Xueming Shen
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipFileSystem extends FileSystem {
|
class ZipFileSystem extends FileSystem {
|
||||||
|
|
||||||
private final ZipFileSystemProvider provider;
|
private final ZipFileSystemProvider provider;
|
||||||
private final ZipPath defaultdir;
|
private final ZipPath defaultdir;
|
||||||
@ -91,8 +78,9 @@ public class ZipFileSystem extends FileSystem {
|
|||||||
private final boolean useTempFile; // use a temp file for newOS, default
|
private final boolean useTempFile; // use a temp file for newOS, default
|
||||||
// is to use BAOS for better performance
|
// is to use BAOS for better performance
|
||||||
private final boolean createNew; // create a new zip if not exists
|
private final boolean createNew; // create a new zip if not exists
|
||||||
private static final boolean isWindows =
|
private static final boolean isWindows = AccessController.doPrivileged(
|
||||||
System.getProperty("os.name").startsWith("Windows");
|
(PrivilegedAction<Boolean>) () -> System.getProperty("os.name")
|
||||||
|
.startsWith("Windows"));
|
||||||
|
|
||||||
ZipFileSystem(ZipFileSystemProvider provider,
|
ZipFileSystem(ZipFileSystemProvider provider,
|
||||||
Path zfpath,
|
Path zfpath,
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.channels.*;
|
import java.nio.channels.*;
|
@ -1,50 +1,35 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import static com.sun.nio.zipfs.ZipConstants.*;
|
import static jdk.nio.zipfs.ZipConstants.*;
|
||||||
import static com.sun.nio.zipfs.ZipUtils.*;
|
import static jdk.nio.zipfs.ZipUtils.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print all loc and cen headers of the ZIP file
|
* Print all loc and cen headers of the ZIP file
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
@ -56,7 +41,7 @@ import static java.nio.file.StandardCopyOption.*;
|
|||||||
* @author Xueming Shen, Rajendra Gutupalli,Jaya Hangal
|
* @author Xueming Shen, Rajendra Gutupalli,Jaya Hangal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipPath implements Path {
|
class ZipPath implements Path {
|
||||||
|
|
||||||
private final ZipFileSystem zfs;
|
private final ZipFileSystem zfs;
|
||||||
private final byte[] path;
|
private final byte[] path;
|
@ -1,44 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package jdk.nio.zipfs;
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
@ -1,26 +0,0 @@
|
|||||||
ZipFileSystem is a file system provider that treats the contents of a zip or
|
|
||||||
JAR file as a java.nio.file.FileSystem.
|
|
||||||
|
|
||||||
The factory methods defined by the java.nio.file.FileSystems class can be
|
|
||||||
used to create a FileSystem, eg:
|
|
||||||
|
|
||||||
// use file type detection
|
|
||||||
Path jarfile = Paths.get("foo.jar");
|
|
||||||
FileSystem fs = FileSystems.newFileSystem(jarfile, null);
|
|
||||||
|
|
||||||
-or
|
|
||||||
|
|
||||||
// locate file system by the legacy JAR URL syntax
|
|
||||||
Map<String,?> env = Collections.emptyMap();
|
|
||||||
URI uri = URI.create("jar:file:/mydir/foo.jar");
|
|
||||||
FileSystem fs = FileSystems.newFileSystem(uri, env);
|
|
||||||
|
|
||||||
Once a FileSystem is created then classes in the java.nio.file package
|
|
||||||
can be used to access files in the zip/JAR file, eg:
|
|
||||||
|
|
||||||
Path mf = fs.getPath("/META-INF/MANIFEST.MF");
|
|
||||||
InputStream in = mf.newInputStream();
|
|
||||||
|
|
||||||
See Demo.java for more interesting usages.
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
com.sun.nio.zipfs.ZipFileSystemProvider
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* - Neither the name of Oracle nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.sun.nio.zipfs;
|
|
||||||
|
|
||||||
import java.nio.file.*;
|
|
||||||
import java.nio.file.spi.*;
|
|
||||||
import java.nio.file.attribute.*;
|
|
||||||
import java.nio.file.spi.FileSystemProvider;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.nio.channels.FileChannel;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class JarFileSystemProvider extends ZipFileSystemProvider
|
|
||||||
{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getScheme() {
|
|
||||||
return "jar";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Path uriToPath(URI uri) {
|
|
||||||
String scheme = uri.getScheme();
|
|
||||||
if ((scheme == null) || !scheme.equalsIgnoreCase(getScheme())) {
|
|
||||||
throw new IllegalArgumentException("URI scheme is not '" + getScheme() + "'");
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
String uristr = uri.toString();
|
|
||||||
int end = uristr.indexOf("!/");
|
|
||||||
uristr = uristr.substring(4, (end == -1) ? uristr.length() : end);
|
|
||||||
uri = new URI(uristr);
|
|
||||||
return Paths.get(new URI("file", uri.getHost(), uri.getPath(), null))
|
|
||||||
.toAbsolutePath();
|
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
throw new AssertionError(e); //never thrown
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Path getPath(URI uri) {
|
|
||||||
FileSystem fs = getFileSystem(uri);
|
|
||||||
String path = uri.getFragment();
|
|
||||||
if (path == null) {
|
|
||||||
String uristr = uri.toString();
|
|
||||||
int off = uristr.indexOf("!/");
|
|
||||||
if (off != -1)
|
|
||||||
path = uristr.substring(off + 2);
|
|
||||||
}
|
|
||||||
if (path != null)
|
|
||||||
return fs.getPath(path);
|
|
||||||
throw new IllegalArgumentException("URI: "
|
|
||||||
+ uri
|
|
||||||
+ " does not contain path fragment ex. jar:///c:/foo.zip!/BAR");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
#
|
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License version 2 only, as
|
|
||||||
# published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
# version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
# accompanied this code).
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License version
|
|
||||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
#
|
|
||||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
# or visit www.oracle.com if you need additional information or have any
|
|
||||||
# questions.
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 6990846 7009092 7009085 7015391 7014948 7005986 7017840 7007596
|
|
||||||
# 7157656 8002390 7012868 7012856 8015728
|
|
||||||
# @summary Test ZipFileSystem demo
|
|
||||||
# @build Basic PathOps ZipFSTester
|
|
||||||
# @run shell basic.sh
|
|
||||||
|
|
||||||
if [ -z "${TESTJAVA}" ]; then
|
|
||||||
echo "Test must be run with jtreg"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
ZIPFS="${TESTJAVA}/demo/nio/zipfs/zipfs.jar"
|
|
||||||
if [ ! -r "${ZIPFS}" ]; then
|
|
||||||
echo "${ZIPFS} not found"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
OS=`uname -s`
|
|
||||||
case "$OS" in
|
|
||||||
Windows_* | CYGWIN* )
|
|
||||||
CLASSPATH="${TESTCLASSES};${ZIPFS}"
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
CLASSPATH="${TESTCLASSES}:${ZIPFS}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
export CLASSPATH
|
|
||||||
|
|
||||||
failures=0
|
|
||||||
|
|
||||||
go() {
|
|
||||||
echo ""
|
|
||||||
${TESTJAVA}/bin/java ${TESTVMOPTS} $1 $2 $3 2>&1
|
|
||||||
if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Run the tests
|
|
||||||
|
|
||||||
go Basic "${ZIPFS}"
|
|
||||||
go PathOps "${ZIPFS}"
|
|
||||||
go ZipFSTester "${ZIPFS}"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Results
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ $failures -gt 0 ];
|
|
||||||
then echo "$failures tests failed";
|
|
||||||
else echo "All tests passed";
|
|
||||||
fi
|
|
||||||
exit $failures
|
|
@ -29,13 +29,16 @@ import java.net.URI;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic test for zip provider
|
*
|
||||||
|
* @test
|
||||||
|
* @bug 8038500
|
||||||
|
* @summary Basic test for zip provider
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class Basic {
|
public class Basic {
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
Path zipfile = Paths.get(args[0]);
|
Path zipfile = Paths.get(System.getProperty("test.jdk"),
|
||||||
|
"jre/lib/ext/zipfs.jar");
|
||||||
// Test: zip should should be returned in provider list
|
// Test: zip should should be returned in provider list
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
|
|
@ -1,43 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
* modification, are permitted provided that the following conditions
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
* are met:
|
* published by the Free Software Foundation.
|
||||||
*
|
*
|
||||||
* - Redistributions of source code must retain the above copyright
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
*
|
*
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
* You should have received a copy of the GNU General Public License version
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
* documentation and/or other materials provided with the distribution.
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* - Neither the name of Oracle nor the names of its
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
* contributors may be used to endorse or promote products derived
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
* from this software without specific prior written permission.
|
* questions.
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* This source code is provided to illustrate the usage of a given feature
|
|
||||||
* or technique and has been deliberately simplified. Additional steps
|
|
||||||
* required for a production-quality application, such as security checks,
|
|
||||||
* input validation and proper error handling, might not be present in
|
|
||||||
* this sample code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.*;
|
import java.nio.*;
|
||||||
import java.nio.channels.*;
|
import java.nio.channels.*;
|
||||||
@ -51,6 +34,7 @@ import java.util.*;
|
|||||||
|
|
||||||
import static java.nio.file.StandardOpenOption.*;
|
import static java.nio.file.StandardOpenOption.*;
|
||||||
import static java.nio.file.StandardCopyOption.*;
|
import static java.nio.file.StandardCopyOption.*;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ZipFileSystem usage demo
|
* ZipFileSystem usage demo
|
||||||
*
|
*
|
@ -27,7 +27,10 @@ import java.util.*;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests path operations for zip provider.
|
*
|
||||||
|
* @test
|
||||||
|
* @bug 8038500
|
||||||
|
* @summary Tests path operations for zip provider.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class PathOps {
|
public class PathOps {
|
||||||
@ -447,8 +450,8 @@ public class PathOps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Throwable {
|
public static void main(String[] args) throws Throwable {
|
||||||
|
Path zipfile = Paths.get(System.getProperty("test.jdk"),
|
||||||
Path zipfile = Paths.get(args[0]);
|
"jre/lib/ext/zipfs.jar");
|
||||||
fs = FileSystems.newFileSystem(zipfile, null);
|
fs = FileSystems.newFileSystem(zipfile, null);
|
||||||
npes();
|
npes();
|
||||||
doPathOpTests();
|
doPathOpTests();
|
@ -37,20 +37,25 @@ import static java.nio.file.StandardCopyOption.*;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Tests various zipfs operations.
|
* Tests various zipfs operations.
|
||||||
|
*
|
||||||
|
* @test
|
||||||
|
* @bug 6990846 7009092 7009085 7015391 7014948 7005986 7017840 7007596
|
||||||
|
* 7157656 8002390 7012868 7012856 8015728 8038500
|
||||||
|
* @summary Test Zip filesystem provider
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class ZipFSTester {
|
public class ZipFSTester {
|
||||||
|
|
||||||
public static void main(String[] args) throws Throwable {
|
public static void main(String[] args) throws Throwable {
|
||||||
|
try (FileSystem fs = newZipFileSystem(
|
||||||
try (FileSystem fs = newZipFileSystem(Paths.get(args[0]),
|
Paths.get(System.getProperty("test.jdk"), "jre/lib/ext/zipfs.jar"),
|
||||||
new HashMap<String, Object>()))
|
new HashMap<String, Object>()))
|
||||||
{
|
{
|
||||||
test0(fs);
|
test0(fs);
|
||||||
test1(fs);
|
test1(fs);
|
||||||
test2(fs); // more tests
|
test2(fs); // more tests
|
||||||
testTime(Paths.get(args[0]));
|
|
||||||
}
|
}
|
||||||
|
testTime(Paths.get(System.getProperty("test.jdk"), "jre/lib/ext/zipfs.jar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test0(FileSystem fs)
|
static void test0(FileSystem fs)
|
Loading…
Reference in New Issue
Block a user