欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 文件服务器类使用示例

最编程 2024-05-24 15:38:34
...

实例1: RandomCSVReader

import org.apache.jmeter.services.FileServer; //导入依赖的package包/类
public RandomCSVReader(String filename, String encoding,
                       String delim, boolean randomOrder,
                       boolean hasVariableNames, boolean firstLineIsHeader,
                       boolean isRewindOnEndOfList) {
    File f = new File(filename);
    this.file = (f.isAbsolute() || f.exists()) ? f : new File(FileServer.getFileServer().getBaseDir(), filename);
    this.encoding = encoding;
    this.delim = checkDelimiter(delim).charAt(0);
    this.isSkipFirstLine = !(!firstLineIsHeader && hasVariableNames);
    this.randomOrder = randomOrder;
    this.isRewindOnEndOfList = isRewindOnEndOfList;
    try {
        initOffsets();
        if (randomOrder) {
            initRandom();
        } else {
            initConsistentReader();
        }
        initHeader();
    } catch (IOException ex) {
        LOGGER.error("Cannot initialize RandomCSVReader, because of error: ", ex);
        throw new RuntimeException("Cannot initialize RandomCSVReader, because of error: " + ex.getMessage(), ex);
    }
}
 

实例2: rconfigure

import org.apache.jmeter.services.FileServer; //导入依赖的package包/类
/**
 * Adds a feature to the ThreadGroup attribute of the RemoteJMeterEngineImpl
 * object.
 *
 * @param testTree
 *            the feature to be added to the ThreadGroup attribute
 */
@Override
public void rconfigure(HashTree testTree, String host, File jmxBase, String scriptName) throws RemoteException {
    log.info("Creating JMeter engine on host "+host+" base '"+jmxBase+"'");
    try {
        log.info("Remote client host: " + getClientHost());
    } catch (ServerNotActiveException e) {
        // ignored
    }
    synchronized(LOCK) { // close window where another remote client might jump in
        if (backingEngine != null && backingEngine.isActive()) {
            log.warn("Engine is busy - cannot create JMeter engine");
            throw new IllegalStateException("Engine is busy - please try later");
        }
        ownerThread = Thread.currentThread();
        backingEngine = new StandardJMeterEngine(host);
        backingEngine.configure(testTree); // sets active = true
    }
    FileServer.getFileServer().setScriptName(scriptName);
    FileServer.getFileServer().setBase(jmxBase);
}
 

实例3: testStarted

import org.apache.jmeter.services.FileServer; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void testStarted() {
    if (getBasedir() != null && getBasedir().length() > 0) {
        try {
            FileServer.getFileServer().setBasedir(FileServer.getFileServer().getBaseDir() + getBasedir());
        } catch (IllegalStateException e) {
            log.error("Failed to set file server base dir with " + getBasedir(), e);
        }
    }
    // we set the classpath
    String[] paths = this.getTestPlanClasspathArray();
    for (String path : paths) {
        NewDriver.addURL(path);
        log.info("add " + path + " to classpath");
    }
}
 

实例4: testStarted

import org.apache.jmeter.services.FileServer; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void testStarted() {
    if (getBasedir() != null && getBasedir().length() > 0) {
        try {
            FileServer.getFileServer().setBasedir(FileServer.getFileServer().getBaseDir() + getBasedir());
        } catch (IllegalStateException e) {
            log.error("Failed to set file server base dir with " + getBasedir(), e);
        }
    }
    // we set the classpath
    String[] paths = this.getTestPlanClasspathArray();
    for (int idx=0; idx < paths.length; idx++) {
        NewDriver.addURL(paths[idx]);
        log.info("add " + paths[idx] + " to classpath");
    }
}
 

实例5: getFileWriter

import org.apache.jmeter.services.FileServer; //导入依赖的package包/类
private static PrintWriter getFileWriter(String filename, SampleSaveConfiguration saveConfig)
        throws IOException {
    if (filename == null || filename.length() == 0) {
        return null;
    }
    filename = FileServer.resolveBaseRelativeName(filename);
    FileEntry fe = files.get(filename);
    PrintWriter writer = null;
    boolean trimmed = true;

    if (fe == null) {
        if (saveConfig.saveAsXml()) {
            trimmed = trimLastLine(filename);
        } else {
            trimmed = new File(filename).exists();
        }
        // Find the name of the directory containing the file
        // and create it - if there is one
        File pdir = new File(filename).getParentFile();
        if (pdir != null) {
            // returns false if directory already exists, so need to check again
            if(pdir.mkdirs()){
                log.info("Folder "+pdir.getAbsolutePath()+" was created");
            } // else if might have been created by another process so not a problem
            if (!pdir.exists()){
                log.warn("Error creating directories for "+pdir.toString());
            }
        }
        writer = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(filename,
                trimmed)), SaveService.getFileEncoding("UTF-8")), SAVING_AUTOFLUSH); // $NON-NLS-1$
        log.debug("Opened file: "+filename);
        files.put(filename, new FileEntry(writer, saveConfig));
    } else {
        writer = fe.pw;
    }
    if (!trimmed) {
        writeFileStart(writer, saveConfig);
    }
    return writer;
}
 

推荐阅读