Details
-
Type:
New Feature
-
Status:
Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: 3.1
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
When creating webstart application, we need to solve problem with versions in versioned JNLP download server. If the SNAPSHOT versions are used, the major and minor versions are used and there is no chance for versioned JNLP download to serve fresh versions of packages.
There is a resolved issue in NetBeans nbbuild ant task MakeJNLP (see http://www.netbeans.org/issues/show_bug.cgi?id=160613 ), which gets version from OpenIDE-Module-Specification-Version or Specification-Version and puts it into version.xml and version attribut in jnlp file. Original version of path used OpenIDE-Module-Implementation-Version (Implementation-Version), but it was changed into OpenIDE-Module-Specification-Version (Specification-Version) by developers of NetBeans.
Actual version of nbm-maven-plugin changes string "-SNAPSHOT" in version to timestamp in case of OpenIDE-Module-Implementation-Version, but in case of OpenIDE-Module-Specification-Version this string (and others, like RC, ...) are stripped without possibility to change this behavior.
Proposed solution is to change behavior in AdaptNBVersion.java to behave same for both "spec" and "impl" types. We need to replace string "-SNAPSHOT" for OIDE-M-S-V by timestamp, as it is in case of OIDE-M-I-V.
There should be also parameter, specifying pattern for timestamp - default should be "yyyyMMdd" and we can change it to eg. "yyyyMMddHHmmss"
you seem to have a misconception of what the specification-version denotes. It's not a build number. the spec version is stripped, because that's the constraint of spec versions which have format x.y.z.
SNAPSHOTs in general are not for customer consumption, but development snapshots. I suppose you can force jnlp redownload by deleting local caches.
The same principle/problem applies to netbeans update center which will only serve a new version of a module when the spec version is increased. Even if a binary with newer content, it will only be updated if no or lower spec version is present at the client side. This can indeed cause a situation where multiple clients have different local code executed based on when the code was downloaded.
It's not entirely compatible with maven versioning where you shall have only a single released binary for a given version.
if you actually need a timestamped version of your modules (which i doubt is the case) then you can IMHO achieve the same by actually releasing a new version of the module(s) with each "official build".