Bug 496237 - JavaStackTraceConsoleFactory as API

Change-Id: I31c1a9fd4bc60073d09db8c24ec8bb2eac85f376
diff --git a/org.eclipse.jdt.debug.ui/plugin.xml b/org.eclipse.jdt.debug.ui/plugin.xml
index e015987..24ee7d5 100644
--- a/org.eclipse.jdt.debug.ui/plugin.xml
+++ b/org.eclipse.jdt.debug.ui/plugin.xml
@@ -3342,7 +3342,7 @@
          point="org.eclipse.ui.console.consoleFactories">
       <consoleFactory 
             label="%javaStackTraceConsole.label"
-            class="org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory">
+            class="org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory">
       </consoleFactory>
    </extension>
 
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
index 5b2c4ba..07eeee2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -10,37 +10,69 @@
  *******************************************************************************/
 package org.eclipse.jdt.debug.ui.console;
 
+import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsole;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleFactory;
+import org.eclipse.ui.console.IConsoleListener;
+import org.eclipse.ui.console.IConsoleManager;
+
 /**
- * Creates a new console into which users can paste stack traces and follow the hyperlinks. creates a public API for
- * org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+ * Creates a new console into which users can paste stack traces and follow the hyperlinks.
  * 
  * @since 3.8
  * 
  */
-public class JavaStackTraceConsoleFactory {
-	private org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory javaStackTraceConsoleFactory;
+public class JavaStackTraceConsoleFactory implements IConsoleFactory {
+	private IConsoleManager fConsoleManager = null;
+	private JavaStackTraceConsole fConsole = null;
 
 	public JavaStackTraceConsoleFactory() {
-		javaStackTraceConsoleFactory = new org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory();
+		fConsoleManager = ConsolePlugin.getDefault().getConsoleManager();
+		fConsoleManager.addConsoleListener(new IConsoleListener() {
+			@Override
+			public void consolesAdded(IConsole[] consoles) {
+			}
+
+			@Override
+			public void consolesRemoved(IConsole[] consoles) {
+				for (int i = 0; i < consoles.length; i++) {
+					if (consoles[i] == fConsole) {
+						fConsole.saveDocument();
+						fConsole = null;
+					}
+				}
+			}
+
+		});
 	}
 
 	/**
-	 * Invokes openConsole() from org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+	 * Opens the console (creating a new one if not previously initialized).
 	 */
+	@Override
 	public void openConsole() {
-		javaStackTraceConsoleFactory.openConsole();
+		openConsole(null);
 	}
 
 	/**
-	 * Invokes openConsole(String) from org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory
+	 * Opens the console (creating a new one if not previously initialized). If the passed string is not <code>null</code>, the text of the console is
+	 * set to the string.
 	 * 
 	 * @param initialText
 	 *            text to put in the console or <code>null</code>.
 	 */
 	public void openConsole(String initialText) {
-		javaStackTraceConsoleFactory.openConsole(initialText);
+		if (fConsole == null) {
+			fConsole = new JavaStackTraceConsole();
+			fConsole.initializeDocument();
+			fConsoleManager.addConsoles(new IConsole[] { fConsole });
+		}
+		if (initialText != null) {
+			fConsole.getDocument().set(initialText);
+		}
+		fConsoleManager.showConsoleView(fConsole);
 	}
 	
-	
 
 }
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
index 458b63e..1992198 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/OpenFromClipboardAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2015 IBM Corporation and others.
+ * Copyright (c) 2010, 2016 IBM Corporation and others.
  * 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
@@ -33,10 +33,10 @@
 import org.eclipse.jdt.core.search.SearchRequestor;
 import org.eclipse.jdt.core.search.TypeNameMatch;
 import org.eclipse.jdt.core.search.TypeNameMatchRequestor;
+import org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory;
 import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants;
 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
 import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsole;
-import org.eclipse.jdt.internal.debug.ui.console.JavaStackTraceConsoleFactory;
 import org.eclipse.jdt.ui.JavaElementLabelProvider;
 import org.eclipse.jdt.ui.JavaUI;
 import org.eclipse.jface.action.IAction;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
index 5de4ab4..f490187 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2016 IBM Corporation and others.
  * 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
@@ -95,7 +95,7 @@
 	/**
 	 * inits the document backing this console
 	 */
-	void initializeDocument() {
+	public void initializeDocument() {
         File file = new File(FILE_NAME);
         if (file.exists()) {
 			try (InputStream fin = new BufferedInputStream(new FileInputStream(file))) {
@@ -134,7 +134,7 @@
     /**
      * Saves the backing document for this console
      */
-    void saveDocument() {
+	public void saveDocument() {
 		try (FileOutputStream fout = new FileOutputStream(FILE_NAME)) {
             IDocument document = getDocument();
             if (document != null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
index ee24f88..32f197a 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsoleFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2016 IBM Corporation and others.
  * 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
@@ -10,68 +10,13 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.debug.ui.console;
 
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleFactory;
-import org.eclipse.ui.console.IConsoleListener;
-import org.eclipse.ui.console.IConsoleManager;
-
 /**
- * Creates a new console into which users can paste stack traces and follow
- * the hyperlinks.
+ * Creates a new console into which users can paste stack traces and follow the hyperlinks.
  * 
+ * @deprecated use org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory
  * @since 3.1
  */
-public class JavaStackTraceConsoleFactory implements IConsoleFactory {
-    private IConsoleManager fConsoleManager = null;
-    private JavaStackTraceConsole fConsole = null;
+@Deprecated
+public class JavaStackTraceConsoleFactory extends org.eclipse.jdt.debug.ui.console.JavaStackTraceConsoleFactory {
 
-    public JavaStackTraceConsoleFactory() {
-        fConsoleManager = ConsolePlugin.getDefault().getConsoleManager();
-        fConsoleManager.addConsoleListener(new IConsoleListener() {
-            @Override
-			public void consolesAdded(IConsole[] consoles) {
-            }
-
-            @Override
-			public void consolesRemoved(IConsole[] consoles) {
-                for (int i = 0; i < consoles.length; i++) {
-                    if(consoles[i] == fConsole) {
-                        fConsole.saveDocument();
-                        fConsole = null;
-                    }
-                }
-            }
-        
-        });
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.console.IConsoleFactory#openConsole()
-     */
-    @Override
-	public void openConsole() {
-        openConsole(null);
-    }
-    
-    /**
-     * Opens the console (creating a new one if not previously initialized).
-     * If the passed string is not <code>null</code>, the text of the console
-     * is set to the string.
-     * 
-     * @param initialText text to put in the console or <code>null</code>.
-     */
-    public void openConsole(String initialText) {
-        if (fConsole == null) {
-            fConsole = new JavaStackTraceConsole(); 
-            fConsole.initializeDocument();
-	        fConsoleManager.addConsoles(new IConsole[]{fConsole});
-        }
-        if (initialText != null){
-        	fConsole.getDocument().set(initialText);
-        }
-        fConsoleManager.showConsoleView(fConsole);
-    }
-   
-    
 }