Bug 482820 - Clean up USS Browser

- move USS Browser into org.eclipse.userstorage.sdk
- remove unapproved icons
- request 'profile' scope to obtain user details
- place Client ID and Client Secret at build-time

Change-Id: I1643bff2631584f5d020da2c67c761c653bb3410
diff --git a/org.eclipse.userstorage.browser/.project b/org.eclipse.userstorage.browser/.project
deleted file mode 100644
index 5254fc0..0000000
--- a/org.eclipse.userstorage.browser/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.userstorage.browser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.userstorage.browser/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.userstorage.browser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ef8a789..0000000
--- a/org.eclipse.userstorage.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.eclipse.userstorage.browser/META-INF/MANIFEST.MF b/org.eclipse.userstorage.browser/META-INF/MANIFEST.MF
deleted file mode 100644
index 1b4e40f..0000000
--- a/org.eclipse.userstorage.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Development Tools for USS
-Bundle-SymbolicName: org.eclipse.userstorage.browser;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui,
- org.eclipse.userstorage;bundle-version="1.0.0",
- org.eclipse.userstorage.oauth;bundle-version="1.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.eclipse.userstorage.browser/build.properties b/org.eclipse.userstorage.browser/build.properties
deleted file mode 100644
index 03800d9..0000000
--- a/org.eclipse.userstorage.browser/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               icons/
diff --git a/org.eclipse.userstorage.browser/icons/ov_nav.png b/org.eclipse.userstorage.browser/icons/ov_nav.png
deleted file mode 100644
index bd8cdf0..0000000
--- a/org.eclipse.userstorage.browser/icons/ov_nav.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.userstorage.browser/icons/ov_nav@2x.png b/org.eclipse.userstorage.browser/icons/ov_nav@2x.png
deleted file mode 100644
index e3fe246..0000000
--- a/org.eclipse.userstorage.browser/icons/ov_nav@2x.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.userstorage.browser/icons/sample.gif b/org.eclipse.userstorage.browser/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/org.eclipse.userstorage.browser/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.userstorage.browser/plugin.xml b/org.eclipse.userstorage.browser/plugin.xml
deleted file mode 100644
index 57900e1..0000000
--- a/org.eclipse.userstorage.browser/plugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="User Storage Browser"
-            icon="icons/ov_nav.png"
-            category="org.eclipse.userstorage.development.category"
-            class="org.eclipse.userstorage.browser.views.USSBrowsingView"
-            id="org.eclipse.userstorage.browser.views.SampleView">
-      </view>
-      <category
-            id="org.eclipse.userstorage.development.category"
-            name="User Storage Service Development">
-      </category>
-   </extension>
-   <extension
-         point="org.eclipse.userstorage.oauth.clients">
-      <client
-            icon="icons/ov_nav.png"
-            id="eclipse_uss_sdk"
-            name="USS SDK Examples"
-            authURI="https://accounts.eclipse.org/">
-      </client>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.userstorage.browser/pom.xml b/org.eclipse.userstorage.browser/pom.xml
deleted file mode 100644
index 15be34a..0000000
--- a/org.eclipse.userstorage.browser/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright (c) 2015, 2016 Eike Stepper (Berlin, Germany) 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
-  http://www.eclipse.org/legal/epl-v10.html
-
-  Contributors:
-    Eike Stepper - initial API and implementation
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.eclipse.userstorage</groupId>
-    <artifactId>parent</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-  <artifactId>org.eclipse.userstorage.browser</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
-  <packaging>eclipse-plugin</packaging>
-</project>
diff --git a/org.eclipse.userstorage.sdk-feature/feature.xml b/org.eclipse.userstorage.sdk-feature/feature.xml
index c609ef2..77f0c75 100644
--- a/org.eclipse.userstorage.sdk-feature/feature.xml
+++ b/org.eclipse.userstorage.sdk-feature/feature.xml
@@ -48,6 +48,20 @@
          unpack="false"/>
 
    <plugin
+         id="org.eclipse.userstorage.oauth.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.userstorage.oauth.tests.source"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
          id="org.eclipse.userstorage.tests.source"
          download-size="0"
          install-size="0"
