[jbosstools-issues] [JBoss JIRA] (JBDS-2797) .ini upgrade issue for 7.0.1 users

Nick Boldt (JIRA) jira-events at lists.jboss.org
Tue Oct 15 12:19:36 EDT 2013


    [ https://issues.jboss.org/browse/JBDS-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12814255#comment-12814255 ] 

Nick Boldt edited comment on JBDS-2797 at 10/15/13 12:19 PM:
-------------------------------------------------------------

Looking into the scripts that control creation of the installer... I see:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/resources/readme.txt#L17}
For OS X the application is as <install-path>/JBoss Developer Studio.app
{code}

Yet we target *studio/jbdevstudio.app/* instead of into *studio/JBoss Developer Studio.app/*. Why?

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/install-pack-universal.xml#L45}
      <singlefile src="config/resources/JBoss Developer Studio.app/Contents/Info.plist" target="$INSTALL_PATH/studio/jbdevstudio.app/Contents/Info.plist" override="true" os="mac" />
{code}

SimpleFinishPanel *does* launch the correct .app:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/izforge/izpack/panels/SimpleFinishPanel.java#L180}
	if(OsVersion.IS_MAC){
command = new String[3];
command[0] = "open";
command[1] = "-a";
command[2] = path+File.separator+"JBoss Developer Studio.app";
{code}

But p2-meta-gen-script.xml launches the wrong one:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/resources/p2-meta-gen-script.xml#L15}
<condition property="jbdevstudio" value="jbdevstudio.app/Contents/MacOS/jbdevstudio" else="jbdevstudio">
<os family="mac" />
</condition>
<exec executable="${install-root}/studio/${jbdevstudio}" taskname="p2">
<arg value="-application" />
<arg value="com.jboss.jbds.product.EclipseGenerator" />
<arg value="-noSplash" />
<arg value="-clean" />
</exec>
{code}

And in CreateLinkPanel, we appear to use both *JBoss Developer Studio.app* and *jbdevstudio.app*, renaming one to the other and creating a symlink in the install folder root:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/jboss/jbds/installer/CreateLinkPanel.java#L54-87}
	File app = new File(studio,"jbdevstudio.app");
if(app.exists()) {
app.renameTo(new File(studio,"JBoss Developer Studio.app"));
}
createSoftLink();

...

	if(OsVersion.IS_OSX) {
File oldLauncher = new File(launcherLocation,"JBoss Developer Studio.app");
if(oldLauncher.exists()) {
launcherName = "JBoss Developer Studio.app";
} else {
launcherName = "jbdevstudio.app";
}
}
cmd.append("cd \"").append(installPath).append("\"\n")
.append("ln -s \"." + File.separator + "studio" + File.separator)
.append(launcherName + "\"")
.append(" \"" + launcherName + "\"");
{code}

Here we have a mix of *JBoss Developer Studio.app* and *jbdevstudio.app* usage, plus two variation on the .ini file name: do we really need 3 variations? Why not just ONE?

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/jboss/jbds/installer/CreateLinkPanel.java#L171-193}
	File pathNew2 = new File(installPath + File.separator + "studio" + File.separator
+ "JBoss Developer Studio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "JBoss Developer Studio.ini");
File pathNew3 = new File(installPath + File.separator + "studio" + File.separator
+ "jbdevstudio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "jbdevstudio.ini");
File pathNew4 = new File(installPath + File.separator + "studio" + File.separator
+ "JBoss Developer Studio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "jbdevstudio.ini");
{code}

                
      was (Author: nickboldt):
    Looking into the scripts that control creation of the installer... I see:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/resources/readme.txt#L17}
For OS X the application is as <install-path>/JBoss Developer Studio.app
{code}

Yet we target *studio/jbdevstudio.app/* instead of into *studio/JBoss Developer Studio.app/*. Why?

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/install-pack-universal.xml#L45}
      <singlefile src="config/resources/JBoss Developer Studio.app/Contents/Info.plist" target="$INSTALL_PATH/studio/jbdevstudio.app/Contents/Info.plist" override="true" os="mac" />
{code}

SimpleFinishPanel *does* launch the correct .app:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/izforge/izpack/panels/SimpleFinishPanel.java#L180}
	if(OsVersion.IS_MAC){
command = new String[3];
command[0] = "open";
command[1] = "-a";
command[2] = path+File.separator+"JBoss Developer Studio.app";
{code}

But p2-meta-gen-script.xml launches the wrong one:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/config/resources/p2-meta-gen-script.xml#L15}
<condition property="jbdevstudio" value="jbdevstudio.app/Contents/MacOS/jbdevstudio" else="jbdevstudio">
<os family="mac" />
</condition>
<exec executable="${install-root}/studio/${jbdevstudio}" taskname="p2">
<arg value="-application" />
<arg value="com.jboss.jbds.product.EclipseGenerator" />
<arg value="-noSplash" />
<arg value="-clean" />
</exec>
{code}

And in CreateLinkPanel, we appear to use both *JBoss Developer Studio.app* and *jbdevstudio.app*, renaming one to the other and creating a symlink in the install folder root:

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/jboss/jbds/installer/CreateLinkPanel.java#L54-87}
	File app = new File(studio,"jbdevstudio.app");
if(app.exists()) {
app.renameTo(new File(studio,"JBoss Developer Studio.app"));
}
createSoftLink();

...

	if(OsVersion.IS_OSX) {
File oldLauncher = new File(launcherLocation,"JBoss Developer Studio.app");
if(oldLauncher.exists()) {
launcherName = "JBoss Developer Studio.app";
} else {
launcherName = "jbdevstudio.app";
}
}
cmd.append("cd \"").append(installPath).append("\"\n")
.append("ln -s \"." + File.separator + "studio" + File.separator)
.append(launcherName + "\"")
.append(" \"" + launcherName + "\"");
{code}

Here we have a mix of *JBoss Developer Studio.app* and *jbdevstudio.app* usage: do we really need both paths?

{code:title=https://github.com/jbdevstudio/jbdevstudio-product/blob/jbosstools-4.1.0.x/installer/src/panels/com/jboss/jbds/installer/CreateLinkPanel.java#L171-193}
	File pathNew2 = new File(installPath + File.separator + "studio" + File.separator
+ "JBoss Developer Studio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "JBoss Developer Studio.ini");
File pathNew3 = new File(installPath + File.separator + "studio" + File.separator
+ "jbdevstudio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "jbdevstudio.ini");
File pathNew4 = new File(installPath + File.separator + "studio" + File.separator
+ "JBoss Developer Studio.app" + File.separator + "Contents" + File.separator +"MacOS" + File.separator
+ "jbdevstudio.ini");
{code}

                  
> .ini upgrade issue for 7.0.1 users
> ----------------------------------
>
>                 Key: JBDS-2797
>                 URL: https://issues.jboss.org/browse/JBDS-2797
>             Project: Developer Studio (JBoss Developer Studio)
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: build, installer
>    Affects Versions: 7.0.1.GA
>            Reporter: Max Rydahl Andersen
>            Assignee: Nick Boldt
>            Priority: Critical
>
> User noticed issues with 7.0.0 to 7.0.1 updates at https://community.jboss.org/message/841477#841477 that needs investigation.
> The post is about osx but I don't think this is limited to this OS, just that OSX has a different java behavior.
> Worrisome issues are:
> development url used in GA update:
> -Djboss.discovery.directory.url=https://devstudio.jboss.com/updates/7.0-development/devstudio-directory.xml
> startup/launcher directories are hardcoded in the .ini file:
> -startup
> ../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
> --launcher.library
> ../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20130807-1835
> Have these been forgotten/set wrong in the update or is this some specific update path that is failing ?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosstools-issues mailing list