restore to prior working version
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/META-INF/MANIFEST.MF
index 8cd9a1b..8a0b589 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/META-INF/MANIFEST.MF
@@ -19,12 +19,7 @@
  org.eclipse.wst.xml.core;bundle-version="[1.1.300,2.0.0)",
  org.eclipse.ui.workbench.texteditor;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.wst.xml.ui;bundle-version="[1.0.400,2.0.0)",
- org.eclipse.jdt.debug.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.osgi.util;bundle-version="[3.2.0,4.0.0)"
+ org.eclipse.jdt.debug.ui;bundle-version="[3.3.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xsl.jaxp.debug.ui.internal;x-internal:=true,
- org.eclipse.wst.xsl.jaxp.debug.ui.internal.preferences;x-internal:=true,
- org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor;x-internal:=true,
- org.eclipse.wst.xsl.jaxp.debug.ui.internal.views;x-internal:=true
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/AddProcessorDialog.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/AddProcessorDialog.java
index d7652a4..f9b92b1 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/AddProcessorDialog.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/AddProcessorDialog.java
@@ -36,7 +36,6 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.InstallStandin;
 import org.eclipse.wst.xsl.jaxp.launching.IDebugger;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInstall;
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/InstalledProcessorsBlock.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/InstalledProcessorsBlock.java
index 0da45dd..afd9f31 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/InstalledProcessorsBlock.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/InstalledProcessorsBlock.java
@@ -56,7 +56,6 @@
 import org.eclipse.wst.xsl.internal.debug.ui.AbstractTableBlock;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIConstants;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.InstallStandin;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInstall;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorType;
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/Messages.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/Messages.java
similarity index 62%
rename from bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/Messages.java
rename to bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/Messages.java
index d9ba7f8..43404e1 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/Messages.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/Messages.java
@@ -1,10 +1,10 @@
-package org.eclipse.wst.xsl.jaxp.debug.ui.internal;
+package org.eclipse.wst.xsl.jaxp.debug.ui.internal.preferences;
 
 import org.eclipse.osgi.util.NLS;
 
 public class Messages extends NLS
 {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.ui.internal.messages"; //$NON-NLS-1$
+	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.ui.internal.preferences.messages"; //$NON-NLS-1$
 	static
 	{
 		// initialize resource bundle
@@ -44,31 +44,7 @@
 	public static String ProcessorsPreferencePage_0;
 	public static String ProcessorsPreferencePage_1;
 	public static String ProcessorsPreferencePage_2;
-	
-	public static String AttributesBlock_1;
-	public static String AttributesBlock_10;
-	public static String AttributesBlock_11;
-	public static String AttributesBlock_12;
-	public static String AttributesBlock_16;
-	public static String AttributesBlock_3;
-	public static String AttributesBlock_4;
-	public static String AttributesBlock_5;
-	public static String AttributesBlock_6;
-	public static String AttributesBlock_9;
-	public static String XSLProcessorTab_0;	
 
-	public static String ProcessorBlock_0;
-	public static String ProcessorBlock_1;
-	public static String ProcessorBlock_2;
-	public static String ProcessorBlock_4;
-	public static String ProcessorBlock_6;
-	public static String ProcessorBlock_7;
-	public static String ProcessorsComboBlock_1;
-	public static String ProcessorDetailsDialog_Title;
-	public static String ProcessorDetailsDialog_installName;
-	public static String ProcessorDetailsDialog_installType;
-	public static String ProcessorDetailsDialog_installClasspath;
-	
 	private Messages()
 	{
 	}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorLibraryBlock.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorLibraryBlock.java
index 3230c19..dc6ae1d 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorLibraryBlock.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorLibraryBlock.java
@@ -48,7 +48,6 @@
 import org.eclipse.ui.model.WorkbenchLabelProvider;
 import org.eclipse.ui.views.navigator.ResourceComparator;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.InstallStandin;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.JarContentProvider;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.JarLabelProvider;
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorsPreferencePage.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorsPreferencePage.java
index bf15be6..53e4eef 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorsPreferencePage.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/ProcessorsPreferencePage.java
@@ -25,7 +25,6 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInstall;
 import org.eclipse.wst.xsl.jaxp.launching.JAXPRuntime;
 
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/messages.properties b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/messages.properties
similarity index 66%
rename from bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/messages.properties
rename to bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/messages.properties
index 6231d78..cfd4e7f 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/messages.properties
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/preferences/messages.properties
@@ -29,28 +29,3 @@
 ProcessorsPreferencePage_0=Java XSLT Processors
 ProcessorsPreferencePage_1=Add, remove or edit XSLT processor definitions.\nBy default, the checked Processor is used for all transformations.
 ProcessorsPreferencePage_2=Select a default XSLT Processor
-
-AttributesBlock_1=Change Preferences___
-AttributesBlock_10=type
-AttributesBlock_11=value
-AttributesBlock_12=value
-AttributesBlock_16=Processor Attributes
-AttributesBlock_3=Use specific attributes
-AttributesBlock_4=Attribute
-AttributesBlock_5=Type
-AttributesBlock_6=Value
-AttributesBlock_9=name
-XSLProcessorTab_0=Processor
-
-ProcessorBlock_0=XSLT Processor
-ProcessorBlock_1=Use processor from preferences
-ProcessorBlock_2=Change preferences...
-ProcessorBlock_4=Use specific processor
-ProcessorBlock_6=Processor:
-ProcessorBlock_7=Processor
-ProcessorsComboBlock_1=&Installed processors...
-
-ProcessorDetailsDialog_Title=Built-in XSLT Processor
-ProcessorDetailsDialog_installName=Name:
-ProcessorDetailsDialog_installType=Type:
-ProcessorDetailsDialog_installClasspath=Libraries:
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/AttributesBlock.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/AttributesBlock.java
index 85b519f..f97f11a 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/AttributesBlock.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/AttributesBlock.java
@@ -54,7 +54,6 @@
 import org.eclipse.wst.xsl.internal.debug.ui.AbstractTableBlock;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.JAXPDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.launching.IAttribute;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorType;
 import org.eclipse.wst.xsl.jaxp.launching.JAXPLaunchConfigurationConstants;
@@ -297,7 +296,7 @@
 
 	public String getName()
 	{
-		return Messages.AttributesBlock_16; //$NON-NLS-1$
+		return Messages.getString("AttributesBlock.16"); //$NON-NLS-1$
 	}
 
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration)
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/Messages.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/Messages.java
new file mode 100644
index 0000000..ea96ce6
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/Messages.java
@@ -0,0 +1,22 @@
+package org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+class Messages {
+	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.messages"; //$NON-NLS-1$
+
+	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+			.getBundle(BUNDLE_NAME);
+
+	private Messages() {
+	}
+
+	public static String getString(String key) {
+		try {
+			return RESOURCE_BUNDLE.getString(key);
+		} catch (MissingResourceException e) {
+			return '!' + key + '!';
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/OutputPropertiesBlock.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/OutputPropertiesBlock.java
index 3010a2f..94989c5 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/OutputPropertiesBlock.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/OutputPropertiesBlock.java
@@ -54,7 +54,6 @@
 import org.eclipse.wst.xsl.internal.debug.ui.AbstractTableBlock;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.JAXPDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.launching.IOutputProperty;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorType;
 import org.eclipse.wst.xsl.jaxp.launching.JAXPLaunchConfigurationConstants;
@@ -289,7 +288,7 @@
 
 	public String getName()
 	{
-		return Messages.AttributesBlock_16; //$NON-NLS-1$
+		return Messages.getString("AttributesBlock.16"); //$NON-NLS-1$
 	}
 
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration)
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorBlock.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorBlock.java
index d6004d4..2353884 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorBlock.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorBlock.java
@@ -37,7 +37,6 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.preferences.ProcessorsPreferencePage;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInstall;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorType;
@@ -72,7 +71,7 @@
 //		group.setText(ProcessorMessages.ProcessorBlock_0);
 
 		usePreferencesRadio = new Button(group, SWT.RADIO);
-		usePreferencesRadio.setText(Messages.ProcessorBlock_1);
+		usePreferencesRadio.setText(ProcessorMessages.ProcessorBlock_1);
 		usePreferencesRadio.addSelectionListener(new SelectionAdapter()
 		{
 			@Override
@@ -84,7 +83,7 @@
 		});
 
 		alterPreferencesButton = new Button(group, SWT.PUSH);
-		alterPreferencesButton.setText(Messages.ProcessorBlock_2);
+		alterPreferencesButton.setText(ProcessorMessages.ProcessorBlock_2);
 		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
 		gd.widthHint = 150;
 		alterPreferencesButton.setLayoutData(gd);
@@ -99,7 +98,7 @@
 		});
 
 		overridePreferencesRadio = new Button(group, SWT.RADIO);
-		overridePreferencesRadio.setText(Messages.ProcessorBlock_4);
+		overridePreferencesRadio.setText(ProcessorMessages.ProcessorBlock_4);
 		overridePreferencesRadio.addSelectionListener(new SelectionAdapter()
 		{
 			@Override
@@ -111,7 +110,7 @@
 		});
 
 		installedProcessorsButton = new Button(group, SWT.PUSH);
-		installedProcessorsButton.setText(Messages.ProcessorsComboBlock_1);
+		installedProcessorsButton.setText(ProcessorMessages.ProcessorsComboBlock_1);
 		gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
 		gd.widthHint = 150;
 		installedProcessorsButton.setLayoutData(gd);
@@ -136,7 +135,7 @@
 		settingsComp.setFont(font);
 
 		Label label = new Label(settingsComp, SWT.NONE);
-		label.setText(Messages.ProcessorBlock_6);
+		label.setText(ProcessorMessages.ProcessorBlock_6);
 		runCombo = new Combo(settingsComp, SWT.READ_ONLY | SWT.SINGLE);
 		runCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		runComboViewer = new ComboViewer(runCombo);
@@ -264,7 +263,7 @@
 
 	public String getName()
 	{
-		return Messages.ProcessorBlock_7;
+		return ProcessorMessages.ProcessorBlock_7;
 	}
 
 	public void initializeFrom(ILaunchConfiguration configuration)
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorDetailsDialog.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorDetailsDialog.java
index 43b2123..e0621f5 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorDetailsDialog.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorDetailsDialog.java
@@ -22,7 +22,6 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInstall;
 
 public class ProcessorDetailsDialog extends Dialog
@@ -40,7 +39,7 @@
 	protected void configureShell(Shell newShell)
 	{
 		super.configureShell(newShell);
-		newShell.setText(Messages.ProcessorDetailsDialog_Title);
+		newShell.setText(ProcessorMessages.ProcessorDetailsDialog_Title);
 		// TODO PlatformUI.getWorkbench().getHelpSystem().setHelp...
 	}
 
@@ -52,15 +51,15 @@
 		parent.setLayout(layout);
 
 		// type
-		createLabel(parent, Messages.ProcessorDetailsDialog_installType);
+		createLabel(parent, ProcessorMessages.ProcessorDetailsDialog_installType);
 		createLabel(parent, install.getProcessorType().getLabel());
 
 		// name
-		createLabel(parent, Messages.ProcessorDetailsDialog_installName);
+		createLabel(parent, ProcessorMessages.ProcessorDetailsDialog_installName);
 		createLabel(parent, install.getName());
 
 		// jars
-		Label label = createLabel(parent, Messages.ProcessorDetailsDialog_installClasspath);
+		Label label = createLabel(parent, ProcessorMessages.ProcessorDetailsDialog_installClasspath);
 		GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING);
 		label.setLayoutData(gd);
 		TableViewer libraryViewer = new TableViewer(parent);
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.java
new file mode 100644
index 0000000..ba4e159
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Chase Technology Ltd - http://www.chasetechnology.co.uk
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Doug Satchwell (Chase Technology Ltd) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor;
+
+import org.eclipse.osgi.util.NLS;
+
+class ProcessorMessages extends NLS
+{
+	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.ProcessorMessages"; //$NON-NLS-1$
+
+	public static String ProcessorBlock_0;
+	public static String ProcessorBlock_1;
+	public static String ProcessorBlock_2;
+	public static String ProcessorBlock_4;
+	public static String ProcessorBlock_6;
+	public static String ProcessorBlock_7;
+	public static String ProcessorsComboBlock_1;
+	public static String ProcessorDetailsDialog_Title;
+	public static String ProcessorDetailsDialog_installName;
+	public static String ProcessorDetailsDialog_installType;
+	public static String ProcessorDetailsDialog_installClasspath;
+
+	static
+	{
+		// load message values from bundle file
+		NLS.initializeMessages(BUNDLE_NAME, ProcessorMessages.class);
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.properties b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.properties
new file mode 100644
index 0000000..caa7275
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/ProcessorMessages.properties
@@ -0,0 +1,14 @@
+ProcessorBlock_0=XSLT Processor
+ProcessorBlock_1=Use processor from preferences
+ProcessorBlock_2=Change preferences...
+ProcessorBlock_4=Use specific processor
+ProcessorBlock_6=Processor:
+ProcessorBlock_7=Processor
+ProcessorsComboBlock_1=&Installed processors...
+
+ProcessorDetailsDialog_Title=Built-in XSLT Processor
+ProcessorDetailsDialog_installName=Name:
+ProcessorDetailsDialog_installType=Type:
+ProcessorDetailsDialog_installClasspath=Libraries:
+
+
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/XSLProcessorTab2.java b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/XSLProcessorTab2.java
index 03a9956..2bab50e 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/XSLProcessorTab2.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/XSLProcessorTab2.java
@@ -21,14 +21,12 @@
 import org.eclipse.swt.widgets.TabFolder;
 import org.eclipse.wst.xsl.internal.debug.ui.XSLLaunchConfigurationTab;
 import org.eclipse.wst.xsl.jaxp.debug.ui.internal.JAXPDebugUIPlugin;
-import org.eclipse.wst.xsl.jaxp.debug.ui.internal.Messages;
 import org.eclipse.wst.xsl.jaxp.launching.IProcessorInvoker;
 import org.eclipse.wst.xsl.jaxp.launching.JAXPLaunchConfigurationConstants;
 import org.eclipse.wst.xsl.jaxp.launching.JAXPRuntime;
 
 public class XSLProcessorTab2 extends XSLLaunchConfigurationTab
 {
-	private static final String ORG_ECLIPSE_WST_XSL_DEBUG_UI_JAXP_TABS_PROCESSOR = "org.eclipse.wst.xsl.debug.ui.jaxp.tabs.processor";
 	private final ProcessorBlock processorBlock;
 	private final AttributesBlock attributesBlock;
 	private final OutputPropertiesBlock outputPropertiesBlock;
@@ -69,13 +67,13 @@
 
 	public String getName()
 	{
-		return Messages.XSLProcessorTab_0; //$NON-NLS-1$
+		return Messages.getString("XSLProcessorTab.0"); //$NON-NLS-1$
 	}
 	
 	@Override
 	public String getId()
 	{
-		return ORG_ECLIPSE_WST_XSL_DEBUG_UI_JAXP_TABS_PROCESSOR;
+		return "org.eclipse.wst.xsl.debug.ui.jaxp.tabs.processor";
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/messages.properties b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/messages.properties
new file mode 100644
index 0000000..1cebef7
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug.ui/src/org/eclipse/wst/xsl/jaxp/debug/ui/internal/tabs/processor/messages.properties
@@ -0,0 +1,11 @@
+AttributesBlock.1=Change Preferences...
+AttributesBlock.10=type
+AttributesBlock.11=value
+AttributesBlock.12=value
+AttributesBlock.16=Processor Attributes
+AttributesBlock.3=Use specific attributes
+AttributesBlock.4=Attribute
+AttributesBlock.5=Type
+AttributesBlock.6=Value
+AttributesBlock.9=name
+XSLProcessorTab.0=Processor
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsl.jaxp.debug/META-INF/MANIFEST.MF
index ad817b5..21dd829 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/META-INF/MANIFEST.MF
@@ -5,10 +5,7 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: %vendorName
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Require-Bundle: org.apache.commons.logging;bundle-version="1.0.4";visibility:=reexport,
- org.eclipse.osgi.util;bundle-version="[3.2.0,4.0.0)"
+Require-Bundle: org.apache.commons.logging;bundle-version="1.0.4";visibility:=reexport
 Export-Package: org.eclipse.wst.xsl.jaxp.debug.debugger,
- org.eclipse.wst.xsl.jaxp.debug.invoker,
- org.eclipse.wst.xsl.jaxp.debug.invoker.internal;x-internal:=true
+ org.eclipse.wst.xsl.jaxp.debug.invoker
 Bundle-Localization: plugin
-Import-Package: org.eclipse.osgi.util;version="[1.1.0,2.0.0)"
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/Messages.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/Messages.java
index 72bc8ca..9e6942a 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/Messages.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/Messages.java
@@ -7,64 +7,42 @@
  *
  * Contributors:
  *     Doug Satchwell (Chase Technology Ltd) - initial API and implementation
- *     David Carver (STAR) - updated to Galileo requirements.
  *******************************************************************************/
 package org.eclipse.wst.xsl.jaxp.debug.invoker;
 
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
-import org.eclipse.osgi.util.NLS;
 
 /**
  * Messages for the configuration.
  * 
  * @author Doug Satchwell
  */
-public class Messages extends NLS {
+class Messages
+{
 	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.invoker.messages"; //$NON-NLS-1$
 
-	public static String PipelineDefinition_10;
-	public static String PipelineDefinition_8;
-	public static String PipelineDefinition_9;
-	public static String TransformDefinition_1;
-	public static String TransformDefinition_18;
-	public static String TransformDefinition_19;
-	public static String TransformDefinition_20;
-	public static String TransformDefinition_21;
-	public static String TransformDefinition_22;
-	public static String TypedValue_10;
-	public static String TypedValue_11;
-	public static String TypedValue_12;
-	public static String TypedValue_13;
-	public static String TypedValue_14;
-	public static String TypedValue_15;
-	public static String TypedValue_16;
-	public static String TypedValue_17;
-	public static String TypedValue_18;
-	public static String TypedValue_19;
-	public static String TypedValue_20;
-	public static String TypedValue_21;
-	public static String TypedValue_22;
-	public static String TypedValue_23;
-	public static String TypedValue_24;
-	public static String TypedValue_9;
+	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
 
-	public static String JAXPSAXProcessorInvoker_0;
-	public static String JAXPSAXProcessorInvoker_1;
-	public static String JAXPSAXProcessorInvoker_2;
-	public static String JAXPSAXProcessorInvoker_3;
-	public static String JAXPSAXProcessorInvoker_6;
-	public static String JAXPSAXProcessorInvoker_7;
-	public static String JAXPSAXProcessorInvoker_8;
-	public static String JAXPSAXProcessorInvoker_9;
-	public static String Main_4;
-	public static String Main_5;
-
-	private Messages() {
+	private Messages()
+	{
 	}
 
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	/**
+	 * Get a message for the given key.
+	 * 
+	 * @param key the message key
+	 * @return the message
+	 */
+	public static String getString(String key)
+	{
+		try
+		{
+			return RESOURCE_BUNDLE.getString(key);
+		}
+		catch (MissingResourceException e)
+		{
+			return '!' + key + '!';
+		}
 	}
-
 }
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/PipelineDefinition.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/PipelineDefinition.java
index dcc9ab4..198f999 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/PipelineDefinition.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/PipelineDefinition.java
@@ -146,7 +146,7 @@
 			}
 			catch (CreationException e)
 			{
-				throw new ConfigurationException(Messages.PipelineDefinition_8, e); //$NON-NLS-1$
+				throw new ConfigurationException(Messages.getString("PipelineDefinition.8"), e); //$NON-NLS-1$
 			}
 			URL url = null;
 			try
@@ -155,7 +155,7 @@
 			}
 			catch (MalformedURLException e)
 			{
-				throw new ConfigurationException(Messages.PipelineDefinition_9 + tdef.getStylesheetURL(), e); //$NON-NLS-1$
+				throw new ConfigurationException(Messages.getString("PipelineDefinition.9") + tdef.getStylesheetURL(), e); //$NON-NLS-1$
 			}
 			Properties properties = tdef.getOutputProperties();
 			try
@@ -164,7 +164,7 @@
 			}
 			catch (TransformerConfigurationException e)
 			{
-				throw new ConfigurationException(Messages.PipelineDefinition_10 + tdef.getStylesheetURL(), null); //$NON-NLS-1$
+				throw new ConfigurationException(Messages.getString("PipelineDefinition.10") + tdef.getStylesheetURL(), null); //$NON-NLS-1$
 			}
 		}
 	}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TransformDefinition.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TransformDefinition.java
index ab120de..8679d90 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TransformDefinition.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TransformDefinition.java
@@ -173,7 +173,7 @@
 	public Element asXML(Document doc)
 	{
 		Element tdefEl = doc.createElement("Transform"); //$NON-NLS-1$
-		tdefEl.setAttribute(Messages.TransformDefinition_1, stylesheetURL); //$NON-NLS-1$
+		tdefEl.setAttribute(Messages.getString("TransformDefinition.1"), stylesheetURL); //$NON-NLS-1$
 		if (resolverClass != null)
 			tdefEl.setAttribute("uriResolver", resolverClass); //$NON-NLS-1$
 		Element opEl = doc.createElement("OutputProperties"); //$NON-NLS-1$
@@ -227,16 +227,16 @@
 			}
 		}
 