diff --git a/org.eclipse.userstorage.browser/.classpath b/org.eclipse.userstorage.sdk/.classpath
similarity index 86%
rename from org.eclipse.userstorage.browser/.classpath
rename to org.eclipse.userstorage.sdk/.classpath
index ad32c83..453e97d 100644
--- a/org.eclipse.userstorage.browser/.classpath
+++ b/org.eclipse.userstorage.sdk/.classpath
@@ -3,5 +3,6 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="generated-sources"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/org.eclipse.userstorage.sdk/.gitignore b/org.eclipse.userstorage.sdk/.gitignore
new file mode 100644
index 0000000..d2bba01
--- /dev/null
+++ b/org.eclipse.userstorage.sdk/.gitignore
@@ -0,0 +1 @@
+generated-sources/*
diff --git a/org.eclipse.userstorage.sdk/.project b/org.eclipse.userstorage.sdk/.project
index d9abd37..df73332 100644
--- a/org.eclipse.userstorage.sdk/.project
+++ b/org.eclipse.userstorage.sdk/.project
@@ -6,23 +6,34 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.pde.ManifestBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
-  <filteredResources>
-    <filter>
-      <id>1396938000000</id>
-      <name></name>
-      <type>10</type>
-      <matcher>
-        <id>org.eclipse.ui.ide.multiFilter</id>
-        <arguments>1.0-projectRelativePath-matches-true-false-target</arguments>
-      </matcher>
-    </filter>
-  </filteredResources>
+	<filteredResources>
+		<filter>
+			<id>1396938000000</id>
+			<name></name>
+			<type>10</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-true-false-target</arguments>
+			</matcher>
+		</filter>
+	</filteredResources>
 </projectDescription>
diff --git a/org.eclipse.userstorage.sdk/META-INF/MANIFEST.MF b/org.eclipse.userstorage.sdk/META-INF/MANIFEST.MF
index df64e37..dd2ba1d 100644
--- a/org.eclipse.userstorage.sdk/META-INF/MANIFEST.MF
+++ b/org.eclipse.userstorage.sdk/META-INF/MANIFEST.MF
@@ -7,3 +7,9 @@
 Bundle-Localization: plugin
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.userstorage;bundle-version="1.0.0",
+ org.eclipse.userstorage.oauth;bundle-version="1.0.0",
+ org.eclipse.ui,
+ org.eclipse.core.jobs,
+ org.eclipse.equinox.common
+Export-Package: org.eclipse.userstorage.sdk.browser
diff --git a/org.eclipse.userstorage.sdk/build.properties b/org.eclipse.userstorage.sdk/build.properties
index a652f83..9e77e5f 100644
--- a/org.eclipse.userstorage.sdk/build.properties
+++ b/org.eclipse.userstorage.sdk/build.properties
@@ -1,9 +1,18 @@
-bin.includes = META-INF/,\
+source.. = src/,\
+           generated-sources/
+output.. = bin/
+
+bin.includes = .,\
+               META-INF/,\
                about.html,\
                about.ini,\
                about.mappings,\
                about.properties,\
                eclipse32.png,\
-               plugin.properties
+               icons/,\
+               plugin.properties,\
+               plugin.xml
 src.includes = about.html,\
-               pom.xml
+               pom.xml,\
+               templates/
+additional.bundles = org.eclipse.core.runtime
diff --git a/org.eclipse.userstorage.sdk/icons/eclipse.png b/org.eclipse.userstorage.sdk/icons/eclipse.png
new file mode 100644
index 0000000..856a78b
--- /dev/null
+++ b/org.eclipse.userstorage.sdk/icons/eclipse.png
Binary files differ
diff --git a/org.eclipse.userstorage.sdk/icons/eclipse@2x.png b/org.eclipse.userstorage.sdk/icons/eclipse@2x.png
new file mode 100644
index 0000000..bf85680
--- /dev/null
+++ b/org.eclipse.userstorage.sdk/icons/eclipse@2x.png
Binary files differ
diff --git a/org.eclipse.userstorage.sdk/plugin.xml b/org.eclipse.userstorage.sdk/plugin.xml
new file mode 100644
index 0000000..a62dc90
--- /dev/null
+++ b/org.eclipse.userstorage.sdk/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.views">
+      <view
+            name="User Storage Browser"
+            icon="icons/eclipse.png"
+            category="org.eclipse.userstorage.sdk.category"
+            class="org.eclipse.userstorage.sdk.browser.USSBrowsingView"
+            id="org.eclipse.userstorage.browser">
+      </view>
+      <category
+            id="org.eclipse.userstorage.sdk.category"
+            name="User Storage Service SDK">
+      </category>
+   </extension>
+   <extension
+         point="org.eclipse.userstorage.oauth.clients">
+      <client
+            icon="icons/eclipse.png"
+            id="eclipse_uss_sdk"
+            name="USS SDK Examples"
+            authURI="https://accounts.eclipse.org/">
+      </client>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.userstorage.sdk/pom.xml b/org.eclipse.userstorage.sdk/pom.xml
index 984762f..eda17a7 100644
--- a/org.eclipse.userstorage.sdk/pom.xml
+++ b/org.eclipse.userstorage.sdk/pom.xml
@@ -22,4 +22,26 @@
   <artifactId>org.eclipse.userstorage.sdk</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>templating-maven-plugin</artifactId>
+        <version>1.0.0</version>
+        <configuration>
+          <sourceDirectory>${basedir}/templates</sourceDirectory>
+          <outputDirectory>${basedir}/generated-sources</outputDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>filter-src</id>
+            <goals>
+              <goal>filter-sources</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/OAuthClientDetailsDialog.java b/org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/OAuthClientDetailsDialog.java
similarity index 92%
rename from org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/OAuthClientDetailsDialog.java
rename to org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/OAuthClientDetailsDialog.java
index 7344d55..f87a809 100644
--- a/org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/OAuthClientDetailsDialog.java
+++ b/org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/OAuthClientDetailsDialog.java
@@ -1,4 +1,14 @@
-package org.eclipse.userstorage.browser.views;
+/*
+ * Copyright (c) 2016 Manumitting Technologies Inc. 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Manumitting Technologies Inc - initial API and implementation
+ */
+package org.eclipse.userstorage.sdk.browser;
 
 import java.net.MalformedURLException;
 import java.net.URI;
