xmlgraphics-fop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From spepp...@apache.org
Subject svn commit: r496842 - in /xmlgraphics/fop/trunk: fop.cmd fop.js
Date Tue, 16 Jan 2007 19:59:13 GMT
Author: spepping
Date: Tue Jan 16 11:59:13 2007
New Revision: 496842

URL: http://svn.apache.org/viewvc?view=rev&rev=496842
Log:
Two scripts to start FOP on MS Windows

Added:
    xmlgraphics/fop/trunk/fop.cmd   (with props)
    xmlgraphics/fop/trunk/fop.js   (with props)

Added: xmlgraphics/fop/trunk/fop.cmd
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop.cmd?view=auto&rev=496842
==============================================================================
--- xmlgraphics/fop/trunk/fop.cmd (added)
+++ xmlgraphics/fop/trunk/fop.cmd Tue Jan 16 11:59:13 2007
@@ -0,0 +1,73 @@
+@ECHO OFF
+REM  Licensed to the Apache Software Foundation (ASF) under one or more
+REM  contributor license agreements.  See the NOTICE file distributed with
+REM  this work for additional information regarding copyright ownership.
+REM  The ASF licenses this file to You under the Apache License, Version 2.0
+REM  (the "License"); you may not use this file except in compliance with
+REM  the License.  You may obtain a copy of the License at
+REM
+REM      http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM  Unless required by applicable law or agreed to in writing, software
+REM  distributed under the License is distributed on an "AS IS" BASIS,
+REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM  See the License for the specific language governing permissions and
+REM  limitations under the License.
+REM  $Id$
+
+SETLOCAL ENABLEDELAYEDEXPANSION
+
+rem %~dp0 is the expanded pathname of the current script under NT
+set LOCAL_FOP_HOME=
+if "%OS%"=="Windows_NT" set LOCAL_FOP_HOME=%~dp0
+
+rem Code from Apache Ant project
+rem Slurp the command line arguments. This loop allows for an unlimited number
+rem of arguments (up to the command line limit, anyway).
+rem Could also do a "shift" and "%*" for all params, but apparently doesn't work 
+rem with Win9x.
+set FOP_CMD_LINE_ARGS=%1
+if ""%1""=="""" goto doneStart
+shift
+:setupArgs
+if ""%1""=="""" goto doneStart
+set FOP_CMD_LINE_ARGS=%FOP_CMD_LINE_ARGS% %1
+shift
+goto setupArgs
+rem This label provides a place for the argument list loop to break out 
+rem and for NT handling to skip to.
+:doneStart
+
+set LOGCHOICE=
+rem The default commons logger for JDK1.4 is JDK1.4Logger.
+rem To use a different logger, uncomment the one desired below
+rem set LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
+rem set LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+rem set LOGCHOICE=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
+
+set LOGLEVEL=
+rem Logging levels
+rem Below option is only if you are using SimpleLog instead of the default JDK1.4 Logger.
+rem To set logging levels for JDK 1.4 Logger, edit the %JAVA_HOME%\JRE\LIB\logging.properties

+rem file instead.
+rem Possible SimpleLog values:  "trace", "debug", "info" (default), "warn", "error", or "fatal".
+rem set LOGLEVEL=-Dorg.apache.commons.logging.simplelog.defaultlog=INFO
+
+set LIBDIR=%LOCAL_FOP_HOME%lib
+
+set LOCALCLASSPATH=%FOP_HYPHENATION_PATH%
+for %%l in (%LOCAL_FOP_HOME%build\*.jar %LIBDIR%\*.jar) do set LOCALCLASSPATH=!LOCALCLASSPATH!;%%l
+
+if "%JAVA_HOME%" == "" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
+if "%JAVACMD%" == "" set JAVACMD=%JAVA_HOME%\bin\java
+goto runFop
+
+:noJavaHome
+if "%JAVACMD%" == "" set JAVACMD=java
+
+:runFop
+rem echo "%JAVACMD%" %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%" org.apache.fop.cli.Main
%FOP_CMD_LINE_ARGS%
+"%JAVACMD%" %LOGCHOICE% %LOGLEVEL% -cp "%LOCALCLASSPATH%" org.apache.fop.cli.Main %FOP_CMD_LINE_ARGS%
+
+ENDLOCAL

Propchange: xmlgraphics/fop/trunk/fop.cmd
------------------------------------------------------------------------------
    svn:eol-style = CRLF