-		Element paramsEl = (Element) transformEl.getElementsByTagName(Messages.TransformDefinition_18).item(0); //$NON-NLS-1$
+		Element paramsEl = (Element) transformEl.getElementsByTagName(Messages.getString("TransformDefinition.18")).item(0); //$NON-NLS-1$
 		if (paramsEl != null)
 		{
-			NodeList paramEls = paramsEl.getElementsByTagName(Messages.TransformDefinition_19); //$NON-NLS-1$
+			NodeList paramEls = paramsEl.getElementsByTagName(Messages.getString("TransformDefinition.19")); //$NON-NLS-1$
 			for (int i = 0; i < paramEls.getLength(); i++)
 			{
 				Element paramEl = (Element) paramEls.item(i);
-				String name = paramEl.getAttribute(Messages.TransformDefinition_20); //$NON-NLS-1$
-				String type = paramEl.getAttribute(Messages.TransformDefinition_21); //$NON-NLS-1$
-				String value = paramEl.getAttribute(Messages.TransformDefinition_22); //$NON-NLS-1$
+				String name = paramEl.getAttribute(Messages.getString("TransformDefinition.20")); //$NON-NLS-1$
+				String type = paramEl.getAttribute(Messages.getString("TransformDefinition.21")); //$NON-NLS-1$
+				String value = paramEl.getAttribute(Messages.getString("TransformDefinition.22")); //$NON-NLS-1$
 				tdef.addParameter(new TypedValue(name, type, value));
 			}
 		}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TypedValue.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TypedValue.java
