Author: adietish
Date: 2010-09-29 13:53:33 -0400 (Wed, 29 Sep 2010)
New Revision: 25301
Added:
trunk/usage/tests/org.jboss.tools.usage.test/LinuxDistroTest.launch
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/ILinuxDistro.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/LinuxDistroTest.java
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java
Log:
[JBIDE-7208] linux distribution detection extended to detect lsb's (Ubuntu)
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/ILinuxDistro.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/ILinuxDistro.java 2010-09-29
17:30:30 UTC (rev 25300)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/googleanalytics/eclipse/ILinuxDistro.java 2010-09-29
17:53:33 UTC (rev 25301)
@@ -28,32 +28,44 @@
public static final ILinuxDistro REDHAT = new LinuxDistro("RedHat",
"/etc/redhat-release");
public static final ILinuxDistro SLACKWARE = new LinuxDistro("Slackware",
"/etc/slackware-version");
public static final ILinuxDistro SUSE = new LinuxDistro("SUSE",
"/etc/SuSE-release");
- public static final ILinuxDistro UBUNTU = new LinuxDistro("Ubuntu",
"/etc/lsb-release");
+ public static final ILinuxDistro UBUNTU = new LinuxDistro("Ubuntu",
"/etc/lsb-release");
public static final ILinuxDistro YELLOWDOG = new LinuxDistro("YellowDog",
"/etc/yellowdog-release");
- public static final ILinuxDistro[] ALL = new ILinuxDistro[]{
- DEBIAN,
- FEDORA,
- GENTOO,
- KNOPPIX,
- MANDRAKE,
- MANDRIVA,
- PLD,
- REDHAT,
- SLACKWARE,
- SUSE,
- UBUNTU,
- YELLOWDOG
- };
+ public static final ILinuxDistro[] ALL = new ILinuxDistro[] {
+ DEBIAN,
+ FEDORA,
+ GENTOO,
+ KNOPPIX,
+ MANDRAKE,
+ MANDRIVA,
+ PLD,
+ REDHAT,
+ SLACKWARE,
+ SUSE,
+ UBUNTU,
+ YELLOWDOG
+ };
public boolean isDistro();
+
public String getName();
+
public String getVersion();
+
public String getNameAndVersion();
public class LinuxDistro implements ILinuxDistro {
- private final Pattern VERSION_REGEX = Pattern.compile("[^0-9]+([0-9.]+).*");
+ /**
+ * The pattern to match the contents of the release-file -
+ * /etc/fedora-release etc. Attention: Ubuntu has multi-line release
+ * file
+ *
+ * @see <a
+ *
href="http://superuser.com/questions/11008/how-do-i-find-out-what-ve...
+ * strings</a>
+ */
+ private final Pattern VERSION_REGEX = Pattern.compile("([0-9.]+)");
private final String releaseFilePath;
private String name;
@@ -75,7 +87,7 @@
try {
String distroString = getDistroFileContent(releaseFilePath);
Matcher matcher = VERSION_REGEX.matcher(distroString);
- if (matcher.matches()) {
+ if (matcher.find()) {
return matcher.group(1);
}
} catch (IOException e) {
Added: trunk/usage/tests/org.jboss.tools.usage.test/LinuxDistroTest.launch
===================================================================
--- trunk/usage/tests/org.jboss.tools.usage.test/LinuxDistroTest.launch
(rev 0)
+++ trunk/usage/tests/org.jboss.tools.usage.test/LinuxDistroTest.launch 2010-09-29
17:53:33 UTC (rev 25301)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application"
value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation"
value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins"
value="org.jboss.tools.common.text.xml,org.jboss.tools.common.meta.ui,org.jboss.tools.common,org.jboss.tools.common.verification.ui.test,org.jboss.tools.common.projecttemplates,org.jboss.tools.common.el.core,org.jboss.tools.common.verification.ui,org.mozilla.xulrunner.gtk.linux.x86,org.jboss.tools.common.gef,org.mozilla.xulrunner.carbon.macosx,org.jboss.tools.common.test,org.jboss.tools.common.verification.test,org.jboss.tools.common.verification,org.jboss.tools.common.model,org.jboss.tools.gwt.ui,org.jboss.tools.common.model.ui.capabilities,org.jboss.tools.common.resref.core,org.mozilla.xulrunner.cocoa.macosx,org.jboss.tools.common.ui,org.mozilla.xulrunner.gtk.linux.x86_64,org.jboss.tools.common.el.ui,org.mozilla.xulrunner.win32.win32.x86,org.jboss.tools.common.text.ext,org.jboss.tools.gwt.core,org.jboss.tools.common.resref.ui,org.jboss.tools.common.model.ui.test,org.jboss.tools.common.el.core.test,org.mozilla.xpcom,org.j!
boss.tools.common.model.ui,org.jboss.tools.tests,org.jboss.tools.common.model.test"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location"
value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry
value="/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/LinuxDistroTest.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER"
value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR"
value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME"
value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND"
value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.jboss.tools.usage.test.LinuxDistroTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}
-consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="org.jboss.tools.usage.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER"
value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m -Xms40m
-Xmx1024m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins"
value="org.eclipse.equinox.common@2:true,org.eclipse.core.commands@default:default,org.eclipse.core.databinding@default:default,org.eclipse.help@default:default,org.eclipse.core.jobs@default:default,org.eclipse.ui@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.core.databinding.property@default:default,org.hamcrest.core@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.jboss.tools.xulrunner.initializer@default:false,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.app@default:default,org.eclipse.jface@default:default,org.eclipse.swt@default:default,org.eclipse.osgi@-1:true,com.ibm.icu@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.core.databinding.observable@default:default,javax.servlet@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.osgi.services@default:default,org.eclipse.jface.databinding!
@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.registry@default:default,org.junit4@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.preferences@default:default"/>
+<stringAttribute key="selected_workspace_plugins"
value="org.jboss.tools.usage.test@default:default,org.jboss.tools.usage@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
Property changes on: trunk/usage/tests/org.jboss.tools.usage.test/LinuxDistroTest.launch
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/LinuxDistroTest.java
===================================================================
---
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/LinuxDistroTest.java 2010-09-29
17:30:30 UTC (rev 25300)
+++
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/LinuxDistroTest.java 2010-09-29
17:53:33 UTC (rev 25301)
@@ -21,19 +21,29 @@
@Test
public void canExtractFedoraVersion() {
- ILinuxDistro distro = new FedoraLinuxDistroFake();
+ ILinuxDistro distro = new LinuxDistroFake(ILinuxDistro.FEDORA.getName(), "Fedora
release 13 (Goddard)");
assertEquals("13", distro.getVersion());
}
- public class FedoraLinuxDistroFake extends LinuxDistro {
+ @Test
+ public void canExtractUbuntuVersion() {
+ ILinuxDistro distro = new LinuxDistroFake(ILinuxDistro.UBUNTU.getName(),
+ "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=9.04\nDISTRIB_CODENAME=jaunty\nDISTRIB_DESCRIPTION=\"Ubuntu
9.04\"");
+ assertEquals("9.04", distro.getVersion());
+ }
- public FedoraLinuxDistroFake() {
- super(ILinuxDistro.FEDORA.getName(), "dummy");
+ public class LinuxDistroFake extends LinuxDistro {
+
+ private String releaseFileContent;
+
+ public LinuxDistroFake(String name, String releaseFileContent) {
+ super(name, "dummy");
+ this.releaseFileContent = releaseFileContent;
}
@Override
protected String getDistroFileContent(String filePath) throws IOException {
- return "Fedora release 13 (Goddard)";
+ return releaseFileContent;
}
}
}
Modified:
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java
===================================================================
---
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java 2010-09-29
17:30:30 UTC (rev 25300)
+++
trunk/usage/tests/org.jboss.tools.usage.test/src/org/jboss/tools/usage/test/UsageTestSuite.java 2010-09-29
17:53:33 UTC (rev 25301)
@@ -22,6 +22,7 @@
JBossToolsFocusPointTest.class,
GoogleAnalyticsUrlStrategyTest.class,
EclipseUserAgentTest.class,
+ LinuxDistroTest.class,
JBossToolsEclipseEnvironmentTest.class,
JBossToolsComponentsTest.class,
HttpRemotePropertiesTest.class,