Skip to content

Commit

Permalink
[DROOLS-532] fix automatic version recognition when running drools in…
Browse files Browse the repository at this point in the history
…side eclipse
  • Loading branch information
mariofusco committed Jul 3, 2014
1 parent 95b5a8b commit 5d5bddf
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 8 deletions.
33 changes: 33 additions & 0 deletions drools-core/pom.xml
Expand Up @@ -214,6 +214,39 @@
<excludeFilterFile>src/main/findbugs/findbugs-exclude.xml</excludeFilterFile>
</configuration>
</plugin>

<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalBuildcommands>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>auto,full,incremental,</triggers>
<arguments>
<LaunchConfigHandle>&lt;project&gt;/.externalToolBuilders/mvn-resources.launch</LaunchConfigHandle>
</arguments>
</buildCommand>
</additionalBuildcommands>
<additionalConfig>
<file>
<name>.externalToolBuilders/mvn-resources.launch</name>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="true"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="&#36;{working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; label=&quot;workingSet&quot; name=&quot;workingSet&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/${project.artifactId}/src/main/resources&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${env.M2_HOME}/bin/mvn"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="resources:resources"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="&#36;{workspace_loc:/${artifactId}}"/>
</launchConfiguration>]]>
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
</plugins>
</build>
</project>
24 changes: 16 additions & 8 deletions drools-core/src/main/java/org/drools/core/util/Drools.java
Expand Up @@ -3,14 +3,18 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Drools {

private static String droolsFullVersion;
private static Pattern VERSION_PAT = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)([\\.-](.*))?");

private static String droolsFullVersion;
private static int droolsMajorVersion;
private static int droolsMinorVersion;
private static int droolsRevisionVersion;
private static String droolsRevisionClassifier;

static {
droolsFullVersion = Drools.class.getPackage().getImplementationVersion();
Expand All @@ -35,13 +39,13 @@ public class Drools {
}
}

String[] versionSplit = droolsFullVersion.split("\\.");
droolsMajorVersion = Integer.parseInt(versionSplit[0]);
droolsMinorVersion = Integer.parseInt(versionSplit[1]);
int pos = versionSplit[2].indexOf('-');
droolsRevisionVersion = pos >= 0 ?
Integer.parseInt(versionSplit[2].substring(0, pos)) :
Integer.parseInt(versionSplit[2]);
Matcher m = VERSION_PAT.matcher(droolsFullVersion);
if( m.matches() ) {
droolsMajorVersion = Integer.parseInt(m.group(1));
droolsMinorVersion = Integer.parseInt(m.group(2));
droolsRevisionVersion = Integer.parseInt(m.group(3));
droolsRevisionClassifier = m.group(5);
}
}

public static String getFullVersion() {
Expand All @@ -60,6 +64,10 @@ public static int getRevisionVersion() {
return droolsRevisionVersion;
}

public static String getRevisionClassifier() {
return droolsRevisionClassifier;
}

public static boolean isCompatible(int major, int minor, int revision) {
if (major != droolsMajorVersion) {
return false;
Expand Down

0 comments on commit 5d5bddf

Please sign in to comment.