Hi Yavor,

I favour option 2.

When you say "post-install", I think this can be part of the commands for installing java rather than using the VanillaSoftwareProcess "post.install.command".

--
For SameServer entity, then it's the responsibility of the blueprint author (i.e. the person choosing to use SameServer entity) to ensure they are not asking for an impossible/conflicting configuration. If they need better separation on a machine, they could consider using Docker containers with the http://clocker.io downstream project.

For BYON, the user should understanding we will automatically install things and configure the machine. Again option 2 seems better than either failing or uninstalling what was already there.

Aled


On 28/03/2016 10:09, Yavor Yanchev wrote:
Hi All,

I want to discuss a case when RH-based VM is provisioned and the image comes with pre-installed java 6 or 7, but the BP requires latest java (java 8 as of now). This particular case is rare for now, because Brooklyn specifies java 7 by default, but it will became common when java 8 is set as the version expected by Brooklyn.

RH-based distros usually use the openjdk SRPMs provided by RedHat and then just recompile them. All SRPMs have a SPEC file used during its rebuild. It specifies how the particular java version will be installed and what will be the *priority* in case of multiple versions. The *priority* itself is passed as a configuration parameter to the *alternatives* executable [1]. OpenJDK 6 and 7 packages use priority similar to *1700%{updatever}*, but OpenJDK 8 - 18%{updatever}. When VM is provisioned and the image contains JDK 6 or 7 the already installed java version has much higher priority than the expected one for JDK8. For example: JDK 6 will have a priority number as 160075, and then JDK 8 will have 1875 - *1600075 > 1875* The provisioned VM will have 2 versions of java, but the one with the higher priority will be used. It will be a problem with the deployed software if it requires Java 8.

It seems that it is a intended behavior described in RedHat's bug tracking system [2]

We have the following options to address the issue:
1. Leave it as it is and update the docs so the users are aware, if they use images with per-installed Java packages 2. Provide a post-install configuration (using the *alternatives* tool) to ensure that the intended java version is set as a default option 3. Ensure that all previously installed java versions are removed (yum remove) , before installing Java 8

Maybe option 2) is preferable, but not entirely sure for the BYON or SameServer scenarios where we can find a java version that is used by an already installed applications.

What do you think will be the best approach to fix and/or workaround it?

Regards,
Yavor

[1] https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Administration_and_Configuration_Guide/Configure_the_Default_JDK_on_Red_Hat_Enterprise_Linux.html
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1175457#c33


Reply via email to