Propchange: xmlgraphics/fop/trunk/fop.cmd
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: xmlgraphics/fop/trunk/fop.js
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop.js?view=auto&rev=496842
==============================================================================
--- xmlgraphics/fop/trunk/fop.js (added)
+++ xmlgraphics/fop/trunk/fop.js Tue Jan 16 11:59:13 2007
@@ -0,0 +1,341 @@
+//   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.
+//   $Id$ -->
+
+// jscript to run FOP, adapted from the Jakarta-Ant project.
+
+// rpm_mode is irrelevant on Windows
+// var rpm_mode=true;
+var fop_exec_args = "";
+var no_config=false;
+var fop_exec_debug=false;
+var debug=false;
+var keep_open=false;
+var show_help=false;
+
+var config_wanted = new Array("FOP_HOME", "CLASSPATH", "FOP_HYPHENATION_PATH", "FOP_OPTS",
"JAVA_OPTS", "LOGCHOICE", "LOGLEVEL");
+
+// parse command-line arguments
+function read_args() {
+  var args = WScript.Arguments;
+  var named = new ActiveXObject("Scripting.Dictionary");
+  for (i = 0; i < args.length; i++) {
+	switch(args(i)) {
+	case "--debug":
+	  debug=true;
+	  break;
+	case "--execdebug":
+	  fop_exec_debug=true;
+	  break;
+	case "--keepopen":
+	  keep_open=true;
+	  break;
+	case "--noconfig":
+	  no_config=true;
+	  break;
+	case "-h":
+	case "--help":
+	case "--h":
+	case "-help":
+	  show_help=true;
+	  // fop_exec_args=fop_exec_args + " -h";
+	  break;
+	default:
+	  fop_exec_args=fop_exec_args + " " + args(i);
+	}
+  }
+  if (debug) {
+	WScript.Echo("debug: " + debug);
+	WScript.Echo("execdebug: " + fop_exec_debug);
+ 	WScript.Echo("keepopen: " + keep_open);
+ 	WScript.Echo("noconfig: " + no_config);
+	WScript.Echo("help: " + show_help);
+ 	WScript.Echo("fop arguments: " + fop_exec_args);
+  }
+}
+
+var help_text="Usage:\n"
+  + WScript.ScriptFullName + " [script options] [FOP options]\n"
+  + "Script Options:\n"
+  + "  --help, -h             print this message and FOP help\n"
+  + "  --debug                print debugging information for this launch script\n"
+  + "  --execdebug            print FOP exec line generated by this launch script\n"
+  + "  --keepopen             keep FOP's command window open\n"
+  + "  --noconfig             suppress reading of configuration file and registry";
+
+function read_environment() {
+  for (i in config_wanted) {
+	if (!config.Exists(config_wanted[i])) {
+		var env_var_string = "%" + config_wanted[i] + "%";
+		var env_var = shell.ExpandEnvironmentStrings(env_var_string);
+		if (env_var != "" && env_var != env_var_string) {
+		  config.Add(config_wanted[i], env_var);
+		  if (debug) {
+			WScript.Echo(config_wanted[i] + " env: "
+						 + config.Item(config_wanted[i]));
+		  }
+		}
+	}
+  }
+}
+
+function read_desktop(dtname) {
+  if (fs.FolderExists(dtname)) {
+	var fopname = fs.GetFolder(dtname).ParentFolder.Path
+	  + "\\Application Data\\Fop";
+	if (fs.FolderExists(fopname)) {
+	  var fop_conf_name = fs.GetFolder(fopname).Path + "\\fop.conf";
+	  if (fs.FileExists(fop_conf_name)) {
+		// source fop_conf_file
+		var conf_file = fs.openTextFile(fs.GetFile(fop_conf_name));
+		var conf_lines = new ActiveXObject("Scripting.Dictionary");
+		while (!conf_file.AtEndOfStream) {
+		  var line = conf_file.ReadLine();
+		  var m = line.match(/(.+?)=(.+)/);
+		  if (m != null) {
+			conf_lines.Add(m[1], m[2]);
+		  }
+		}
+		for (j in config_wanted) {
+		  if (!config.Exists(config_wanted[j])
+			  && conf_lines.Exists(config_wanted[j])) {
+			config.Add(config_wanted[j], conf_lines.Item(config_wanted[j]));
+			if (debug) {
+			  WScript.Echo(config_wanted[j] + " " + dts[i] + ": "
+						   + config.Item(config_wanted[i]));
+			}
+		  }
+		}
+	  }
+	}
+  }
+}
+
+function read_registry(section) {
+  for (j in config_wanted) {
+	if (!config.Exists(config_wanted[j])) {
+	  var reg_var;
+	  try {
+		reg_var = shell.RegRead(section + "\\Software\\Fop\\"
+								+ config_wanted[j]);
+		config.Add(config_wanted[j], reg_var);
+		if (debug) {
+		  WScript.Echo(config_wanted[j] + " " + rks[i] + ": "
+					   + config.Item(config_wanted[j]));
+		}
+	  } catch(e) {}
+	}
+  }
+}
+
+// construct FOP_HOME from the script folder
+function get_fop_home() {
+  if (!config.Exists("FOP_HOME")
+	  || !fs.FolderExists(config.Item("FOP_HOME"))) {
+	var fop_home = WScript.ScriptFullName;
+	fop_home = fop_home.substring(0, fop_home.length
+								  - WScript.ScriptName.length - 1);
+	if (config.Exists("FOP_HOME")) {
+	  config.Remove("FOP_HOME");
+	}
+	config.Add("FOP_HOME", fop_home);
+	if (debug) {
+	  WScript.Echo("FOP_HOME dyn: " + config.Item("FOP_HOME"));
+	}
+  }
+}
+
+function get_java_cmd() {
+  var java_home = shell.ExpandEnvironmentStrings("%JAVA_HOME%");
+  javacmd = "java";
+  if (java_home != "" && typeof(java_home) != "undefined"
+	  && fs.FolderExists(java_home)) {
+	var javacmd_candidate = java_home + "\\bin\\java.exe";
+	if (fs.FileExists(javacmd_candidate)) {
+	  javacmd = javacmd_candidate;
+	}
+  }
+  if (debug) {
+	WScript.Echo("java command: " + javacmd);
+  }
+}
+
+function get_local_classpath() {
+  if (config.Exists("CLASSPATH")) {
+	local_classpath = config.Item("CLASSPATH");
+	if (debug) {
+	  WScript.Echo("local classpath: " + local_classpath);
+	}
+  }
+
+  // add fop.jar, fop-sandbox and fop-hyph.jar, which reside in $FOP_HOME/build
+  var lcp = local_classpath;
+  local_classpath = config.Item("FOP_HOME") + "\\build\\fop.jar;"
+	+ config.Item("FOP_HOME") + "\\build\\fop-sandbox.jar;"
+	+ config.Item("FOP_HOME") + "\\build\\fop-hyph.jar";
+  if (lcp != "") {
+	local_classpath += ";" + lcp;
+  }
+  if (debug) {
+	WScript.Echo("local classpath: " + local_classpath);
+  }
+
+  // add in the dependency .jar files, which reside in $FOP_HOME/lib
+  var libdir_name = config.Item("FOP_HOME") + "\\lib";
+  var dirlibs;
+  if (fs.FolderExists(libdir_name)) {
+	dirlibs = fs.GetFolder(libdir_name).Files;
+	var e = new Enumerator(dirlibs);
+	for (; !e.atEnd(); e.moveNext()) {
+	  if (e.item().Name.match("\.jar$")) {
+		local_classpath = libdir_name + "\\" + e.item().Name + ";" + local_classpath;
+	  }
+	}
+	if (debug) {
+	  WScript.Echo("local classpath: " + local_classpath);
+	}
+  }
+
+  // add in user-defined hyphenation JARs
+  if (config.Exists("FOP_HYPHENATION_PATH")) {
+	local_classpath += ";" + config.Item("FOP_HYPHENATION_PATH");
+	if (debug) {
+	  WScript.Echo("local classpath: " + local_classpath);
+	}
+  }
+}
+
+// Execute fop via shell.Exec
+function fop_exec() {
+  var fop_exec_command = "\"" + javacmd + "\" "
+	+ (config.Exists("JAVA_OPTS")?config.Item("JAVA_OPTS") + " ":"")
+	+ (config.Exists("LOGCHOICE")?config.Item("LOGCHOICE") + " ":"")
+	+ (config.Exists("LOGLEVEL")?config.Item("LOGLEVEL") + " ":"")
+	"-classpath \"" + local_classpath + "\" "
+	+ (config.Exists("FOP_OPTS")?config.Item("FOP_OPTS"):"")
+	+ "org.apache.fop.cli.Main " + fop_exec_args;
+  if (debug || fop_exec_debug) {
+	WScript.Echo(fop_exec_command);
+  }
+
+  var fop_run = shell.Exec(fop_exec_command);
+  while (true) {
+	while (!fop_run.StdOut.AtEndOfStream) {
+	  WScript.Echo(fop_run.StdOut.ReadLine());
+	}
+	while (!fop_run.StdErr.AtEndOfStream) {
+	  WScript.Echo(fop_run.StdErr.ReadLine());
+	}
+	if (fop_run.Status == 1) {
+	  break;
+	}
+	WScript.Sleep(100);
+  }
+  if (debug) {
+	WScript.Echo("exit status: " + fop_run.ExitCode);
+  }
+}
+
+// Execute fop via shell.Run
+function fop_run() {
+  var fop_exec_command = "cmd /" + (keep_open?"K":"C") + " \""
+	+ "\"" + javacmd + "\" " 
+	+ (config.Exists("JAVA_OPTS")?config.Item("JAVA_OPTS") + " ":"")
+	+ (config.Exists("LOGCHOICE")?config.Item("LOGCHOICE") + " ":"")
+	+ (config.Exists("LOGLEVEL")?config.Item("LOGLEVEL") + " ":"")
+	+ "-classpath \"" + local_classpath + "\" "
+	+ (config.Exists("FOP_OPTS")?config.Item("FOP_OPTS") + " ":"")
+	+ "org.apache.fop.cli.Main " + fop_exec_args + "\"";
+  if (debug || fop_exec_debug) {
+	WScript.Echo(fop_exec_command);
+  }
+  var exit_code = shell.Run(fop_exec_command, 1, 1);
+  if (debug) {
+	WScript.Echo("exit status: " + exit_code);
+  } else {
+	if (exit_code != 0) {
+	  WScript.Echo("A FOP error occurred (FOP exit status: " + exit_code + ")\n"
+	               + "Use option --keepopen to see FOP's output\n"
+                       + "(that is two dashes)");
+	}
+  }
+}
+
+function get_log_choice() {
+  // The default commons logger for JDK1.4 is JDK1.4Logger.
+  // To use a different logger, uncomment the one desired below
+  if (!config.Exists("LOGCHOICE")) {
+	// config.Add("LOGCHOICE","\"-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog\"");
+	// config.Add("LOGCHOICE","\"-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog\"");
+	// config.Add("LOGCHOICE","\"-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger\"");
+	if (debug && config.Exists("LOGCHOICE")) {
+	  WScript.Echo("LOGCHOICE script: " + config.Item("LOGCHOICE"));
+	}
+  }
+}
+
+function get_log_level() {
+  // Logging levels
+  // Below option is only if you are using SimpleLog instead of the default JDK1.4 Logger.
+  // To set logging levels for JDK 1.4 Logger, edit the %JAVA_HOME%/JRE/LIB/logging.properties

+  // file instead.
+  // Possible SimpleLog values:  "trace", "debug", "info" (default), "warn", "error", or
"fatal".
+  if (!config.Exists("LOGLEVEL")) {
+	// config.Add("LOGLEVEL","\"-Dorg.apache.commons.logging.simplelog.defaultlog=INFO\"");
+	if (debug && config.Exists("LOGLEVEL")) {
+	  WScript.Echo("LOGLEVEL script: " + config.Item("LOGLEVEL"));
+	}
+  }
+}
+
+var shell = WScript.CreateObject("WScript.Shell");
+var fs = WScript.CreateObject("Scripting.FileSystemObject");
+
+// configuration
+var config = new ActiveXObject("Scripting.Dictionary");
+
+read_args();
+read_environment();
+if (!no_config) {
+  // read user and system-wide fop configurations
+  var spec = shell.SpecialFolders;
+  var dts = new Array("Desktop", "AllUsersDesktop");
+  for (i in dts) {
+	read_desktop(spec(dts[i]));
+  }
+  // read user and system-wide registry
+  var rks = new Array("HKCU", "HKLM");
+  for (i in rks) {
+	read_registry(rks[i]);
+  }
+}
+
+get_fop_home();
+get_log_choice();
+get_log_level();
+var javacmd = "";
+get_java_cmd();
+var local_classpath = "";
+get_local_classpath();
+
+// Show script help if requested
+if (show_help) {
+  // fop_exec_args = "";
+  keep_open = true;
+  WScript.Echo(help_text);
+}
+
+// fop_exec();
+fop_run();

Propchange: xmlgraphics/fop/trunk/fop.js
------------------------------------------------------------------------------
    svn:eol-style = CRLF

Propchange: xmlgraphics/fop/trunk/fop.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org


Mime
View raw message