@@ -21,10 +31,6 @@
 import org.eclipse.userstorage.internal.util.StringUtil;
 
 public class OAuthClientDetailsDialog extends TrayDialog {
-	private static final int RESET_ID = IDialogConstants.CLIENT_ID + 1;
-
-	private static final String RESET_LABEL = "Restore Defaults";
-
 	private URI origAuthorizationURI;
 	private String origClientId;
 	private String origClientSecret;
diff --git a/org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/USSBrowsingView.java b/org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/USSBrowsingView.java
similarity index 98%
rename from org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/USSBrowsingView.java
rename to org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/USSBrowsingView.java
index 421bbac..8589ab6 100644
--- a/org.eclipse.userstorage.browser/src/org/eclipse/userstorage/browser/views/USSBrowsingView.java
+++ b/org.eclipse.userstorage.sdk/src/org/eclipse/userstorage/sdk/browser/USSBrowsingView.java
@@ -8,7 +8,7 @@
  * Contributors:
  *    Manumitting Technologies Inc - initial API and implementation
  */
-package org.eclipse.userstorage.browser.views;
+package org.eclipse.userstorage.sdk.browser;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -89,8 +89,8 @@
 	private void resetDefaults() {
 		try {
 			oauthAuthorizationService = new URI("https://accounts.eclipse.org/");
-			oauthClientId = "eclipse_uss_sdk";
-			oauthClientSecret = "551nES55nHCmCuHjZHiaj5zePZ6";
+			oauthClientId = Constants.getOAuthClientId();
+			oauthClientSecret = Constants.getOAuthClientSecret();
 			// "profile": the user personal identification information
 			oauthScopes = new String[] { "profile", "uss_all_retrieve", };
 			oauthExpectedCallback = new URI("http://localhost/");
diff --git a/org.eclipse.userstorage.sdk/templates/org/eclipse/userstorage/sdk/browser/Constants.java b/org.eclipse.userstorage.sdk/templates/org/eclipse/userstorage/sdk/browser/Constants.java
new file mode 100644
index 0000000..cb684d7
--- /dev/null
+++ b/org.eclipse.userstorage.sdk/templates/org/eclipse/userstorage/sdk/browser/Constants.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2016 Manumitting Technologies Inc. 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Manumitting Technologies Inc - initial API and implementation
+ */
+package org.eclipse.userstorage.sdk.browser;
+
+public class Constants {
+  
+  private static final String OAUTH_CLIENT_ID = "@uss.oauth.client.id@";
+  private static final String OAUTH_CLIENT_SECRET = "@uss.oauth.client.secret@";
+
+  public static String getOAuthClientId() {
+    String clientId = System.getProperty("uss.oauth.client.id");
+    if(clientId != null)
+    {
+      return clientId;
+    }
+    return OAUTH_CLIENT_ID;
+  }
+
+  public static String getOAuthClientSecret() {
+    String clientSecret = System.getProperty("uss.oauth.client.secret");
+    if (clientSecret != null)
+    {
+      return clientSecret;
+    }
+    return OAUTH_CLIENT_SECRET;
+  }
+}
diff --git a/org.eclipse.userstorage/META-INF/MANIFEST.MF b/org.eclipse.userstorage/META-INF/MANIFEST.MF
index 3615e22..43552f6 100644
--- a/org.eclipse.userstorage/META-INF/MANIFEST.MF
+++ b/org.eclipse.userstorage/META-INF/MANIFEST.MF
@@ -16,8 +16,16 @@
  org.apache.commons.logging;bundle-version="[1.0.0,2.0.0)",
  org.apache.commons.codec;bundle-version="[1.6.0,2.0.0)"
 Export-Package: org.eclipse.userstorage;version="1.0.0",
- org.eclipse.userstorage.internal;version="1.1.0";x-friends:="org.eclipse.userstorage.tests,org.eclipse.userstorage.oauth,org.eclipse.userstorage.ui",
- org.eclipse.userstorage.internal.util;version="1.0.0";x-friends:="org.eclipse.userstorage.tests,org.eclipse.userstorage.oauth,org.eclipse.userstorage.ui",
+ org.eclipse.userstorage.internal;version="1.1.0";
+  x-friends:="org.eclipse.userstorage.tests,
+   org.eclipse.userstorage.oauth,
+   org.eclipse.userstorage.ui,
+   org.eclipse.userstorage.sdk",
+ org.eclipse.userstorage.internal.util;version="1.0.0";
+  x-friends:="org.eclipse.userstorage.tests,
+   org.eclipse.userstorage.oauth,
+   org.eclipse.userstorage.ui,
+   org.eclipse.userstorage.sdk",
  org.eclipse.userstorage.spi;version="1.1.0",
  org.eclipse.userstorage.util;version="1.0.0"
 Eclipse-BuddyPolicy: registered
diff --git a/org.eclipse.userstorage/build.properties b/org.eclipse.userstorage/build.properties
index b39c2de..39dcbbc 100644
--- a/org.eclipse.userstorage/build.properties
+++ b/org.eclipse.userstorage/build.properties
@@ -3,12 +3,11 @@
 bin.includes = META-INF/,\
                .,\
                about.html,\
-               plugin.xml,\
-               schema/,\
                about.ini,\
                about.mappings,\
                about.properties,\
                eclipse32.png,\
-               plugin.properties
-src.includes = about.html,\
-               pom.xml
+               plugin.properties,\
+               plugin.xml
+src.includes = pom.xml,\
+               schema/
diff --git a/pom.xml b/pom.xml
index 1297d77..950c2c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,7 +224,6 @@
         <module>org.eclipse.userstorage.site</module>
         <module>org.eclipse.userstorage.tests</module>
         <module>org.eclipse.userstorage.ui</module>
-        <module>org.eclipse.userstorage.browser</module>
       </modules>
     </profile>