mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
Update installer.
git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@8987 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<install4j version="4.0.5" transformSequenceNumber="1">
|
<install4j version="4.0.5" transformSequenceNumber="1">
|
||||||
<directoryPresets config="../../documentation" />
|
<directoryPresets config="../../target/classes/org/jivesoftware/launcher" />
|
||||||
<application name="${compiler:APP_NAME}" distributionSourceDir="" applicationId="3057-7228-2063-7466" mediaDir="../../../../.." mediaFilePattern="spark_${compiler:sys.version}" compression="9" lzmaCompression="true" pack200Compression="false" excludeSignedFromPacking="true" keepModificationTimes="false" shortName="${compiler:APP_SHORT_NAME}" publisher="${compiler:PUBLISHER}" publisherWeb="${compiler:PUBLISHER_URL}" version="${compiler:VERSION_MAJOR}.${compiler:VERSION_MINOR}.${compiler:VERSION_REVISION}" allPathsRelative="true" backupOnSave="false" autoSave="false" convertDotsToUnderscores="true" macSignature="????" javaMinVersion="1.5" javaMaxVersion="1.6" allowBetaVM="false">
|
<application name="${compiler:APP_NAME}" distributionSourceDir="" applicationId="3057-7228-2063-7466" mediaDir="../../../../.." mediaFilePattern="spark_${compiler:sys.version}" compression="9" lzmaCompression="true" pack200Compression="false" excludeSignedFromPacking="true" keepModificationTimes="false" shortName="${compiler:APP_SHORT_NAME}" publisher="${compiler:PUBLISHER}" publisherWeb="${compiler:PUBLISHER_URL}" version="${compiler:VERSION_MAJOR}.${compiler:VERSION_MINOR}.${compiler:VERSION_REVISION}" allPathsRelative="true" backupOnSave="false" autoSave="false" convertDotsToUnderscores="true" macSignature="????" javaMinVersion="1.5" javaMaxVersion="1.6" allowBetaVM="false">
|
||||||
<languages skipLanguageSelection="false">
|
<languages skipLanguageSelection="false">
|
||||||
<principalLanguage id="en" customLocalizationFile="" />
|
<principalLanguage id="en" customLocalizationFile="" />
|
||||||
@ -215,18 +215,6 @@
|
|||||||
</serializedBean>
|
</serializedBean>
|
||||||
<condition />
|
<condition />
|
||||||
</action>
|
</action>
|
||||||
<action name="" id="29" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
|
||||||
<serializedBean>
|
|
||||||
<java class="java.beans.XMLDecoder">
|
|
||||||
<object class="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction">
|
|
||||||
<void property="programGroupName">
|
|
||||||
<string>${compiler:sys.fullName}</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</java>
|
|
||||||
</serializedBean>
|
|
||||||
<condition />
|
|
||||||
</action>
|
|
||||||
<action name="" id="30" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
<action name="" id="30" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
||||||
<serializedBean>
|
<serializedBean>
|
||||||
<java class="java.beans.XMLDecoder">
|
<java class="java.beans.XMLDecoder">
|
||||||
@ -251,6 +239,18 @@
|
|||||||
</serializedBean>
|
</serializedBean>
|
||||||
<condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
|
<condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="" id="29" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
||||||
|
<serializedBean>
|
||||||
|
<java class="java.beans.XMLDecoder">
|
||||||
|
<object class="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction">
|
||||||
|
<void property="programGroupName">
|
||||||
|
<string>${compiler:sys.fullName}</string>
|
||||||
|
</void>
|
||||||
|
</object>
|
||||||
|
</java>
|
||||||
|
</serializedBean>
|
||||||
|
<condition />
|
||||||
|
</action>
|
||||||
</actions>
|
</actions>
|
||||||
<formComponents />
|
<formComponents />
|
||||||
</screen>
|
</screen>
|
||||||
@ -263,6 +263,27 @@
|
|||||||
<condition />
|
<condition />
|
||||||
<validation />
|
<validation />
|
||||||
<actions>
|
<actions>
|
||||||
|
<action name="" id="72" beanClass="com.install4j.runtime.beans.actions.registry.SetRegistryValueAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
||||||
|
<serializedBean>
|
||||||
|
<java class="java.beans.XMLDecoder">
|
||||||
|
<object class="com.install4j.runtime.beans.actions.registry.SetRegistryValueAction">
|
||||||
|
<void property="keyName">
|
||||||
|
<string>Software\\Microsoft\\Windows\\CurrentVersion\\Run</string>
|
||||||
|
</void>
|
||||||
|
<void property="registryRoot">
|
||||||
|
<object class="com.install4j.api.windows.RegistryRoot" field="HKEY_CURRENT_USER" />
|
||||||
|
</void>
|
||||||
|
<void property="value">
|
||||||
|
<string>${installer:sys.installationDir}${compiler:APP_SHORT_NAME}</string>
|
||||||
|
</void>
|
||||||
|
<void property="valueName">
|
||||||
|
<string>Spark</string>
|
||||||
|
</void>
|
||||||
|
</object>
|
||||||
|
</java>
|
||||||
|
</serializedBean>
|
||||||
|
<condition />
|
||||||
|
</action>
|
||||||
<action name="" id="41" beanClass="com.install4j.runtime.beans.actions.finish.ExecuteLauncherAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
<action name="" id="41" beanClass="com.install4j.runtime.beans.actions.finish.ExecuteLauncherAction" rollbackBarrier="false" multiExec="false" failureStrategy="1" errorMessage="">
|
||||||
<serializedBean>
|
<serializedBean>
|
||||||
<java class="java.beans.XMLDecoder">
|
<java class="java.beans.XMLDecoder">
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -10,30 +10,34 @@
|
|||||||
|
|
||||||
package org.jivesoftware.launcher;
|
package org.jivesoftware.launcher;
|
||||||
|
|
||||||
import com.install4j.api.InstallAction;
|
|
||||||
import com.install4j.api.InstallerWizardContext;
|
import com.install4j.api.actions.InstallAction;
|
||||||
import com.install4j.api.ProgressInterface;
|
import com.install4j.api.context.Context;
|
||||||
import com.install4j.api.UserCanceledException;
|
import com.install4j.api.context.InstallerContext;
|
||||||
|
import com.install4j.api.context.UserCanceledException;
|
||||||
|
import com.install4j.api.windows.RegistryRoot;
|
||||||
import com.install4j.api.windows.WinRegistry;
|
import com.install4j.api.windows.WinRegistry;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The installer class is used by the Install4j Installer to setup registry entries
|
* The installer class is used by the Install4j Installer to setup registry entries
|
||||||
* during the setup process.
|
* during the setup process.
|
||||||
*/
|
*/
|
||||||
public class Installer extends InstallAction {
|
public class Installer implements InstallAction {
|
||||||
|
|
||||||
private InstallerWizardContext context;
|
private InstallerContext context;
|
||||||
|
|
||||||
public int getPercentOfTotalInstallation() {
|
public int getPercentOfTotalInstallation() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean performAction(InstallerWizardContext installerWizardContext, ProgressInterface progressInterface) throws UserCanceledException {
|
public void init(Context context) {
|
||||||
context = installerWizardContext;
|
}
|
||||||
|
|
||||||
|
public boolean install(InstallerContext installerContext) throws UserCanceledException {
|
||||||
|
context = installerContext;
|
||||||
|
|
||||||
final String osName = System.getProperty("os.name").toLowerCase();
|
final String osName = System.getProperty("os.name").toLowerCase();
|
||||||
boolean isWindows = osName.startsWith("windows");
|
boolean isWindows = osName.startsWith("windows");
|
||||||
@ -42,24 +46,45 @@ public class Installer extends InstallAction {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
addSparkToStartup(installerWizardContext.getInstallationDirectory());
|
final File sparkDirectory;
|
||||||
|
String sparkPath = "";
|
||||||
|
try {
|
||||||
|
String executable = installerContext.getMediaName();
|
||||||
|
|
||||||
|
sparkDirectory = new File(installerContext.getInstallationDirectory(), executable);
|
||||||
|
sparkPath = sparkDirectory.getCanonicalPath();
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sparkPath != null && sparkPath.length() > 0) {
|
||||||
|
// Add Spark to startup
|
||||||
|
addSparkToStartup(sparkPath);
|
||||||
|
|
||||||
|
// Add Spark XMPP:URI mapping
|
||||||
|
setURI(sparkPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void rollback(InstallerContext installerContext) {
|
||||||
|
WinRegistry.deleteValue(RegistryRoot.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "Spark");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds Spark to the users registry.
|
* Adds Spark to the users registry.
|
||||||
*
|
*
|
||||||
* @param dir the installation directory of Spark.
|
* @param sparkPath the canonical path to spark.
|
||||||
*/
|
*/
|
||||||
public void addSparkToStartup(File dir) {
|
public void addSparkToStartup(String sparkPath) {
|
||||||
final File sparkDirectory = new File(dir, "Spark.exe");
|
|
||||||
try {
|
try {
|
||||||
final String sparkPath = sparkDirectory.getCanonicalPath();
|
WinRegistry.setValue(RegistryRoot.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "Spark", sparkPath);
|
||||||
WinRegistry.setValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "Spark", sparkPath);
|
|
||||||
|
|
||||||
setURI(sparkPath);
|
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,18 +95,18 @@ public class Installer extends InstallAction {
|
|||||||
* @param path the installation directory of spark.
|
* @param path the installation directory of spark.
|
||||||
*/
|
*/
|
||||||
private void setURI(String path) {
|
private void setURI(String path) {
|
||||||
boolean exists = WinRegistry.keyExists(WinRegistry.HKEY_CLASSES_ROOT, "xmpp");
|
boolean exists = WinRegistry.keyExists(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp");
|
||||||
if (exists) {
|
if (exists) {
|
||||||
}
|
}
|
||||||
// JOptionPane.showConfirmDialog(null, "Another application is currently registered to handle XMPP instant messaging. Make Spark the default XMPP instant messaging client?", "Confirmation", }
|
// JOptionPane.showConfirmDialog(null, "Another application is currently registered to handle XMPP instant messaging. Make Spark the default XMPP instant messaging client?", "Confirmation", }
|
||||||
WinRegistry.deleteKey(WinRegistry.HKEY_CLASSES_ROOT, "xmpp", true);
|
WinRegistry.deleteKey(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp", true);
|
||||||
|
|
||||||
WinRegistry.createKey(WinRegistry.HKEY_CLASSES_ROOT, "xmpp");
|
WinRegistry.createKey(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp");
|
||||||
WinRegistry.setValue(WinRegistry.HKEY_CLASSES_ROOT, "xmpp", "", "URL:XMPP Address");
|
WinRegistry.setValue(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp", "", "URL:XMPP Address");
|
||||||
WinRegistry.setValue(WinRegistry.HKEY_CLASSES_ROOT, "xmpp", "URL Protocol", "");
|
WinRegistry.setValue(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp", "URL Protocol", "");
|
||||||
|
|
||||||
WinRegistry.createKey(WinRegistry.HKEY_CLASSES_ROOT, "xmpp\\shell\\open\\command");
|
WinRegistry.createKey(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp\\shell\\open\\command");
|
||||||
WinRegistry.setValue(WinRegistry.HKEY_CLASSES_ROOT, "xmpp\\shell\\open\\command", "", path + " %1");
|
WinRegistry.setValue(RegistryRoot.HKEY_CLASSES_ROOT, "xmpp\\shell\\open\\command", "", path + " %1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,43 +0,0 @@
|
|||||||
/**
|
|
||||||
* $Revision: $
|
|
||||||
* $Date: $
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006 Jive Software. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software is published under the terms of the GNU Lesser Public License (LGPL),
|
|
||||||
* a copy of which is included in this distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jivesoftware.launcher;
|
|
||||||
|
|
||||||
import com.install4j.api.Context;
|
|
||||||
import com.install4j.api.ProgressInterface;
|
|
||||||
import com.install4j.api.UninstallAction;
|
|
||||||
import com.install4j.api.windows.WinRegistry;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs registry operations on removal of the Spark client. This is a windows only function.
|
|
||||||
*
|
|
||||||
* @author Derek DeMoro
|
|
||||||
*/
|
|
||||||
public class Uninstaller extends UninstallAction {
|
|
||||||
|
|
||||||
public int getPercentOfTotalInstallation() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean performAction(Context context, ProgressInterface progressInterface) {
|
|
||||||
return super.performAction(context, progressInterface); //To change body of overridden methods use File | Settings | File Templates.
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes Spark from the start up registration in the registry.
|
|
||||||
*
|
|
||||||
* @param dir the directory where Spark resides.
|
|
||||||
*/
|
|
||||||
public void removeStartup(File dir) {
|
|
||||||
WinRegistry.deleteValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "Spark");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user