Blob Blame History Raw
diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java
index 860c763..bedf2da 100644
--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java
+++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/AbstractEclipseEnvironment.java
@@ -10,8 +10,11 @@
  ******************************************************************************/
 package org.jboss.tools.usage.googleanalytics.eclipse;
 
+import java.io.File;
+import java.net.URL;
 import java.util.Random;
 
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Display;
@@ -237,10 +240,34 @@ public abstract class AbstractEclipseEnvironment extends AbstractGoogleAnalytics
 
 	@Override
 	public String getUserDefined() {
-		return getLinuxDistroNameAndVersion();
+		String pkgs = getInstalledPkgs();
+		if (pkgs != null && !pkgs.isEmpty()) {
+			return getLinuxDistroNameAndVersion() + "|" + pkgs;
+		} else {
+			return getLinuxDistroNameAndVersion();
+		}
 	}
 
 	protected String getLinuxDistroNameAndVersion() {
 		return LinuxSystem.INSTANCE.getDistroNameAndVersion();
 	}
+
+	protected String getInstalledPkgs() {
+		StringBuilder pkgs = new StringBuilder();
+		URL installLoc = Platform.getInstallLocation().getURL();
+		File pkgDir = new File(installLoc.getFile(), ".pkgs");
+		if (pkgDir.isDirectory()) {
+			File[] files = pkgDir.listFiles();
+			for (int i = 0; i < files.length; i++) {
+				if (files[i].isFile()) {
+					if (pkgs.length() > 0) {
+						pkgs.append("," + files[i].getName());
+					} else {
+						pkgs.append(files[i].getName());
+					}
+				}
+			}
+		}
+		return pkgs.toString();
+	}
 }
\ No newline at end of file
diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java
index c2b21a1..22bb957 100644
--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java
+++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/PreferencesMessages.java
@@ -26,6 +26,7 @@ public class PreferencesMessages extends NLS {
 	public static String UsageReportPreferencePage_OperatingSystem;
 	public static String UsageReportPreferencePage_OperatingSystemVersion;
 	public static String UsageReportPreferencePage_LinuxDistro;
+	public static String UsageReportPreferencePage_InstalledPkgs;
 	public static String UsageReportPreferencePage_ProductId;
 	public static String UsageReportPreferencePage_ProductOwner;
 	public static String UsageReportPreferencePage_ProductVersion;
diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java
index 6335b60..34acf6a 100644
--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java
+++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/UsageReportPreferencePage.java
@@ -102,8 +102,13 @@ public class UsageReportPreferencePage extends FieldEditorPreferencePage impleme
 		appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_OperatingSystemVersion,
 				eclipseUserAgent.getOSVersion(), builder, styles);
 		if (eclipseEnvironment.isLinuxDistro()) {
+			String ud[] = eclipseEnvironment.getUserDefined().split("\\|", 2);
 			appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_LinuxDistro,
-					eclipseEnvironment.getUserDefined(), builder, styles);
+					ud[0], builder, styles);
+			if (ud.length > 1) {
+				appendLabeledValue(PreferencesMessages.UsageReportPreferencePage_InstalledPkgs,
+						ud[1], builder, styles);
+			}
 		}
 		builder.append(StringUtils.getLineSeparator());
 
diff --git a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties
index a0579f9..fb05fac 100644
--- a/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties
+++ b/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/preferences/messages.properties
@@ -20,6 +20,7 @@ UsageReportPreferencePage_NumberOfUsageHits=Number of usage-hits\:
 UsageReportPreferencePage_OperatingSystem=Operating system\: 
 UsageReportPreferencePage_OperatingSystemVersion=Operating system version\: 
 UsageReportPreferencePage_LinuxDistro=Linux Distro\: 
+UsageReportPreferencePage_InstalledPkgs=Installed packages\: 
 
 UsageReportPreferencePage_JvmName=JVM name\: 
 UsageReportPreferencePage_JvmVersion=JVM version\: