Details
-
Feature Request
-
Resolution: Won't Do
-
Major
-
None
-
None
-
None
Description
A condition element should look like this:
<condition value="os.name =^ 'linux' and %os.version ge %'3.0'"> <system .../> </condition>
The condition expression should support the following logical operators:
- and
- or
- not
- xor
The condition expression should support the following relational operators for comparing values:
- = (equality), alias eq
- != (inequality), alias ne
- =^ (equality without case), alias eq^
- !=^ (inequality without case), alias ne^
- < (less-than), alias lt
- <= (less-than-or-equal-to), alias le
- >= (greater-than-or-equal-to), alias ge
- > (greater-than), alias gt
- <^ (less-than without case), alias lt^
- <=^ (less-than-or-equal-to without case), alias le^
- >=^ (greater-than-or-equal-to without case), alias ge^
- >^ (greater-than without case), alias gt^
- =~ (matches regular expression)
- =~^ (matches regular expression without case)
The following other operators should be supported:
- ( ) (parentheses for grouping)
- $ (unary, force string interpretation)
- # (unary, force numeric interpretation)
- % (unary, force dot-separated version interpretation)
The following items should be available for condition checks:
- JRE version
- JRE vendor
- JVM spec version
- JVM impl version
- JVM impl vendor
- JVM impl name
- JRE spec version
- Class format version
- JIT compiler name
- OS name (both JDK's and ours)
- OS architecture (both JDK's and ours)
- OS version
The following elements should support conditions:
- dependency elements (module, system, and any future types)
- resource root elements
- native library spec elements