Bug 548898 - [Tips] Move early startup Tips init to the background

* used a job
* added nls

Change-Id: I5ada67d80a8559d5712c5f693ca14aa733ecee7a
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
diff --git a/org.eclipse.tips.ide/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.tips.ide/.settings/org.eclipse.jdt.core.prefs
index eb1ebb9..2b431f4 100644
--- a/org.eclipse.tips.ide/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.tips.ide/.settings/org.eclipse.jdt.core.prefs
@@ -52,7 +52,7 @@
 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
 org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
 org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
 org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
@@ -91,6 +91,7 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java
index 0db1171..d0dd29f 100644
--- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java
+++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Messages.java
@@ -15,6 +15,7 @@
 	public static String IDETipManager_8;
 	public static String IDETipManager_9;
 	public static String Startup_0;
+	public static String Startup_1;
 	public static String Startup_18;
 	public static String Startup_19;
 	public static String Startup_20;
diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
index 3b5232c..eeb7fa3 100644
--- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
+++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
@@ -50,7 +50,21 @@
 	@Override
 	public void earlyStartup() {
 		if (!(TipsPreferences.getStartupBehavior() == TipManager.START_DISABLE)) {
-			start();
+			Job job = new Job(Messages.Startup_1) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					start();
+					return Status.OK_STATUS;
+				}
+
+				@Override
+				public boolean belongsTo(Object family) {
+					return Startup.class.equals(family);
+				}
+			};
+			job.setSystem(true);
+			job.setUser(false);
+			job.schedule();
 		}
 	}
 
diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties
index a5eb8b1..e97bcd8 100644
--- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties
+++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/messages.properties
@@ -9,6 +9,7 @@
 IDETipManager_8=Evaluating expression {0} 
 IDETipManager_9=Evaluating expression done. Priority: {0}
 Startup_0=Load default IDE Tip Providers
+Startup_1=Loading Tips
 Startup_18=Fetching content for the tip of the day
 Startup_19=Checking for tip of the day content 
 Startup_20=Tip of the Day