|
|
|
|
@ -39,7 +39,8 @@ public static void main(String[] args) throws Exception
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
Class c = Class.forName(chainMain);
|
|
|
|
|
final Method m = c.getMethod("main", _chainArgs.getClass());
|
|
|
|
|
final Method m = c.getMethod("main",
|
|
|
|
|
new Class[] {_chainArgs.getClass()});
|
|
|
|
|
new Thread()
|
|
|
|
|
{
|
|
|
|
|
public void run()
|
|
|
|
|
@ -79,20 +80,22 @@ public void run()
|
|
|
|
|
LogManager.getLogManager().getLogger("").addHandler(new FileHandler());
|
|
|
|
|
LogManager.getLogManager().getLogger("")
|
|
|
|
|
.addHandler(new ConsoleHandler());
|
|
|
|
|
for (Handler h : LogManager.getLogManager().getLogger("").getHandlers())
|
|
|
|
|
h.setFormatter(new ScLogFormatter());
|
|
|
|
|
|
|
|
|
|
Handler[] h = LogManager.getLogManager().getLogger("").getHandlers();
|
|
|
|
|
for (int i = 0; i < h.length; i++)
|
|
|
|
|
h[i].setFormatter(new ScLogFormatter());
|
|
|
|
|
|
|
|
|
|
// be evil :-)
|
|
|
|
|
// find the path of the nativelibs under webstart (findLibrary is
|
|
|
|
|
// protected and therefore at least documented api)
|
|
|
|
|
Method findLibrary =
|
|
|
|
|
SIPCommunicatorJWS.class.getClassLoader().getClass()
|
|
|
|
|
.getDeclaredMethod("findLibrary", String.class);
|
|
|
|
|
.getDeclaredMethod("findLibrary", new Class[] {String.class});
|
|
|
|
|
findLibrary.setAccessible(true);
|
|
|
|
|
File path =
|
|
|
|
|
new File((String) findLibrary.invoke(
|
|
|
|
|
SIPCommunicatorJWS.class.getClassLoader(), "hid"))
|
|
|
|
|
.getParentFile();
|
|
|
|
|
SIPCommunicatorJWS.class.getClassLoader(),
|
|
|
|
|
new Object[] {"hid"})).getParentFile();
|
|
|
|
|
System.setProperty(
|
|
|
|
|
"java.library.path",
|
|
|
|
|
System.getProperty("java.library.path") + File.pathSeparator
|
|
|
|
|
@ -114,19 +117,24 @@ public void run()
|
|
|
|
|
System.getProperty("net.java.sip.communicator.SC_JWS_BASEDIR");
|
|
|
|
|
ClassLoader cl = SIPCommunicatorJWS.class.getClassLoader();
|
|
|
|
|
Method getJarFile =
|
|
|
|
|
cl.getClass().getDeclaredMethod("getJarFile", URL.class);
|
|
|
|
|
cl.getClass().getDeclaredMethod("getJarFile",
|
|
|
|
|
new Class[] {URL.class});
|
|
|
|
|
getJarFile.setAccessible(true);
|
|
|
|
|
for (Map.Entry<Object, Object> e : pIn.entrySet())
|
|
|
|
|
|
|
|
|
|
Iterator propIt = pIn.entrySet().iterator();
|
|
|
|
|
while (propIt.hasNext())
|
|
|
|
|
{
|
|
|
|
|
Map.Entry e = (Map.Entry) propIt.next();
|
|
|
|
|
if (((String) e.getKey()).startsWith("felix.auto.start."))
|
|
|
|
|
{
|
|
|
|
|
String[] refs = ((String) e.getValue()).split("\\s");
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
for (String ref : refs)
|
|
|
|
|
for (int i = 0; i < refs.length; i++)
|
|
|
|
|
{
|
|
|
|
|
String ref = refs[i];
|
|
|
|
|
JarFile localFile =
|
|
|
|
|
(JarFile) getJarFile.invoke(cl, new URL(baseServerUrl
|
|
|
|
|
+ ref.replace("@URL@", "")));
|
|
|
|
|
(JarFile) getJarFile.invoke(cl, new Object[] {
|
|
|
|
|
new URL(baseServerUrl + ref.replace("@URL@", ""))});
|
|
|
|
|
if (localFile != null)
|
|
|
|
|
{
|
|
|
|
|
String localFileName =
|
|
|
|
|
@ -164,8 +172,9 @@ public void run()
|
|
|
|
|
File desktop =
|
|
|
|
|
new File(System.getProperty("user.home") + "/Desktop");
|
|
|
|
|
File[] files = desktop.listFiles();
|
|
|
|
|
for (File file : files)
|
|
|
|
|
for (int i = 0; i < files.length; i++)
|
|
|
|
|
{
|
|
|
|
|
File file = files[i];
|
|
|
|
|
if (file.getName().contains("jws_app_shortcut_"))
|
|
|
|
|
{
|
|
|
|
|
file.setExecutable(true, false);
|
|
|
|
|
@ -178,7 +187,7 @@ public void run()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Handle the "-open" argument from the javaws command line
|
|
|
|
|
Vector<String> _args = new Vector<String>();
|
|
|
|
|
Vector _args = new Vector();
|
|
|
|
|
for(int i = 0; i < args.length ; i++)
|
|
|
|
|
{
|
|
|
|
|
String arg = args[i];
|
|
|
|
|
@ -203,6 +212,6 @@ public void run()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// launch the original app
|
|
|
|
|
SIPCommunicator.main(_args.toArray(new String[] {}));
|
|
|
|
|
SIPCommunicator.main((String[])_args.toArray(new String[_args.size()]));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|