You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/05/07 16:55:29 UTC

svn commit: r404778 [6/7] - in /incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows: ./ launch4j-2.1.1/ launch4j-2.1.1/bin/ launch4j-2.1.1/demo/ launch4j-2.1.1/demo/ConsoleApp/ launch4j-2.1.1/demo/ConsoleApp/l4j/ launch4j-2.1.1/demo/ConsoleApp...

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/ConfigFormImpl.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/ConfigFormImpl.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/ConfigFormImpl.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/ConfigFormImpl.java Sun May  7 07:55:12 2006
@@ -0,0 +1,320 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on May 10, 2005
+ */
+package net.sf.launch4j.formimpl;
+
+import java.awt.Color;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+
+import javax.swing.JFileChooser;
+import javax.swing.JRadioButton;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import net.sf.launch4j.FileChooserFilter;
+import net.sf.launch4j.binding.Binding;
+import net.sf.launch4j.binding.Bindings;
+import net.sf.launch4j.binding.IValidatable;
+import net.sf.launch4j.binding.Validator;
+import net.sf.launch4j.config.Config;
+import net.sf.launch4j.config.ConfigPersister;
+import net.sf.launch4j.config.Splash;
+import net.sf.launch4j.config.VersionInfo;
+import net.sf.launch4j.form.ConfigForm;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class ConfigFormImpl extends ConfigForm {
+	private final JFileChooser _fileChooser = new JFileChooser();
+	private final Bindings _bindings = new Bindings();
+
+	public ConfigFormImpl() {
+		_tab.setTitleAt(0, Messages.getString("tab.basic"));
+		_tab.setTitleAt(1, Messages.getString("tab.header"));
+		_tab.setTitleAt(2, Messages.getString("tab.jre"));
+		_tab.setTitleAt(3, Messages.getString("tab.splash"));
+		_tab.setTitleAt(4, Messages.getString("tab.version"));
+
+		_logSeparator.setText(Messages.getString("log"));
+		_outfileLabel.setText(Messages.getString("outfile"));
+		_outfileField.setToolTipText(Messages.getString("outfileTip"));
+		_errorTitleLabel.setText(Messages.getString("errorTitle"));
+		_errorTitleField.setToolTipText(Messages.getString("errorTitleTip"));
+		_customProcNameCheck.setText(Messages.getString("customProcName"));
+		_stayAliveCheck.setText(Messages.getString("stayAlive"));
+		_iconLabel.setText(Messages.getString("icon"));
+		_iconField.setToolTipText(Messages.getString("iconTip"));
+		_jarLabel.setText(Messages.getString("jar"));
+		_jarField.setToolTipText(Messages.getString("jarTip"));
+		_dontWrapJarCheck.setText(Messages.getString("dontWrapJar"));
+		_jarArgsLabel.setText(Messages.getString("jarArgs"));
+		_jarArgsField.setToolTipText(Messages.getString("jarArgsTip"));
+		_optionsLabel.setText(Messages.getString("options"));
+		_chdirLabel.setText(Messages.getString("chdir"));
+		_chdirField.setToolTipText(Messages.getString("chdirTip"));
+
+		_headerTypeLabel.setText(Messages.getString("headerType"));
+		_guiHeaderRadio.setText(Messages.getString("gui"));
+		_consoleHeaderRadio.setText(Messages.getString("console"));
+		_headerObjectsCheck.setText(Messages.getString("objectFiles"));
+		_libsCheck.setText(Messages.getString("libs"));
+		_linkerOptionsSeparator.setText(Messages.getString("linkerOptions"));
+		_jrePathLabel.setText(Messages.getString("jrePath"));
+		_jrePathField.setToolTipText(Messages.getString("jrePathTip"));
+		_jreMinLabel.setText(Messages.getString("jreMin"));
+		_jreMaxLabel.setText(Messages.getString("jreMax"));
+		_jvmArgsTextLabel.setText(Messages.getString("jvmArgs"));
+		_jvmArgsTextArea.setToolTipText(Messages.getString("jvmArgsTip"));
+		_initialHeapSizeLabel.setText(Messages.getString("initialHeapSize"));
+		_maxHeapSizeLabel.setText(Messages.getString("maxHeapSize"));
+		_addVarsLabel.setText(Messages.getString("addVariables"));
+		_addVarsLabel.setToolTipText(Messages.getString("addVariablesTip"));
+		_exeDirRadio.setToolTipText(Messages.getString("exeDirVarTip"));
+		_exeFileRadio.setToolTipText(Messages.getString("exeFileVarTip"));
+		_otherVarRadio.setText(Messages.getString("other"));
+		_otherVarRadio.setToolTipText(Messages.getString("otherTip"));
+		_otherVarField.setToolTipText(Messages.getString("otherVarTip"));
+		_addVarButton.setText(Messages.getString("add"));
+		_addVarButton.setToolTipText(Messages.getString("addVariablesTip"));
+
+		_splashCheck.setText(Messages.getString("enableSplash"));
+		_splashFileLabel.setText(Messages.getString("splashFile"));
+		_splashFileField.setToolTipText(Messages.getString("splashFileTip"));
+		_waitForWindowLabel.setText(Messages.getString("waitForWindow"));
+		_waitForWindowCheck.setText(Messages.getString("waitForWindowText"));
+		_timeoutLabel.setText(Messages.getString("timeout"));
+		_timeoutField.setToolTipText(Messages.getString("timeoutTip"));
+		_timeoutErrCheck.setText(Messages.getString("timeoutErr"));
+		_timeoutErrCheck.setToolTipText(Messages.getString("timeoutErrTip"));
+
+		_versionInfoCheck.setText(Messages.getString("addVersionInfo"));
+		_fileVersionLabel.setText(Messages.getString("fileVersion"));
+		_fileVersionField.setToolTipText(Messages.getString("fileVersionTip"));
+		_addVersionInfoSeparator.setText(Messages.getString("additionalInfo"));
+		_productVersionLabel.setText(Messages.getString("productVersion"));
+		_productVersionField.setToolTipText(Messages.getString("productVersionTip"));
+		_fileDescriptionLabel.setText(Messages.getString("fileDescription"));
+		_fileDescriptionField.setToolTipText(Messages.getString("fileDescriptionTip"));
+		_copyrightLabel.setText(Messages.getString("copyright"));
+		_txtFileVersionLabel.setText(Messages.getString("txtFileVersion"));
+		_txtFileVersionField.setToolTipText(Messages.getString("txtFileVersionTip"));
+		_txtProductVersionLabel.setText(Messages.getString("txtProductVersion"));
+		_txtProductVersionField.setToolTipText(Messages.getString("txtProductVersionTip"));
+		_productNameLabel.setText(Messages.getString("productName"));
+		_originalFilenameLabel.setText(Messages.getString("originalFilename"));
+		_originalFilenameField.setToolTipText(Messages.getString("originalFilenameTip"));
+		_internalNameLabel.setText(Messages.getString("internalName"));
+		_internalNameField.setToolTipText(Messages.getString("internalNameTip"));
+		_companyNameLabel.setText(Messages.getString("companyName"));
+
+		_dontWrapJarCheck.addChangeListener(new DontWrapJarChangeListener());
+
+		_outfileButton.addActionListener(new BrowseActionListener(
+				_outfileField, new FileChooserFilter("Windows executables (.exe)", ".exe")));
+		_jarButton.addActionListener(new BrowseActionListener(
+				_jarField, new FileChooserFilter("Jar files", ".jar")));
+		_iconButton.addActionListener(new BrowseActionListener(
+				_iconField, new FileChooserFilter("Icon files (.ico)", ".ico")));
+		_splashFileButton.addActionListener(new BrowseActionListener(
+				_splashFileField, new FileChooserFilter("Bitmap files (.bmp)", ".bmp")));
+
+		ActionListener al = new VariableActionListener();
+		_exeDirRadio.addActionListener(al);
+		_exeFileRadio.addActionListener(al);
+		_otherVarRadio.addActionListener(al);
+		_exeDirRadio.setSelected(true);
+		al.actionPerformed(null);
+		_addVarButton.addActionListener(new AddVariableActionListener());
+
+		_guiHeaderRadio.addChangeListener(new HeaderTypeChangeListener());
+		_headerObjectsCheck.addActionListener(new HeaderObjectsActionListener());
+		_libsCheck.addActionListener(new LibsActionListener());
+
+		_bindings.add("outfile", _outfileField)
+				.add("dontWrapJar", _dontWrapJarCheck)
+				.add("jar", _jarField)
+				.add("icon", _iconField)
+				.add("jarArgs", _jarArgsField)
+				.add("errTitle", _errorTitleField)
+				.add("chdir", _chdirField)
+				.add("customProcName", _customProcNameCheck)
+				.add("stayAlive", _stayAliveCheck)
+				.add("headerType", new JRadioButton[] {_guiHeaderRadio, _consoleHeaderRadio})
+				.add("headerObjects", "customHeaderObjects", _headerObjectsCheck, _headerObjectsTextArea)
+				.add("libs", "customLibs", _libsCheck, _libsTextArea)
+				.add("jre.path", _jrePathField)
+				.add("jre.minVersion", _jreMinField)
+				.add("jre.maxVersion", _jreMaxField)
+				.add("jre.initialHeapSize", _initialHeapSizeField)
+				.add("jre.maxHeapSize", _maxHeapSizeField)
+				.add("jre.args", _jvmArgsTextArea)
+				.addOptComponent("splash", Splash.class, _splashCheck)
+				.add("splash.file", _splashFileField)
+				.add("splash.waitForWindow", _waitForWindowCheck, true)
+				.add("splash.timeout", _timeoutField, "60")
+				.add("splash.timeoutErr", _timeoutErrCheck, true)
+				.addOptComponent("versionInfo", VersionInfo.class, _versionInfoCheck)
+				.add("versionInfo.fileVersion", _fileVersionField)
+				.add("versionInfo.productVersion", _productVersionField)
+				.add("versionInfo.fileDescription", _fileDescriptionField)
+				.add("versionInfo.internalName", _internalNameField)
+				.add("versionInfo.originalFilename", _originalFilenameField)
+				.add("versionInfo.productName", _productNameField)
+				.add("versionInfo.txtFileVersion", _txtFileVersionField)
+				.add("versionInfo.txtProductVersion", _txtProductVersionField)
+				.add("versionInfo.companyName", _companyNameField)
+				.add("versionInfo.copyright", _copyrightField);
+	}
+
+	private class DontWrapJarChangeListener implements ChangeListener {
+		public void stateChanged(ChangeEvent e) {
+			boolean dontWrap = _dontWrapJarCheck.isSelected();
+			_jarLabel.setText(dontWrap ? Messages.getString("jarPath")
+					: Messages.getString("jar"));
+			_jarField.setToolTipText(dontWrap ? Messages.getString("jarPathTip")
+					: Messages.getString("jarTip"));
+			_jarButton.setEnabled(!dontWrap);
+		}
+	}
+
+	private class BrowseActionListener implements ActionListener {
+		private final JTextField _field;
+		private final FileChooserFilter _filter;
+
+		public BrowseActionListener(JTextField field, FileChooserFilter filter) {
+			_field = field;
+			_filter = filter;
+		}
+
+		public void actionPerformed(ActionEvent e) {
+			if (!_field.isEnabled()) {
+				return;
+			}
+			_fileChooser.setFileFilter(_filter);
+			_fileChooser.setSelectedFile(new File(""));
+			int result = _field.equals(_outfileField)
+					? _fileChooser.showSaveDialog(MainFrame.getInstance())
+					: _fileChooser.showOpenDialog(MainFrame.getInstance());
+			if (result == JFileChooser.APPROVE_OPTION) {
+				_field.setText(_fileChooser.getSelectedFile().getPath());
+			}
+		}
+	}
+	
+	private class HeaderTypeChangeListener implements ChangeListener {
+		public void stateChanged(ChangeEvent e) {
+			Config c = ConfigPersister.getInstance().getConfig();
+			c.setHeaderType(_guiHeaderRadio.isSelected() ? Config.GUI_HEADER : Config.CONSOLE_HEADER);
+			if (!_headerObjectsCheck.isSelected()) {
+				Binding b = getBinding("headerObjects");
+				b.put(c);
+			}
+		}
+	}
+	
+	private class HeaderObjectsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			if (!_headerObjectsCheck.isSelected()) {
+				ConfigPersister.getInstance().getConfig().setHeaderObjects(null);
+				Binding b = getBinding("headerObjects");
+				b.put(ConfigPersister.getInstance().getConfig());
+			}
+		}
+	}
+
+	private class LibsActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			if (!_libsCheck.isSelected()) {
+				ConfigPersister.getInstance().getConfig().setLibs(null);
+				Binding b = getBinding("libs");
+				b.put(ConfigPersister.getInstance().getConfig());
+			}
+		}
+	}
+	
+	private class VariableActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			_otherVarField.setEnabled(_otherVarRadio.isSelected());
+		}
+	}
+	
+	private class AddVariableActionListener implements ActionListener {
+		private final Color _validColor = _otherVarField.getBackground();
+
+		public void actionPerformed(ActionEvent e) {
+			final int pos = _jvmArgsTextArea.getCaretPosition();
+			if (_exeDirRadio.isSelected()) {
+				_jvmArgsTextArea.insert("-Dlaunch4j.exedir=\"%EXEDIR%\"\n", pos);
+			} else if (_exeFileRadio.isSelected()) {
+				_jvmArgsTextArea.insert("-Dlaunch4j.exefile=\"%EXEFILE%\"\n", pos);
+			} else {
+				final String var = _otherVarField.getText()
+						.replaceAll("\"", "")
+						.replaceAll("%", "");
+				if (Validator.isEmpty(var)) {
+					signalViolation("specifyVar");
+					return;
+				}
+				final String prop = var.replaceAll(" ", ".")
+						.replaceAll("_", ".")
+						.toLowerCase();
+				_jvmArgsTextArea.insert("-Denv." + prop + "=\"%" + var + "%\"\n", pos);
+			}
+		}
+		
+		private void signalViolation(String code) {
+			_otherVarField.setBackground(Binding.INVALID_COLOR);
+			MainFrame.getInstance().warn(Messages.getString(code));
+			_otherVarField.setBackground(_validColor);
+			_otherVarField.requestFocusInWindow();
+		}
+	}
+
+	public void clear(IValidatable bean) {
+		_bindings.clear(bean);
+	}
+
+	public void put(IValidatable bean) {
+		_bindings.put(bean);
+	}
+
+	public void get(IValidatable bean) {
+		_bindings.get(bean);
+	}
+	
+	public boolean isModified() {
+		return _bindings.isModified();
+	}
+	
+	public JTextArea getLogTextArea() {
+		return _logTextArea;
+	}
+	
+	public Binding getBinding(String property) {
+		return _bindings.getBinding(property);
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/GlassPane.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/GlassPane.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/GlassPane.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/GlassPane.java Sun May  7 07:55:12 2006
@@ -0,0 +1,67 @@
+package net.sf.launch4j.formimpl;
+
+import java.awt.AWTEvent;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Toolkit;
+import java.awt.Window;
+import java.awt.event.AWTEventListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+
+import javax.swing.JComponent;
+import javax.swing.SwingUtilities;
+
+/**
+ * This is the glass pane class that intercepts screen interactions during
+ * system busy states.
+ * 
+ * Based on JavaWorld article by Yexin Chen.
+ */
+public class GlassPane extends JComponent implements AWTEventListener {
+	private final Window _window;
+
+	public GlassPane(Window w) {
+		_window = w;
+		addMouseListener(new MouseAdapter() {});
+		addKeyListener(new KeyAdapter() {});
+		setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+	}
+
+	/**
+	 * Receives all key events in the AWT and processes the ones that originated
+	 * from the current window with the glass pane.
+	 * 
+	 * @param event
+	 *            the AWTEvent that was fired
+	 */
+	public void eventDispatched(AWTEvent event) {
+		Object source = event.getSource();
+		if (event instanceof KeyEvent
+				&& source instanceof Component) {
+			/*
+			 * If the event originated from the window w/glass pane,
+			 * consume the event.
+			 */
+			if ((SwingUtilities.windowForComponent((Component) source) == _window)) {
+				((KeyEvent) event).consume();
+			}
+		}
+	}
+
+	/**
+	 * Sets the glass pane as visible or invisible. The mouse cursor will be set
+	 * accordingly.
+	 */
+	public void setVisible(boolean visible) {
+		if (visible) {
+			// Start receiving all events and consume them if necessary
+			Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK);
+		} else {
+			// Stop receiving all events
+			Toolkit.getDefaultToolkit().removeAWTEventListener(this);
+		}
+		super.setVisible(visible);
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/MainFrame.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/MainFrame.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/MainFrame.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/MainFrame.java Sun May  7 07:55:12 2006
@@ -0,0 +1,337 @@
+/*
+ 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+ 	Copyright (C) 2005 Grzegorz Kowal
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+/*
+ * Created on 2005-05-09
+ */
+package net.sf.launch4j.formimpl;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JToolBar;
+import javax.swing.UIManager;
+
+import com.jgoodies.plaf.Options;
+import com.jgoodies.plaf.plastic.PlasticXPLookAndFeel;
+
+import foxtrot.Task;
+import foxtrot.Worker;
+
+import net.sf.launch4j.Builder;
+import net.sf.launch4j.BuilderException;
+import net.sf.launch4j.ExecException;
+import net.sf.launch4j.FileChooserFilter;
+import net.sf.launch4j.Log;
+import net.sf.launch4j.Main;
+import net.sf.launch4j.Util;
+import net.sf.launch4j.binding.BindingException;
+import net.sf.launch4j.binding.InvariantViolationException;
+import net.sf.launch4j.config.Config;
+import net.sf.launch4j.config.ConfigPersister;
+import net.sf.launch4j.config.ConfigPersisterException;
+
+/**
+ * @author Copyright (C) 2005 Grzegorz Kowal
+ */
+public class MainFrame extends JFrame {
+	private static MainFrame _instance;
+
+	private final JToolBar _toolBar;
+	private final JButton _runButton;
+	private final ConfigFormImpl _configForm;
+	private final JFileChooser _fileChooser = new JFileChooser();
+	private File _outfile;
+	private boolean _saved = false;
+
+	public static void createInstance() {
+		try {
+			Toolkit.getDefaultToolkit().setDynamicLayout(true);
+			System.setProperty("sun.awt.noerasebackground","true"); //$NON-NLS-1$ //$NON-NLS-2$
+	
+			// JGoodies
+			Options.setDefaultIconSize(new Dimension(16, 16));		// menu icons
+			Options.setUseNarrowButtons(false);
+			Options.setPopupDropShadowEnabled(true);
+
+			UIManager.setLookAndFeel(new PlasticXPLookAndFeel());
+			_instance = new MainFrame();
+		} catch (Exception e) {
+			System.err.println(e);
+		}
+	}
+
+	public static MainFrame getInstance() {
+		return _instance;
+	}
+
+	public MainFrame() {
+		showConfigName(null);
+		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		addWindowListener(new ExitWindowListener());
+		setGlassPane(new GlassPane(this));
+		_fileChooser.setFileFilter(new FileChooserFilter(
+				Messages.getString("MainFrame.config.files"), //$NON-NLS-1$
+				new String[] {".xml", ".cfg"})); //$NON-NLS-1$ //$NON-NLS-2$
+
+		_toolBar = new JToolBar();
+		_toolBar.setFloatable(false);
+		_toolBar.setRollover(true);
+		addButton("images/new.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.new.config"), //$NON-NLS-1$
+				new NewActionListener());
+		addButton("images/open.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.open.config"), //$NON-NLS-1$
+				new OpenActionListener());
+		addButton("images/save.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.save.config"), //$NON-NLS-1$
+				new SaveActionListener());
+		_toolBar.addSeparator();
+		addButton("images/build.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.build.wrapper"), //$NON-NLS-1$
+				new BuildActionListener());
+		_runButton = addButton("images/run.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.test.wrapper"), //$NON-NLS-1$
+				new RunActionListener());
+		setRunEnabled(false);
+		_toolBar.addSeparator();
+		addButton("images/info.png", //$NON-NLS-1$
+				Messages.getString("MainFrame.about.launch4j"), //$NON-NLS-1$
+				new AboutActionListener());
+
+		_configForm = new ConfigFormImpl();
+		getContentPane().setLayout(new BorderLayout());
+		getContentPane().add(_toolBar, BorderLayout.NORTH);
+		getContentPane().add(_configForm, BorderLayout.CENTER);
+		ConfigPersister.getInstance().createBlank();
+		_configForm.clear(ConfigPersister.getInstance().getConfig());
+		pack();
+		Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
+		Dimension fr = getSize();
+		fr.height += 100;
+		setBounds((scr.width - fr.width) / 2, (scr.height - fr.height) / 2, fr.width, fr.height);
+		setVisible(true);
+	}
+
+	private JButton addButton(String iconPath, String tooltip, ActionListener l) {
+		ImageIcon icon = new ImageIcon(MainFrame.class.getClassLoader().getResource(iconPath));
+		JButton b = new JButton(icon);
+		b.setToolTipText(tooltip);
+		b.addActionListener(l);
+		_toolBar.add(b);
+		return b;
+	}
+	
+	public void info(String text) {
+		JOptionPane.showMessageDialog(this, 
+									text,
+									Main.PROGRAM_NAME,
+									JOptionPane.INFORMATION_MESSAGE);
+	}
+
+	public void warn(String text) {
+		JOptionPane.showMessageDialog(this, 
+									text,
+									Main.PROGRAM_NAME,
+									JOptionPane.WARNING_MESSAGE);
+	}
+
+	public void warn(InvariantViolationException e) {
+		e.getBinding().markInvalid();
+		warn(e.getMessage());
+		e.getBinding().markValid();
+	}
+
+	private boolean isModified() {
+		return (!_configForm.isModified())
+				|| JOptionPane.showConfirmDialog(MainFrame.this,
+						Messages.getString("MainFrame.discard.changes"), //$NON-NLS-1$
+						Messages.getString("MainFrame.confirm"), //$NON-NLS-1$
+						JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION;
+	}
+	
+	private boolean save() {
+		// XXX
+		try {
+			_configForm.get(ConfigPersister.getInstance().getConfig());
+			if (_fileChooser.showSaveDialog(MainFrame.this) == JOptionPane.YES_OPTION) {
+				File f = _fileChooser.getSelectedFile();
+				if (!f.getPath().endsWith(".xml")) { //$NON-NLS-1$
+					f = new File(f.getPath() + ".xml"); //$NON-NLS-1$
+				}
+				ConfigPersister.getInstance().save(f);
+				_saved = true;
+				showConfigName(f);
+				return true;
+			}
+			return false;
+		} catch (InvariantViolationException ex) {
+			warn(ex);
+			return false;
+		} catch (BindingException ex) {
+			warn(ex.getMessage());
+			return false;
+		} catch (ConfigPersisterException ex) {
+			warn(ex.getMessage());
+			return false;
+		}
+	}
+
+	private void showConfigName(File config) {
+		setTitle(Main.PROGRAM_NAME + " - " //$NON-NLS-1$
+				+ (config != null ? config.getName()
+						: Messages.getString("MainFrame.untitled")));  //$NON-NLS-1$
+	}
+
+	private void setRunEnabled(boolean enabled) {
+		if (!enabled) {
+			_outfile = null;
+		}
+		_runButton.setEnabled(enabled);
+	}
+
+	private class ExitWindowListener extends WindowAdapter {
+		public void windowClosing(WindowEvent e) {
+			if (isModified()) {
+				System.exit(0);
+			}
+		}
+	}
+
+	private class NewActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			if (isModified()) {
+				ConfigPersister.getInstance().createBlank();
+				_configForm.put(ConfigPersister.getInstance().getConfig());
+			}
+			_saved = false;
+			showConfigName(null);
+			setRunEnabled(false);
+		}
+	}
+
+	private class OpenActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			try {
+				if (isModified()
+						&& _fileChooser.showOpenDialog(MainFrame.this) == JOptionPane.YES_OPTION) {
+					final File f = _fileChooser.getSelectedFile(); 
+					if (f.getPath().endsWith(".xml")) { //$NON-NLS-1$
+						ConfigPersister.getInstance().load(f);	
+						_saved = true;
+					} else {
+						ConfigPersister.getInstance().loadVersion1(f);
+						_saved = false;
+					}
+					_configForm.put(ConfigPersister.getInstance().getConfig());
+					showConfigName(f);
+					setRunEnabled(false);
+				}
+			} catch (ConfigPersisterException ex) {
+				warn(ex.getMessage());
+			}
+		}
+	}
+	
+	private class SaveActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			save();
+		}
+	}
+	
+	private class BuildActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			final Log log = Log.getSwingLog(_configForm.getLogTextArea());
+			try {
+				if ((!_saved || _configForm.isModified())
+						&& !save()) {
+					return;
+				}
+				log.clear();
+				ConfigPersister.getInstance().getConfig().checkInvariants();
+				Builder b = new Builder(log);
+				_outfile = b.build();
+				setRunEnabled(ConfigPersister.getInstance().getConfig()
+						.getHeaderType() == Config.GUI_HEADER	// TODO fix console app test
+						&& (Util.WINDOWS_OS || !ConfigPersister.getInstance()
+												.getConfig().isDontWrapJar()));
+			} catch (InvariantViolationException ex) {
+				setRunEnabled(false);
+				ex.setBinding(_configForm.getBinding(ex.getProperty()));	// XXX
+				warn(ex);
+			} catch (BuilderException ex) {
+				setRunEnabled(false);
+				log.append(ex.getMessage());
+			}
+		}
+	}
+	
+	private class RunActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			try {
+				getGlassPane().setVisible(true);
+				Worker.post(new Task() {
+					public Object run() throws ExecException {
+						Log log = Log.getSwingLog(_configForm.getLogTextArea());
+						log.clear();
+						String path = _outfile.getPath();
+						if (Util.WINDOWS_OS) {
+							log.append(Messages.getString("MainFrame.executing") + path); //$NON-NLS-1$
+							Util.exec(path, log);
+						} else {
+							log.append(Messages.getString("MainFrame.jar.integrity.test") + path); //$NON-NLS-1$
+							Util.exec("java -jar " + path, log); //$NON-NLS-1$
+						}
+						return null;
+					}
+				});
+			} catch (Exception ex) {
+				// XXX errors logged by exec
+			} finally {
+				getGlassPane().setVisible(false);
+			}
+		};
+	}
+
+	private class AboutActionListener implements ActionListener {
+		public void actionPerformed(ActionEvent e) {
+			info(Main.PROGRAM_DESCRIPTION
+					+ "The following projects are used by launch4j...\n\n" //$NON-NLS-1$
+					+ "MinGW binutils (http://www.mingw.org/)\n" //$NON-NLS-1$
+					+ "Commons BeanUtils (http://jakarta.apache.org/commons/beanutils/)\n" //$NON-NLS-1$
+					+ "Commons Logging (http://jakarta.apache.org/commons/logging/)\n" //$NON-NLS-1$
+					+ "XStream (http://xstream.codehaus.org/)\n" //$NON-NLS-1$
+					+ "JGoodies Forms (http://www.jgoodies.com/freeware/forms/)\n" //$NON-NLS-1$
+					+ "JGoodies Looks (http://www.jgoodies.com/freeware/looks/)\n" //$NON-NLS-1$
+					+ "Foxtrot (http://foxtrot.sourceforge.net/)\n" //$NON-NLS-1$
+					+ "Nuvola Icon Theme (http://www.icon-king.com)"); //$NON-NLS-1$
+		}
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/Messages.java
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/Messages.java?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/Messages.java (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/Messages.java Sun May  7 07:55:12 2006
@@ -0,0 +1,23 @@
+package net.sf.launch4j.formimpl;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+	private static final String BUNDLE_NAME = "net.sf.launch4j.formimpl.messages"; //$NON-NLS-1$
+
+	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+			.getBundle(BUNDLE_NAME);
+
+	private Messages() {
+	}
+
+	public static String getString(String key) {
+		// TODO Auto-generated method stub
+		try {
+			return RESOURCE_BUNDLE.getString(key);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+}

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,111 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+tab.basic=Basic
+tab.header=Header
+tab.jre=JRE
+tab.splash=Splash
+tab.version=Version Info
+
+log=Log
+outfile=<html><b>Output file</b></html>
+outfileTip=Output executable file.
+errorTitle=Error title
+errorTitleTip=Launch4j signals errors using a message box, you can set it's title to the application's name.
+customProcName=Custom process name
+stayAlive=Stay alive after launching a GUI application
+icon=Icon
+iconTip=Application icon.
+jar=<html><b>Jar</b></html>
+jarPath=<html><b>Jar runtime path</b></html>
+jarTip=Application jar.
+jarPathTip=Runtime path of the jar relative to the executable. For example, if the executable launcher and the application jar named calc.exe and calc.jar are in the same directory, it would be: calc.jar.
+dontWrapJar=Dont't wrap the jar, launch only
+jarArgs=Jar arguments
+jarArgsTip=Constant command line arguments passed to the application.
+options=Options
+chdir=Change dir
+chdirTip=Change current directory to a location relative to the executable. Empty field has no effect, . - changes directory to the exe location.
+
+headerType=Header type
+gui=GUI
+console=Console
+objectFiles=Object files
+libs=w32api
+linkerOptions=Custom header - linker options
+jrePath=<html><b>Emb. JRE path</b></html>
+jrePathTip=Embedded JRE path relative to the executable.
+jreMin=<html><b>Min JRE version</b></html>
+jreMax=Max JRE version
+jvmArgs=JVM arguments
+jvmArgsTip=Accepts everything you would normally pass to java/javaw launcher: assertion options, system properties and X options.
+initialHeapSize=Initial heap size
+maxHeapSize=Max heap size
+addVariables=Add variables
+addVariablesTip=Add special variable or map environment variables to system properties.
+exeDirVarTip=Executable's runtime directory path.
+exeFileVarTip=Executable's runtime file path (directory and filename).
+other=Other
+otherTip=Map an environment variable to a system property.
+otherVarTip=Environment variable to map.
+add=Add
+specifyVar=Specify environment variable to add.
+
+enableSplash=Enable splash screen
+splashFile=Splash file
+splashFileTip=Splash screen file in BMP format.
+waitForWindow=Wait for window
+waitForWindowText=Close splash screen when an application window appears
+timeout=Timeout [s]
+timeoutTip=Number of seconds after which the splash screen must close. Splash timeout may cause an error depending on splashTimeoutErr property.
+timeoutErr=Signal error on timeout
+timeoutErrTip=True signals an error on splash timeout, false closes the splash screen quietly.
+
+addVersionInfo=Add version information
+fileVersion=File version
+fileVersionTip=Version number 'x.x.x.x'
+additionalInfo=Additional information
+productVersion=Product version
+productVersionTip=Version number 'x.x.x.x'
+fileDescription=File description
+fileDescriptionTip=File description presented to the user.
+copyright=Copyright
+txtFileVersion=Free form
+txtFileVersionTip=Free form file version, for example '1.20.RC1'.
+txtProductVersion=Free form
+txtProductVersionTip=Free form product version, for example '1.20.RC1'.
+productName=Product name
+originalFilename=Original filename
+originalFilenameTip=Original name of the file without the path. Allows to determine whether a file has been renamed by a user.
+internalName=Internal name
+internalNameTip=Internal name without extension, original filename or module name for example.
+companyName=Company name
+
+MainFrame.config.files=launch4j config files (.xml, .cfg)
+MainFrame.new.config=New configuration
+MainFrame.open.config=Open configuration or import 1.x
+MainFrame.save.config=Save configuration
+MainFrame.build.wrapper=Build wrapper
+MainFrame.test.wrapper=Test wrapper
+MainFrame.about.launch4j=About launch4j
+MainFrame.discard.changes=Discard changes?
+MainFrame.confirm=Confirm
+MainFrame.untitled=untitled
+MainFrame.executing=Executing: 
+MainFrame.jar.integrity.test=Jar integrity test, executing: 

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages_es.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages_es.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages_es.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/formimpl/messages_es.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,105 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+# 	Spanish translation (C) 2005 Patricio Martínez Ros
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+tab.basic = B\u00E1sico
+tab.header = Cabecera
+tab.jre = JRE
+tab.splash = Pantalla de bienvenida
+tab.version = Informaci\u00F3n de la versi\u00F3n
+log = Registro
+outfile = <html><b>Fichero de salida</b></html>
+outfileTip = Fichero ejecutable de salida.
+errorTitle = T\u00EDtulo de error
+errorTitleTip = Launch4j indica los errores usando una ventana de mensaje, usted puede ponerle el nombre de la aplicaci\u00F3n a esta ventana.
+customProcName = Nombre personalizado del proceso
+stayAlive = Mantener abierto despu\u00E9s de lanzar una aplicaci\u00F3n GUI
+icon = Icono
+iconTip = Icono de la aplicaci\u00F3n.
+jar = <html><b>Jar</b></html>
+jarPath = <html><b>Ruta del jar</b></html>
+jarTip = Jar de la aplicaci\u00F3n.
+jarPathTip = Ruta del jar relativa al ejecutable. Por ejemplo, si el lanzador ejecutable y el jar de la aplicaci\u00F3n, llamados calc.exe y calc.jar respectivamente, est\u00E1n en el mismo directorio, ser\u00EDa\: calc.jar.
+dontWrapJar = No empaquetar el jar, s\u00F3lo lanzar
+jarArgs = Argumentos del jar
+jarArgsTip = Argumentos de l\u00EDnea de \u00F3rdenes pasados a la aplicaci\u00F3n.
+options = Opciones
+chdir = Cambiar al directorio
+chdirTip = Cambia el directorio actual a la localizaci\u00F3n relativa al ejecutable. Si el campo se deja vac\u00EDo, no tiene efecto, . - cambia el directorio a la localizaci\u00F3n del exe.
+headerType = Tipo de cabecera
+gui = GUI
+console = Consola
+objectFiles = Ficheros objeto
+libs = w32api
+linkerOptions = Cabecera personalizada - opciones del enlazador
+jrePath = <html><b>Ruta del JRE</b></html>
+jrePathTip = Ruta relativa al ejecutable del JRE.
+jreMin = <html><b>Versi\u00F3n m\u00EDnima del JRE</b></html>
+jreMax = Versi\u00F3n m\u00E1xima del JRE
+jvmArgs = Argumentos de la JVM
+jvmArgsTip = Acepta cualquier argumento que normalmente se le pasar\u00EDa al lanzador java/javaw\: opciones assertion, propiedades de sistema y opciones X.
+initialHeapSize = Tama\u00F1o inicial de la pila
+maxHeapSize = Tama\u00F1o m\u00E1ximo de la pila
+addVariables = A\u00F1adir variables
+addVariablesTip = A\u00F1adir una variable especial o mapear variables de entorno a las propiedades del sistema.
+exeDirVarTip = Ruta del directorio del ejecutable.
+exeFileVarTip = Ruta del fichero ejecutable (directorio y nombre del fichero).
+other = Otra
+otherTip = Mapear una variable de entorno a una propiedad del sistema.
+otherVarTip = Variable de entorno que mapear.
+add = A\u00F1adir
+specifyVar = Especificar variable de entorno que a\u00F1adir.
+enableSplash = Activar pantalla de bienvenida
+splashFile = Imagen
+splashFileTip = Imagen en formato BMP para la pantalla de bienvenida.
+waitForWindow = Esperar la ventana
+waitForWindowText = Cerrar la pantalla de bienvenida cuando aparezca una ventana de la aplicaci\u00F3n
+timeout = Tiempo de espera [s]
+timeoutTip = Numero de segundos despu\u00E9s de los que la pantalla de bienvenida se debe cerrar. Esta propiedad puede causar provocar un error dependiendo de la propiedad splashTimeoutErr.
+timeoutErr = Se\u00F1al de error asociada al tiempo de espera
+timeoutErrTip = Marcado (true) se\u00F1ala un error despu\u00E9s del tiempo de espera de la pantalla de bienvenida, no marcado (false) cierra la pantalla de bienvenida silenciosamente
+addVersionInfo = A\u00F1ade informaci\u00F3n sobre la versi\u00F3n
+fileVersion = Versi\u00F3n del fichero
+fileVersionTip = N\u00FAmero de versi\u00F3n 'x.x.x.x'
+additionalInfo = Informaci\u00F3n adicional
+productVersion = Versi\u00F3n del producto
+productVersionTip = N\u00FAmero de versi\u00F3n 'x.x.x.x'
+fileDescription = Descripci\u00F3n del fichero
+fileDescriptionTip = Descripci\u00F3n del fichero que se le muestra al usuario.
+copyright = Copyright
+txtFileVersion = Forma libre
+txtFileVersionTip = Forma libre de versi\u00F3n, por ejemplo '1.20.RC1'.
+txtProductVersion = Forma libre
+txtProductVersionTip = Forma libre del producto, por ejemplo '1.20.RC1'.
+productName = Nombre del producto
+originalFilename = Nombre original del fichero
+originalFilenameTip = Nombre original del fichero sin la ruta. Permite determinar si un fichero ha sido renombrado por un usuario.
+internalName = Nombre interno
+internalNameTip = Nombre interno sin extensi\u00F3n, el nombre original del fichero o el m\u00F3dulo, por ejemplo.
+companyName = Nombre de la organizaci\u00F3n
+MainFrame.config.files = Ficheros de configuraci\u00F3n de launch4j (.xml, .cfg)
+MainFrame.new.config = Nueva configuraci\u00F3n
+MainFrame.open.config = Abrir configuraci\u00F3n o importar 1.x
+MainFrame.save.config = Guardar configuraci\u00F3n
+MainFrame.build.wrapper = Construir el empaquetador
+MainFrame.test.wrapper = Comprobar el empaquetador
+MainFrame.about.launch4j = Acerca de launch4j
+MainFrame.discard.changes = \u00BFDescartar cambios?
+MainFrame.confirm = Confirmar
+MainFrame.untitled = Sin nombre
+MainFrame.executing = Ejecutando\: 
+MainFrame.jar.integrity.test = Prueba de integridad jar, ejecutando\: 

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,28 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+Main.usage=usage
+
+Builder.compiling.resources=Compiling resources
+Builder.linking=Linking
+Builder.wrapping=Wrapping
+Builder.success=Successfully created 
+Builder.generated.resource.file=Generated resource file...\n
+
+Util.exec.failed=Exec failed

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages_es.properties
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages_es.properties?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages_es.properties (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/src/net/sf/launch4j/messages_es.properties Sun May  7 07:55:12 2006
@@ -0,0 +1,28 @@
+#
+# 	launch4j :: Cross-platform Java application wrapper for creating Windows native executables
+# 	Copyright (C) 2005 Grzegorz Kowal
+#
+# 	This program is free software; you can redistribute it and/or modify
+# 	it under the terms of the GNU General Public License as published by
+# 	the Free Software Foundation; either version 2 of the License, or
+# 	(at your option) any later version.
+#
+# 	This program is distributed in the hope that it will be useful,
+# 	but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# 	GNU General Public License for more details.
+#
+# 	You should have received a copy of the GNU General Public License
+# 	along with this program; if not, write to the Free Software
+# 	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+Main.usage=Uso
+
+Builder.compiling.resources=Compilando recursos
+Builder.linking=Enlazando
+Builder.wrapping=Empaquetando
+Builder.success=Creado con \ufffdxito 
+Builder.generated.resource.file=Fichero de recursos generado...\n
+
+Util.exec.failed=Fallo en la ejecuci\ufffd

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/uninst.exe
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/uninst.exe?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/uninst.exe
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/MinGW.LICENSE.txt
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/MinGW.LICENSE.txt?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/MinGW.LICENSE.txt (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/MinGW.LICENSE.txt Sun May  7 07:55:12 2006
@@ -0,0 +1,25 @@
+MinGW - Licensing Terms
+
+Various pieces distributed with MinGW come with its own copyright and license:
+
+Basic MinGW runtime
+    MinGW base runtime package is uncopyrighted and placed in the public domain.
+    This basically means that you can do what you want with the code.
+
+w32api
+    You are free to use, modify and copy this package.
+    No restrictions are imposed on programs or object files compiled with this library.
+    You may not restrict the the usage of this library.
+    You may distribute this library as part of another package or as a modified package
+    if and only if you do not restrict the usage of the portions consisting
+    of this (optionally modified) library.
+    If distributed as a modified package then this file must be included.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty
+    of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+MinGW profiling code
+    MinGW profiling code is distributed under the GNU General Public License. 
+
+The development tools such as GCC, GDB, GNU Make, etc all covered by GNU General Public License.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/MinGW.LICENSE.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libadvapi32.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libadvapi32.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libadvapi32.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libgcc.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libgcc.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libgcc.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libkernel32.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libkernel32.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libkernel32.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmingw32.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmingw32.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmingw32.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmsvcrt.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmsvcrt.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libmsvcrt.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libshell32.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libshell32.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libshell32.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libuser32.a
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libuser32.a?rev=404778&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/w32api/libuser32.a
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog.html
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog.html?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog.html (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog.html Sun May  7 07:55:12 2006
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+	<head>
+		<title>Launch4j :: Cross-platform Java application wrapper for creating Windows native executables</title>
+		<meta name="description" content="Cross-platform java application wrapper for creating Windows native executables. Features native splash screen, application icon, small stub.">
+		<meta name="keywords" content="Java, java, exe, native, windows, Windows, jar, wrap, wrapper, launch, run, execute, executable, splash, icon, ico, ant, build, script, deploy, free, freeware, open source, gpl, GPL, lgpl, LGPL, sourceforge, c++, C++, W2K, WXP, W98, linux, Linux">
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="author" content="Grzegorz Kowal" >
+		<link rel="stylesheet" type="text/css" href="style.css">
+	</head>
+	<body>
+		<div id="container">
+			<div id="top">
+				<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">2.1.1</span>
+			</div>
+			<div id="leftnav">
+				<ul>
+					<li><a href="index.html">Home</a></li>
+					<li><a href="docs.html">Docs</a></li>
+					<li><a href="changelog.html">Changelog</a></li>
+					<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
+					<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&amp;package_id=152236">Download</a></li>
+					<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
+					<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
+					<li><a href="http://sourceforge.net/tracker/?atid=613100&amp;group_id=95944">Bug tracker</a></li>
+					<li><a href="links.html">Links</a></li>
+				</ul>
+				<ul style="margin-top: 20px; font-size: 75%">
+					<li><a href="index.html">English</a></li>
+					<li><a href="index_es.html">Español</a></li>
+				</ul>
+			</div>
+			<div id="content">
+<h2>Changelog</h2>
+
+<h4>Changes in version 2.1.1 (25-01-2006)</h4>
+<ul class="changes">
+	<li>Fixed bug #1402748. Validation error occurred when using Ant task with
+		embedded config and dontWrapJar option (found by Chris Nokleberg).</li>
+</ul>
+
+<h4>Changes in version 2.1.0 (10-01-2006)</h4>
+<ul class="changes">
+	<li><b>More features and smaller header: 18 KB!!</b></li>
+	<li>Added launcher mode, you can choose whether or not to wrap the jar.</li>
+	<li>Spanish translation of the website/docs and program messages
+		(Patricio Martínez Ros).</li>
+	<li>JRE's bin directory is appended to the Path environment variable
+		(Ianiv Schweber).</li>
+	<li>Added special variables EXEDIR and EXEFILE that hold the executable's
+		directory and full path.</li>
+	<li>Support for mapping environment variables to system properties.</li>
+	<li>Added debug launching mode - various information is displayed before
+		starting the Java application.</li>
+	<li>Fixed min/max JRE version checking, previous versions allowed these
+		to be equal (found by Ryan).</li>
+	<li>Bug fixed. Quotes in jar/JVM arguments were handled incorrectly (found by Juan Alvarez Ferrando).</li>
+	<li>A few other enhancements.</li>
+</ul>
+
+<h4>Changes in version 2.0.0 (31-10-2005)</h4>
+<ul class="changes">
+	<li>Launch4j for Mac OS X is available thanks to Peter Centgraf.</li>
+	<li>Added support for custom headers.</li>
+	<li>Fixed bug #1343908, command line arguments with spaces were handled
+		incorrectly by the console header (found by Oliver Schaefer / Steve Alberty).</li>
+	<li>Fixed stdin redirection bug (found by Timo Santasalo).</li>
+</ul>
+
+<h4>Changes in version 2.0 RC3 (13-08-2005) - final RC</h4>
+<ul class="changes">
+	<li>Correct handling of pathnames with spaces.</li>
+	<li>Fixed the '%20' pathname bug.</li>
+	<li>Fixed basedir bug (Richard Xing).</li>
+	<li>Splash screen can be closed when the application window becomes visible
+		with out specifying it's title (Martin Busik).
+		Update your config file: <em>&lt;waitForTitle&gt;title&lt;/waitForTitle&gt;</em>
+		is now <em>&lt;waitForWindow&gt;true&lt;/waitForWindow&gt;</em>.
+	</li>
+	<li>Fixed build.bat files in demo directories.</li>
+</ul>
+
+<h4>Changes in version 2.0 RC2 (21-06-2005)</h4>
+<ul class="changes">
+	<li>chdir allows to change the current directory to arbitrary paths
+		relative to the executable (FR #1144907). It's incompatible with
+		previous versions, update your config file:
+		<em>&lt;chdir&gt;true&lt;/chdir&gt;</em>
+		is now <em>&lt;chdir&gt;.&lt;/chdir&gt;</em>.
+	</li>
+	<li>Embedded JRE path no longer depends on chdir function.</li>
+	<li>Fixed Ant task bug, build files outside launch4j's directory
+		wouldn't work. Josh Elsasser submitted a patch that works without
+		setting launch4j's home dir in the build file. Thanks!
+	</li>
+	<li>Removed static edge from splash screen (Serge Baranov).</li>
+	<li>Program checks that the output file path doesn't contain spaces.</li>
+	<li>Fixed a NPE bug caused by a missing maxVersion property
+		(found by Morgan Schweers).
+	</li>
+	<li>Fixed relative JRE path bug (found by Nili_).</li>
+	<li>Cleaned up the Builder class.</li>
+	<li>Fixed Ant task NPE where the config was entirely defined in the
+		build file (Josh Elsasser).
+	</li>
+</ul>
+
+<h4>Changes in version 2.0 RC (07-06-2005)</h4>
+<ul class="changes">
+	<li>Added an Ant task for better build integration.</li>
+	<li>Added 2.x documentation.</li>
+	<li>Updated the demo configuration files.</li>
+	<li>Fixed issues with relative paths in the configuration.</li>
+	<li>Removed the '-1' option in console mode.</li>
+	<li>Minor fixes.</li>
+</ul>
+
+<h4>Changes in version 2.0 beta2 (23-05-2005)</h4>
+<ul class="changes">
+	<li># comments are recognized when importing 1.x cfg files.</li>
+	<li>Added version information.</li>
+	<li>Resource file is displayed when a resource error occurs.</li>
+	<li>Fixed a bug found by Max, options on the first tab were always enabled.</li>
+</ul>
+
+<h4>Changes in version 2.0 beta1 (13-05-2005)</h4>
+<ul class="changes">
+	<li>Completely new, cross-platform wrapper - create windows executables on Linux.</li>
+	<li>New .xml configuration file.</li>
+	<li>Application icon with multiple resolutions and color depths.</li>
+	<li>Swing GUI interface.</li>
+	<li>Header compiled with MinGW port of gcc instead of VC++.</li>
+</ul>
+
+<h4>Changes in version 1.4.2 (12-03-2005)</h4>
+<ul class="changes">
+	<li>Fixed bug #1158143, stayAlive without a splash screen caused
+		an infinite loop (found by Gregory Kotsaftis).
+	</li>
+</ul>
+
+<h4>Changes in version 1.4.1 (04-03-2005)</h4>
+<ul class="changes">
+	<li>Fixed bug #1119040, buffer for reading config properties
+		was too short (found by Tom Jensen and Neil).
+	</li>
+	<li>Added configurable splash timeout (FR #1102951).</li>
+	<li>Added option to disable the error message on splash timeout (FR #1109159).</li>
+	<li>Option to keep the gui launcher 'alive' after starting an application (FR #1124653).</li>
+	<li>Removed version info.</li>
+	<li>'waitfor' property is now optional.</li>
+</ul>
+
+<h4>Changes in version 1.4.0 (26-01-2005)</h4>
+<ul class="changes">
+	<li>Removed .lch4j suffix from process name, now it has the
+		form of the executable filename. The temporary launchers are stored in
+		launch4j-tmp directory (suggested by Emmanuel).
+	</li>
+	<li>Added support for console apps (FR #1050053).</li>
+</ul>
+
+<h4>Changes in version 1.3.1 (05-11-2004)</h4>
+<ul class="changes">
+	<li>Fixed a bug where explorer window was opened instead of
+		launching the application when setProcName was set to false
+		(found by Rob Jones).
+	</li>
+	<li>Fixed temporary launcher deletion bug.</li>
+</ul>
+
+<h4>Changes in version 1.3.0 (01-11-2004)</h4>
+<ul class="changes">
+	<li>Now you can configure launch4j to:
+		<ul class="changes">
+			<li>Use a bundled JRE.</li>
+			<li>Search for java, show an error message if the
+				right version cannot be found and open the java download page.</li>
+			<li>And a feature you asked for: use bundled JRE, if
+				that fails search for java and bring up the java download page on error.</li>
+		</ul>
+	</li>
+	<li>Enhanced code that sets the custom process name. In
+		case launch4j can't refresh the temporary launcher, bundled JRE on a
+		read only file system for example, it will use one created previously,
+		if it's present and has the correct size. If not, launching will still
+		continue, but with javaw.exe process name.Temporary launchers are
+		now created in the jre directory instead of jre/bin.
+	</li>
+	<li>errTitle property allows to set the title of the error message box.</li>
+</ul>
+
+<h4>Changes in version 1.2.1 (25-09-2004)</h4>
+<ul class="changes">
+	<li>Bugfix that allows launching from command line using short
+		name (#1026514 / found by Zach Del)
+	</li>
+</ul>
+
+<h4>Changes in version 1.2.0 (10-09-2004)</h4>
+<ul class="changes">
+	<li><strong>Custom process name</strong> (<i>myapp.lch4j.exe</i>)</li>
+	<li><strong>9 KB stub!</strong></li>
+	<li>Jar arguments</li>
+	<li>Bugfix that allows launching from command line.</li>
+	<li>Hide splash on javaw error.</li>
+	<li>Easier configuration with case insensitive parameters + show unrecognized parameter.</li>
+	<li>12 KB demo application, 34 KB with splash screen.</li>
+	<li>Configuration parameter <em>'args'</em> changed to <em>'jvmArgs'</em></li>
+</ul>
+			</div>
+			<div class="footer">
+            	Copyright &copy; 2005-2006 Grzegorz Kowal
+            	<p style="margin-top: 2em">
+            		<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&amp;type=4" alt="sf.net"></a>
+            		<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
+            		<a href="http://validator.w3.org/check?uri=referer"><img style="width: 88px; height: 31px; border: none; margin-left: 5%" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
+            	</p>
+			</div>
+		</div>
+	</body>
+</html>

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog_es.html
URL: http://svn.apache.org/viewcvs/incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog_es.html?rev=404778&view=auto
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog_es.html (added)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog_es.html Sun May  7 07:55:12 2006
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+	<head>
+		<title>Launch4j :: Empaquetador cross-platform de aplicaciones Java para crear ejecutables nativos de Windows</title>
+		<meta name="description" content="Empaquetador cross-platform de aplicaciones Java para crear ejecutables nativos de Windows. Con funcionalidad para pantallas de bienvenida nativas, icono de aplicación, empaquetado de poco tamaño.">
+		<meta name="keywords" content="Java, java, exe, native, windows, Windows, jar, wrap, wrapper, launch, run, execute, executable, splash, icon, ico, ant, build, script, deploy, free, freeware, open source, gpl, GPL, lgpl, LGPL, sourceforge, c++, C++, W2K, WXP, W98, linux, Linux">
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<meta name="author" content="Grzegorz Kowal" >
+		<link rel="stylesheet" type="text/css" href="style.css">
+	</head>
+	<body>
+		<div id="container">
+			<div id="top">
+				<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">2.1.1</span>
+			</div>
+			<div id="leftnav">
+				<ul>
+					<li><a href="index_es.html">Inicio</a></li>
+					<li><a href="docs_es.html">Documentación</a></li>
+					<li><a href="changelog_es.html">Historial de cambios</a></li>
+					<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Capturas de pantalla</a></li>
+					<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=152236">Descarga</a></li>
+					<li><a href="http://sourceforge.net/forum/?group_id=95944">Soporte</a></li>
+					<li><a href="http://sourceforge.net/projects/launch4j">Resumen del proyecto</a></li>
+					<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Informes de errores</a></li>
+					<li><a href="links_es.html">Enlaces</a></li>
+				</ul>
+				<ul style="margin-top: 20px; font-size: 75%">
+					<li><a href="index.html">English</a></li>
+					<li><a href="index_es.html">Español</a></li>
+				</ul>
+			</div>
+			<div id="content">
+<h2>Historial de cambios</h2>
+
+<h4>Cambios en la versión 2.1.1 (25-01-2006)</h4>
+<ul class="changes">
+	<li>Error #1402748 corregido. Error de validación ocurrido al usar una tarea Ant con
+		la configuración embebida y la opción dontWrapJar (encontrado por Chris Nokleberg).</li>
+</ul>
+
+<h4>Cambios en la versión 2.1.0 (10-01-2006)</h4>
+<ul class="changes">
+	<li>¡¡Más funcionalidades y cabecera más pequeña - 18 KB!!
+	<li>Se ha añadido un modo lanzador, se puede elegir si empaquetar o no el
+	jar.</li>
+	<li>Traducción al español de la web/documentación y los mensajes del
+	programa
+		(Patricio Martínez Ros).</li>
+	<li>El directorio bin del JRE se une a la variable de entorno Path
+		(Ianiv Schweber).</li>
+	<li>Variables especiales EXEDIR y EXEFILE añadidas, que guardan el
+	directorio y la ruta completa del ejecutable.</li>
+	<li>Se pueden copiar las variables de entorno en las propiedades del sistema.</li>
+	<li>Nuevo lanzamiento en modo depuración - se muestra diversa información
+	antes de iniciar la aplicación Java.</li>
+	<li>Comprobación del mínimo/máximo del JRE, en versiones anteriores estaba
+	permitido que estas fueran iguales (encontrado por Ryan).</li>
+	<li>Error reparado. Las comillas en los argumentos jar/JVM no se manejaban
+	correctamente (encontrado por Juan Alvarez Ferrando).</li>
+</ul>
+
+<h4>Cambios en la versión 2.0.0 (31-10-2005)</h4>
+<ul class="changes">
+	<li>Launch4j para Mac OS X está disponible gracias a Peter Centgraf.</li>
+	<li>Soporte para cabeceras personalizadas.</li>
+	<li>Error #1343908 reparado, los argumentos con espacios de la línea de
+	órdenes no eran manejados correctamente por la cabecera de consola (encontrado
+	por Oliver Schaefer / Steve Alberty).</li>
+	<li>Error en la redirección de la entrada estándar reparado (encontrado por by Timo Santasalo).</li>
+</ul>
+
+<h4>Cambios en la versión 2.0 RC3 (13-08-2005) - final RC</h4>
+<ul class="changes">
+	<li>Correct handling of pathnames with spaces.</li>
+	<li>Fixed the '%20' pathname bug.</li>
+	<li>Fixed basedir bug (Richard Xing).</li>
+	<li>Splash screen can be closed when the application window becomes visible
+		with out specifying it's title (Martin Busik).
+		Update your config file: <em>&lt;waitForTitle&gt;title&lt;/waitForTitle&gt;</em>
+		is now <em>&lt;waitForWindow&gt;true&lt;/waitForWindow&gt;</em>.
+	</li>
+	<li>Fixed build.bat files in demo directories.</li>
+</ul>
+
+<h4>Cambios en la versión 2.0 RC2 (21-06-2005)</h4>
+<ul class="changes">
+	<li>chdir allows to change the current directory to arbitrary paths
+		relative to the executable (FR #1144907). It's incompatible with
+		previous versions, update your config file:
+		<em>&lt;chdir&gt;true&lt;/chdir&gt;</em>
+		is now <em>&lt;chdir&gt;.&lt;/chdir&gt;</em>.
+	</li>
+	<li>Embedded JRE path no longer depends on chdir function.</li>
+	<li>Fixed Ant task bug, build files outside launch4j's directory
+		wouldn't work. Josh Elsasser submitted a patch that works without
+		setting launch4j's home dir in the build file. Thanks!
+	</li>
+	<li>Removed static edge from splash screen (Serge Baranov).</li>
+	<li>Program checks that the output file path doesn't contain spaces.</li>
+	<li>Fixed a NPE bug caused by a missing maxVersion property
+		(found by Morgan Schweers).
+	</li>
+	<li>Fixed relative JRE path bug (found by Nili_).</li>
+	<li>Cleaned up the Builder class.</li>
+	<li>Fixed Ant task NPE where the config was entirely defined in the
+		build file (Josh Elsasser).
+	</li>
+</ul>
+
+<h4>Cambios en la versión 2.0 RC (07-06-2005)</h4>
+<ul class="changes">
+	<li>Added an Ant task for better build integration.</li>
+	<li>Added 2.x documentation.</li>
+	<li>Updated the demo configuration files.</li>
+	<li>Fixed issues with relative paths in the configuration.</li>
+	<li>Removed the '-1' option in console mode.</li>
+	<li>Minor fixes.</li>
+</ul>
+
+<h4>Cambios en la versión 2.0 beta2 (23-05-2005)</h4>
+<ul class="changes">
+	<li># comments are recognized when importing 1.x cfg files.</li>
+	<li>Added version information.</li>
+	<li>Resource file is displayed when a resource error occurs.</li>
+	<li>Fixed a bug found by Max, options on the first tab were always enabled.</li>
+</ul>
+
+<h4>Cambios en la versión 2.0 beta1 (13-05-2005)</h4>
+<ul class="changes">
+	<li>Completely new, cross-platform wrapper - create windows executables on Linux.</li>
+	<li>New .xml configuration file.</li>
+	<li>Application icon with multiple resolutions and color depths.</li>
+	<li>Swing GUI interface.</li>
+	<li>Header compiled with MinGW port of gcc instead of VC++.</li>
+</ul>
+
+<h4>Cambios en la versión 1.4.2 (12-03-2005)</h4>
+<ul class="changes">
+	<li>Fixed bug #1158143, stayAlive without a splash screen caused
+		an infinite loop (found by Gregory Kotsaftis).
+	</li>
+</ul>
+
+<h4>Cambios en la versión 1.4.1 (04-03-2005)</h4>
+<ul class="changes">
+	<li>Fixed bug #1119040, buffer for reading config properties
+		was too short (found by Tom Jensen and Neil).
+	</li>
+	<li>Added configurable splash timeout (FR #1102951).</li>
+	<li>Added option to disable the error message on splash timeout (FR #1109159).</li>
+	<li>Option to keep the gui launcher 'alive' after starting an application (FR #1124653).</li>
+	<li>Removed version info.</li>
+	<li>'waitfor' property is now optional.</li>
+</ul>
+
+<h4>Cambios en la versión 1.4.0 (26-01-2005)</h4>
+<ul class="changes">
+	<li>Removed .lch4j suffix from process name, now it has the
+		form of the executable filename. The temporary launchers are stored in
+		launch4j-tmp directory (suggested by Emmanuel).
+	</li>
+	<li>Added support for console apps (FR #1050053).</li>
+</ul>
+
+<h4>Cambios en la versión 1.3.1 (05-11-2004)</h4>
+<ul class="changes">
+	<li>Fixed a bug where explorer window was opened instead of
+		launching the application when setProcName was set to false
+		(found by Rob Jones).
+	</li>
+	<li>Fixed temporary launcher deletion bug.</li>
+</ul>
+
+<h4>Cambios en la versión 1.3.0 (01-11-2004)</h4>
+<ul class="changes">
+	<li>Now you can configure launch4j to:
+		<ul class="changes">
+			<li>Use a bundled JRE.</li>
+			<li>Search for java, show an error message if the
+				right version cannot be found and open the java download page.</li>
+			<li>And a feature you asked for: use bundled JRE, if
+				that fails search for java and bring up the java download page on error.</li>
+		</ul>
+	</li>
+	<li>Enhanced code that sets the custom process name. In
+		case launch4j can't refresh the temporary launcher, bundled JRE on a
+		read only file system for example, it will use one created previously,
+		if it's present and has the correct size. If not, launching will still
+		continue, but with javaw.exe process name.Temporary launchers are
+		now created in the jre directory instead of jre/bin.
+	</li>
+	<li>errTitle property allows to set the title of the error message box.</li>
+</ul>
+
+<h4>Cambios en la versión 1.2.1 (25-09-2004)</h4>
+<ul class="changes">
+	<li>Bugfix that allows launching from command line using short
+		name (#1026514 / found by Zach Del)
+	</li>
+</ul>
+
+<h4>Cambios en la versión 1.2.0 (10-09-2004)</h4>
+<ul class="changes">
+	<li><strong>Custom process name</strong> (<i>myapp.lch4j.exe</i>)</li>
+	<li><strong>9 KB stub!</strong></li>
+	<li>Jar arguments</li>
+	<li>Bugfix that allows launching from command line.</li>
+	<li>Hide splash on javaw error.</li>
+	<li>Easier configuration with case insensitive parameters + show unrecognized parameter.</li>
+	<li>12 KB demo application, 34 KB with splash screen.</li>
+	<li>Configuration parameter <em>'args'</em> changed to <em>'jvmArgs'</em></li>
+</ul>
+			</div>
+			<div class="footer">
+            	Copyright &copy; 2005-2006 Grzegorz Kowal <br>
+				Traducción al español Copyright &copy; 2005-2006 Patricio Martínez Ros
+            	<p style="margin-top: 2em">
+            		<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&amp;type=4" alt="sf.net"></a>
+            		<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
+            		<a href="http://validator.w3.org/check?uri=referer"><img style="width: 88px; height: 31px; border: none; margin-left: 5%" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
+            	</p>
+			</div>
+		</div>
+	</body>
+</html>

Propchange: incubator/cayenne/main/trunk/cayenne/cayenne-ant/lib/windows/launch4j-2.1.1/web/changelog_es.html
------------------------------------------------------------------------------
    svn:eol-style = native