ee.jakarta.tck.jsonp.signaturetest.SigTestRecorder Maven / Gradle / Ivy
The newest version!
/*
* Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
/*
* @(#)SigTestRecorder.java 1.1 03/03/05
*/
package ee.jakarta.tck.jsonp.signaturetest;
import java.io.File;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
/**
*
* This implementation of {@link Recorder} will record signatures using the
* Signature Test
framework.
*
*/
public class SigTestRecorder extends Recorder {
// ------------------------------------------------------------ Constructors
public SigTestRecorder(String[] args) {
super(args);
} // END SigTestRecorder
// ------------------------------------------------------- Protected Methods
protected String[] createCommandLine(String version, String classpath,
String outputFileName, String packageName) {
List command = new ArrayList();
// command.add("-xReflection");
command.add("-static");
command.add("-debug");
command.add("-verbose");
command.add("-classpath");
command.add(classpath);
command.add("-FileName");
try {
command.add(new File(outputFileName).toURI().toURL().toExternalForm());
} catch (Exception e) {
throw new RuntimeException(e);
}
command.add("-package");
command.add(packageName);
command.add("-apiVersion");
command.add(version);
return ((String[]) command.toArray(new String[command.size()]));
} // END getCommandLine
protected void writePackageListFile(String basePackageName,
String signatureFile, String packageListFile) throws Exception {
PackageList packageList = new PackageList(basePackageName, signatureFile,
packageListFile);
packageList.writePkgListFile();
} // END writePackageListFile
protected void doRecord(String[] commandLine) throws Exception {
Class batchSetup = Class.forName("com.sun.tdk.signaturetest.Setup");
Object batchSetupInstance = batchSetup.newInstance();
Method runMethod = batchSetup.getDeclaredMethod("run",
new Class[] { String[].class, PrintWriter.class, PrintWriter.class });
runMethod.invoke(batchSetupInstance, new Object[] { commandLine,
new PrintWriter(System.out, true), new PrintWriter(System.err, true) });
} // END doRecord
} // END SigTestRecorder
© 2015 - 2024 Weber Informatics LLC | Privacy Policy