All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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