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

📄 serializationtestsupport.java

📁 quartz是一个用于工作任务定时调度的开源工具
💻 JAVA
字号:
/*  * Copyright 2004-2006 OpenSymphony  *  * Licensed under the Apache License, Version 2.0 (the "License"); you may not  * use this file except in compliance with the License. You may obtain a copy  * of the License at  *  *   http://www.apache.org/licenses/LICENSE-2.0  *    * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the  * License for the specific language governing permissions and limitations  * under the License. */package org.quartz;import java.io.FileOutputStream;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import junit.framework.TestCase;/** * Base class for unit tests that wish to verify  * backwards compatibily of serialization with earlier versions * of Quartz. */public abstract class SerializationTestSupport extends TestCase {    /**     * Get the object to serialize when generating serialized file for future     * tests, and against which to validate deserialized object.     */    protected abstract Object getTargetObject() throws Exception;        /**     * Get the Quartz versions for which we should verify     * serialization backwards compatibility.     */    protected abstract String[] getVersions();        /**     * Verify that the target object and the object we just deserialized      * match.     */    protected abstract void verifyMatch(Object target, Object deserialized);        /**     * Test that we can successfully deserialize our target     * class for all of the given Quartz versions.      */    public void testSerialization() throws Exception {        Object targetObject = getTargetObject();                for (int i = 0; i < getVersions().length; i++) {            String version = getVersions()[i];                        verifyMatch(                targetObject,                deserialize(version, targetObject.getClass()));        }    }        /**     * Deserialize the target object from disk.     */    protected Object deserialize(String version, Class clazz) throws Exception {        InputStream is = getClass().getResourceAsStream(getSerializedFileName(version, clazz));                ObjectInputStream ois = new ObjectInputStream(is);                Object obj = (Object)ois.readObject();        ois.close();        is.close();        return obj;    }        /**     * Use this method in the future to generate other versions of     * of the serialized object file.     */    public void writeJobDataFile(String version) throws Exception {        Object obj = getTargetObject();                FileOutputStream fos = new FileOutputStream(getSerializedFileName(version, obj.getClass()));        ObjectOutputStream oos = new ObjectOutputStream(fos);                oos.writeObject(obj);        oos.flush();        fos.close();        oos.close();    }        /**     * Generate the expected name of the serialized object file.     */    private String getSerializedFileName(String version, Class clazz) {        String className = clazz.getName();        int index = className.lastIndexOf(".");        index = (index < 0) ? 0 : index + 1;                return className.substring(index) + "-" + version + ".ser";    }}

⌨️ 快捷键说明

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