index cd50681..ad51c4d 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TypedValue.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/TypedValue.java
@@ -71,7 +71,7 @@
 			}
 			catch (NumberFormatException e)
 			{
-				throw new CreationException(Messages.TypedValue_9 + value + Messages.TypedValue_10, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.9") + value + Messages.getString("TypedValue.10"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		else if (TYPE_DOUBLE.equals(type))
@@ -82,7 +82,7 @@
 			}
 			catch (NumberFormatException e)
 			{
-				throw new CreationException(Messages.TypedValue_11 + value + Messages.TypedValue_12, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.11") + value + Messages.getString("TypedValue.12"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		else if (TYPE_FLOAT.equals(type))
@@ -93,7 +93,7 @@
 			}
 			catch (NumberFormatException e)
 			{
-				throw new CreationException(Messages.TypedValue_13 + value + Messages.TypedValue_14, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.13") + value + Messages.getString("TypedValue.14"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		else if (TYPE_CLASS.equals(type))
@@ -104,7 +104,7 @@
 			}
 			catch (ClassNotFoundException e)
 			{
-				throw new CreationException(Messages.TypedValue_15 + value + Messages.TypedValue_16, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.15") + value + Messages.getString("TypedValue.16"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		else if (TYPE_OBJECT.equals(type))
@@ -116,20 +116,20 @@
 			}
 			catch (ClassNotFoundException e)
 			{
-				throw new CreationException(Messages.TypedValue_17 + value + Messages.TypedValue_18, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.17") + value + Messages.getString("TypedValue.18"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 			catch (InstantiationException e)
 			{
-				throw new CreationException(Messages.TypedValue_19 + value + Messages.TypedValue_20, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.19") + value + Messages.getString("TypedValue.20"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 			catch (IllegalAccessException e)
 			{
-				throw new CreationException(Messages.TypedValue_21 + value + Messages.TypedValue_22, e); //$NON-NLS-1$ //$NON-NLS-2$
+				throw new CreationException(Messages.getString("TypedValue.21") + value + Messages.getString("TypedValue.22"), e); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 		}
 		else
 		{
-			throw new CreationException(Messages.TypedValue_23 + type + Messages.TypedValue_24); //$NON-NLS-1$ //$NON-NLS-2$
+			throw new CreationException(Messages.getString("TypedValue.23") + type + Messages.getString("TypedValue.24")); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		return o;
 	}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/JAXPSAXProcessorInvoker.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/JAXPSAXProcessorInvoker.java
index f452c43..40c424c 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/JAXPSAXProcessorInvoker.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/JAXPSAXProcessorInvoker.java
@@ -11,7 +11,6 @@
 package org.eclipse.wst.xsl.jaxp.debug.invoker.internal;
 
 import java.net.URL;
-
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
@@ -42,7 +41,6 @@
 import org.xml.sax.SAXNotRecognizedException;
 import org.xml.sax.SAXNotSupportedException;
 import org.xml.sax.XMLReader;
-import org.eclipse.wst.xsl.jaxp.debug.invoker.Messages;
 
 /**
  * An implementation of <code>IProcessorInvoker</code> that uses JAXP as the underlying
@@ -84,7 +82,7 @@
 			Map.Entry entry = (Map.Entry) iter.next();
 			String uri = (String) entry.getKey();
 			Object value = entry.getValue();
-			log.info(Messages.JAXPSAXProcessorInvoker_0 + uri + Messages.JAXPSAXProcessorInvoker_1 + value); //$NON-NLS-1$ //$NON-NLS-2$
+			log.info(Messages.getString("JAXPSAXProcessorInvoker.0") + uri + Messages.getString("JAXPSAXProcessorInvoker.1") + value); //$NON-NLS-1$ //$NON-NLS-2$
 			tFactory.setAttribute(uri, value);
 		}
 	}
@@ -148,7 +146,7 @@
 				Map.Entry entry = (Map.Entry) iter.next();
 				String name = (String) entry.getKey();
 				Object value = entry.getValue();
-				log.info(Messages.JAXPSAXProcessorInvoker_2 + name + Messages.JAXPSAXProcessorInvoker_3 + value); //$NON-NLS-1$ //$NON-NLS-2$
+				log.info(Messages.getString("JAXPSAXProcessorInvoker.2") + name + Messages.getString("JAXPSAXProcessorInvoker.3") + value); //$NON-NLS-1$ //$NON-NLS-2$
 				transformer.setParameter(name, value);
 			}
 		}
@@ -162,7 +160,7 @@
 			}
 			if (outputProperties.size() > 0)
 			{
-				log.info(Messages.JAXPSAXProcessorInvoker_6 + sb.toString()); //$NON-NLS-1$
+				log.info(Messages.getString("JAXPSAXProcessorInvoker.6") + sb.toString()); //$NON-NLS-1$
 				transformer.setOutputProperties(outputProperties);
 			}
 		}
@@ -213,14 +211,14 @@
 					}
 					else
 					{
-						throw new TransformationException(Messages.JAXPSAXProcessorInvoker_7 + inputsource.getSystemId());
+						throw new TransformationException(Messages.getString("JAXPSAXProcessorInvoker.7") + inputsource.getSystemId()); //$NON-NLS-1$
 					}
 				}
 			}
 			th.setResult(res);
-			log.info(Messages.JAXPSAXProcessorInvoker_8); 
+			log.info(Messages.getString("JAXPSAXProcessorInvoker.8")); //$NON-NLS-1$
 			reader.parse(inputsource);
-			log.info(Messages.JAXPSAXProcessorInvoker_9);
+			log.info(Messages.getString("JAXPSAXProcessorInvoker.9")); //$NON-NLS-1$
 		}
 		catch (Exception e)
 		{
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Main.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Main.java
index 06b2046..1ccdce8 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Main.java
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Main.java
@@ -19,7 +19,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.eclipse.wst.xsl.jaxp.debug.invoker.IProcessorInvoker;
-import org.eclipse.wst.xsl.jaxp.debug.invoker.Messages;
 import org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition;
 
 /**
@@ -54,7 +53,7 @@
 		String src = args[2];
 		String target = args[3];
 
-		log.info(Messages.Main_4 + launchFile); //$NON-NLS-1$
+		log.info(Messages.getString("Main.4") + launchFile); //$NON-NLS-1$
 
 		// create the invoker
 		IProcessorInvoker invoker = null;
@@ -65,7 +64,7 @@
 		}
 		catch (Exception e)
 		{
-			handleFatalError(Messages.Main_5 + invokerClassName, e); //$NON-NLS-1$
+			handleFatalError(Messages.getString("Main.5") + invokerClassName, e); //$NON-NLS-1$
 		}
 		try
 		{
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Messages.java b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Messages.java
new file mode 100644
index 0000000..7ee3995
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/Messages.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Chase Technology Ltd - http://www.chasetechnology.co.uk
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Doug Satchwell (Chase Technology Ltd) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsl.jaxp.debug.invoker.internal;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Messages for the transformation.
+ * 
+ * @author Doug Satchwell
+ */
+public class Messages
+{
+	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.invoker.internal.messages"; //$NON-NLS-1$
+
+	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+
+	private Messages()
+	{
+	}
+
+	/**
+	 * Get a message for the given key.
+	 * 
+	 * @param key the message key
+	 * @return the message
+	 */
+	public static String getString(String key)
+	{
+		try
+		{
+			return RESOURCE_BUNDLE.getString(key);
+		}
+		catch (MissingResourceException e)
+		{
+			return '!' + key + '!';
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/messages.properties b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/messages.properties
new file mode 100644
index 0000000..ff8f9a1
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/internal/messages.properties
@@ -0,0 +1,10 @@
+JAXPSAXProcessorInvoker.0=Setting attribute '
+JAXPSAXProcessorInvoker.1=' to value 
+JAXPSAXProcessorInvoker.2=Setting parameter '
+JAXPSAXProcessorInvoker.3=' to value 
+JAXPSAXProcessorInvoker.6=Setting properties: 
+JAXPSAXProcessorInvoker.7=No embedded stylesheet instruction for file: 
+JAXPSAXProcessorInvoker.8=Transforming...
+JAXPSAXProcessorInvoker.9=Done.
+Main.4=launchFile: 
+Main.5=Could not instantiate invoker: 
diff --git a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/messages.properties b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/messages.properties
index f19c248..fea9b3c 100644
--- a/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/messages.properties
+++ b/bundles/org.eclipse.wst.xsl.jaxp.debug/src/org/eclipse/wst/xsl/jaxp/debug/invoker/messages.properties
@@ -1,36 +1,25 @@
-PipelineDefinition_10=Error with stylesheet: 
-PipelineDefinition_8=Could not instantiate parameter
-PipelineDefinition_9=Invalid stylesheet URL: 
-TransformDefinition_1=url
-TransformDefinition_18=Parameters
-TransformDefinition_19=Parameter
-TransformDefinition_20=name
-TransformDefinition_21=type
-TransformDefinition_22=value
-TypedValue_10=' to an Integer
-TypedValue_11=Could not convert value '
-TypedValue_12=' to a Double
-TypedValue_13=Could not convert value '
-TypedValue_14=' to a Float
-TypedValue_15=Class '
-TypedValue_16=' could not be located (check the classpath)
-TypedValue_17=Class '
-TypedValue_18=' could not be located (check the classpath)
-TypedValue_19=Object '
-TypedValue_20=' could not be instantiated
-TypedValue_21=Object '
-TypedValue_22=\ could not be instantiated
-TypedValue_23=Attribute type '
-TypedValue_24=' is not recognised
-TypedValue_9=Could not convert value '
-
-JAXPSAXProcessorInvoker_0=Setting attribute '
-JAXPSAXProcessorInvoker_1=' to value 
-JAXPSAXProcessorInvoker_2=Setting parameter '
-JAXPSAXProcessorInvoker_3=' to value 
-JAXPSAXProcessorInvoker_6=Setting properties: 
-JAXPSAXProcessorInvoker_7=No embedded stylesheet instruction for file: 
-JAXPSAXProcessorInvoker_8=Transforming___
-JAXPSAXProcessorInvoker_9=Done_
-Main_4=launchFile: 
-Main_5=Could not instantiate invoker:
+PipelineDefinition.10=Error with stylesheet: 
+PipelineDefinition.8=Could not instantiate parameter
+PipelineDefinition.9=Invalid stylesheet URL: 
+TransformDefinition.1=url
+TransformDefinition.18=Parameters
+TransformDefinition.19=Parameter
+TransformDefinition.20=name
+TransformDefinition.21=type
+TransformDefinition.22=value
+TypedValue.10=' to an Integer
+TypedValue.11=Could not convert value '
+TypedValue.12=' to a Double
+TypedValue.13=Could not convert value '
+TypedValue.14=' to a Float
+TypedValue.15=Class '
+TypedValue.16=' could not be located (check the classpath)
+TypedValue.17=Class '
+TypedValue.18=' could not be located (check the classpath)
+TypedValue.19=Object '
+TypedValue.20=' could not be instantiated
+TypedValue.21=Object '
+TypedValue.22=\ could not be instantiated
+TypedValue.23=Attribute type '
+TypedValue.24=' is not recognised
+TypedValue.9=Could not convert value '