[
https://issues.jboss.org/browse/JBDS-2797?page=com.atlassian.jira.plugin....
]
Nick Boldt edited comment on JBDS-2797 at 10/15/13 12:31 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*
variations on the .ini file name: do we really need 3 combinations here? 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}public
static void addJREPath(String installPath, String execPath) {
File pathOld = new File(installPath + File.separator + "eclipse" +
File.separator
+ "eclipse.ini");
File pathNew1 = new File(installPath + File.separator + "studio" +
File.separator
+ "jbdevstudio.ini");
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");
if(pathOld.exists() ) {
addJVM(execPath, pathOld);
} else if(pathNew1.exists()) {
addJVM(execPath, pathNew1);
} else if(pathNew2.exists()) {
addJVM(execPath, pathNew2);
if(pathNew3.exists()) {
addJVM(execPath, pathNew3);
}
} else if(pathNew3.exists()) {
addJVM(execPath, pathNew3);
} else if(pathNew4.exists()) {
addJVM(execPath, pathNew4);
}
}
{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, plus *two*
variations on the .ini file name: do we really need 3 combinations here? 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} public
static void addJREPath(String installPath, String execPath) {
File pathOld = new File(installPath + File.separator + "eclipse" +
File.separator
+ "eclipse.ini");
File pathNew1 = new File(installPath + File.separator + "studio" +
File.separator
+ "jbdevstudio.ini");
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");
if(pathOld.exists() ) {
addJVM(execPath, pathOld);
} else if(pathNew1.exists()) {
addJVM(execPath, pathNew1);
} else if(pathNew2.exists()) {
addJVM(execPath, pathNew2);
if(pathNew3.exists()) {
addJVM(execPath, pathNew3);
}
} else if(pathNew3.exists()) {
addJVM(execPath, pathNew3);
} else if(pathNew4.exists()) {
addJVM(execPath, pathNew4);
}
}
{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