⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jartest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  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.tools.ant.taskdefs;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.IOException;import java.io.Reader;import java.util.Enumeration;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import org.apache.tools.ant.BuildFileTest;import org.apache.tools.ant.util.FileUtils;/** */public class JarTest extends BuildFileTest {    /** Utilities used for file operations */    private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();    private static String tempJar = "tmp.jar";    private static String tempDir = "jartmp/";    private Reader r1, r2;    public JarTest(String name) {        super(name);    }    public void setUp() {        configureProject("src/etc/testcases/taskdefs/jar.xml");    }    public void tearDown() {        if (r1 != null) {            try {                r1.close();            } catch (IOException e) {            }        }        if (r2 != null) {            try {                r2.close();            } catch (IOException e) {            }        }        executeTarget("cleanup");    }    public void test1() {        expectBuildException("test1", "required argument not specified");    }    public void test2() {        expectBuildException("test2", "manifest file does not exist");    }    public void test3() {        expectBuildException("test3", "Unrecognized whenempty attribute: format C: /y");    }    public void test4() {        executeTarget("test4");        File jarFile = new File(getProjectDir(), tempJar);        assertTrue(jarFile.exists());    }    public void testNoRecreateWithoutUpdate() {        testNoRecreate("test4");    }    public void testNoRecreateWithUpdate() {        testNoRecreate("testNoRecreateWithUpdate");    }    private void testNoRecreate(String secondTarget) {        executeTarget("test4");        File jarFile = new File(getProjectDir(), tempJar);        long jarModifiedDate = jarFile.lastModified();        try {            Thread.sleep(2500);        } catch (InterruptedException e) {        } // end of try-catch        executeTarget(secondTarget);        assertEquals("jar has not been recreated in " + secondTarget,                     jarModifiedDate, jarFile.lastModified());    }    public void testRecreateWithoutUpdateAdditionalFiles() {        testRecreate("test4", "testRecreateWithoutUpdateAdditionalFiles");    }    public void testRecreateWithUpdateAdditionalFiles() {        testRecreate("test4", "testRecreateWithUpdateAdditionalFiles");    }    public void testRecreateWithoutUpdateNewerFile() {        testRecreate("testRecreateNewerFileSetup",                     "testRecreateWithoutUpdateNewerFile");    }    public void testRecreateWithUpdateNewerFile() {        testRecreate("testRecreateNewerFileSetup",                     "testRecreateWithUpdateNewerFile");    }    private void testRecreate(String firstTarget, String secondTarget) {        executeTarget(firstTarget);        long sleeptime = 3000            + FILE_UTILS.getFileTimestampGranularity();        try {            Thread.sleep(sleeptime);        } catch (InterruptedException e) {        } // end of try-catch        File jarFile = new File(getProjectDir(), tempJar);        long jarModifiedDate = jarFile.lastModified();        executeTarget(secondTarget);        jarFile = new File(getProjectDir(), tempJar);        assertTrue("jar has been recreated in " + secondTarget,                   jarModifiedDate < jarFile.lastModified());    }    public void testManifestStaysIntact()        throws IOException, ManifestException {        executeTarget("testManifestStaysIntact");        r1 = new FileReader(getProject()                            .resolveFile(tempDir + "manifest"));        r2 = new FileReader(getProject()                            .resolveFile(tempDir + "META-INF/MANIFEST.MF"));        Manifest mf1 = new Manifest(r1);        Manifest mf2 = new Manifest(r2);        assertEquals(mf1, mf2);    }    public void testNoRecreateBasedirExcludesWithUpdate() {        testNoRecreate("testNoRecreateBasedirExcludesWithUpdate");    }    public void testNoRecreateBasedirExcludesWithoutUpdate() {        testNoRecreate("testNoRecreateBasedirExcludesWithoutUpdate");    }    public void testNoRecreateZipfilesetExcludesWithUpdate() {        testNoRecreate("testNoRecreateZipfilesetExcludesWithUpdate");    }    public void testNoRecreateZipfilesetExcludesWithoutUpdate() {        testNoRecreate("testNoRecreateZipfilesetExcludesWithoutUpdate");    }    public void testRecreateZipfilesetWithoutUpdateAdditionalFiles() {        testRecreate("test4",                     "testRecreateZipfilesetWithoutUpdateAdditionalFiles");    }    public void testRecreateZipfilesetWithUpdateAdditionalFiles() {        testRecreate("test4",                     "testRecreateZipfilesetWithUpdateAdditionalFiles");    }    public void testRecreateZipfilesetWithoutUpdateNewerFile() {        testRecreate("testRecreateNewerFileSetup",                     "testRecreateZipfilesetWithoutUpdateNewerFile");    }    public void testRecreateZipfilesetWithUpdateNewerFile() {        testRecreate("testRecreateNewerFileSetup",                     "testRecreateZipfilesetWithUpdateNewerFile");    }    public void testCreateWithEmptyFileset() {        executeTarget("testCreateWithEmptyFilesetSetUp");        executeTarget("testCreateWithEmptyFileset");        executeTarget("testCreateWithEmptyFileset");    }    public void testUpdateIfOnlyManifestHasChanged() {        executeTarget("testUpdateIfOnlyManifestHasChanged");        File jarXml = getProject().resolveFile(tempDir + "jar.xml");        assertTrue(jarXml.exists());    }    // bugzilla report 10262    public void testNoDuplicateIndex() throws IOException {        ZipFile archive = null;        try {            executeTarget("testIndexTests");            archive = new ZipFile(getProject().resolveFile(tempJar));            Enumeration e = archive.entries();            int numberOfIndexLists = 0;            while (e.hasMoreElements()) {                ZipEntry ze = (ZipEntry) e.nextElement();                if (ze.getName().equals("META-INF/INDEX.LIST")) {                    numberOfIndexLists++;                }            }            assertEquals(1, numberOfIndexLists);        } finally {            if (archive != null) {                archive.close();            }        }    }    // bugzilla report 16972    public void testRootFilesInIndex() throws IOException {        ZipFile archive = null;        try {            executeTarget("testIndexTests");            archive = new ZipFile(getProject().resolveFile(tempJar));            ZipEntry ze = archive.getEntry("META-INF/INDEX.LIST");            InputStream is = archive.getInputStream(ze);            BufferedReader r = new BufferedReader(new InputStreamReader(is,                                                                        "UTF8"));            boolean foundSub = false;            boolean foundSubFoo = false;            boolean foundFoo = false;            String line = r.readLine();            while (line != null) {                if (line.equals("foo")) {                    foundFoo = true;                } else if (line.equals("sub")) {                    foundSub = true;                } else if (line.equals("sub/foo")) {                    foundSubFoo = true;                }                line = r.readLine();            }            assertTrue(foundSub);            assertTrue(!foundSubFoo);            assertTrue(foundFoo);        } finally {            if (archive != null) {                archive.close();            }        }    }    public void testManifestOnlyJar() {        expectLogContaining("testManifestOnlyJar", "Building MANIFEST-only jar: ");        File manifestFile = getProject().resolveFile(tempDir + "META-INF" + File.separator + "MANIFEST.MF");        assertTrue(manifestFile.exists());    }    public void testIndexJarsPlusJarMarker() {        executeTarget("testIndexJarsPlusJarMarker");    }        public void testNoVersionInfoFail() {        expectBuildExceptionContaining("testNoVersionInfoFail", "Manifest Implemention information missing.", "No Implementation-Title set.");    }        public void testNoVersionInfoIgnore() {        executeTarget("testNoVersionInfoIgnore");        assertTrue( getFullLog().indexOf("No Implementation-Title set.") > -1 );        assertTrue( getFullLog().indexOf("No Implementation-Version set.") > -1 );        assertTrue( getFullLog().indexOf("No Implementation-Vendor set.") > -1 );    }    public void testNoVersionInfoWarn() {        executeTarget("testNoVersionInfoWarn");        assertTrue( getLog().indexOf("No Implementation-Title set.") > -1 );        assertTrue( getLog().indexOf("No Implementation-Version set.") > -1 );        assertTrue( getLog().indexOf("No Implementation-Vendor set.") > -1 );    }    public void testNoVersionInfoNoStrict() {        executeTarget("testNoVersionInfoNoStrict");        assertFalse( getLog().indexOf("No Implementation-Title set.") > -1 );        assertFalse( getLog().indexOf("No Implementation-Version set.") > -1 );        assertFalse( getLog().indexOf("No Implementation-Vendor set.") > -1 );    }        public void testHasVersionInfo() {        executeTarget("testHasVersionInfo");        assertFalse( getLog().indexOf("No Implementation-Title set.") > -1 );        assertFalse( getLog().indexOf("No Implementation-Version set.") > -1 );        assertFalse( getLog().indexOf("No Implementation-Vendor set.") > -1 );    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -