1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski package installer; 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski import java.lang.String; 25*b1cdbd2cSJim Jagielski import java.io.*; 26*b1cdbd2cSJim Jagielski import javax.swing.*; 27*b1cdbd2cSJim Jagielski public class Register{ 28*b1cdbd2cSJim Jagielski private static String[] singletonDefParams = { "drafts.com.sun.star.script.framework.theScriptRuntimeForJava=drafts.com.sun.star.script.framework.ScriptRuntimeForJava", 29*b1cdbd2cSJim Jagielski "drafts.com.sun.star.script.framework.storage.theScriptStorageManager=drafts.com.sun.star.script.framework.storage.ScriptStorageManager", 30*b1cdbd2cSJim Jagielski "drafts.com.sun.star.script.framework.theScriptRuntimeManager=drafts.com.sun.star.script.framework.ScriptRuntimeManager"}; 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski quotedString( String stringToQuote )33*b1cdbd2cSJim Jagielski private static String quotedString ( String stringToQuote ) { 34*b1cdbd2cSJim Jagielski String doubleQuote = "\""; 35*b1cdbd2cSJim Jagielski String result = new String ( doubleQuote + stringToQuote + doubleQuote ); 36*b1cdbd2cSJim Jagielski return result; 37*b1cdbd2cSJim Jagielski } regSingletons( String path, String progPath, String opSys, JLabel statusLabel )38*b1cdbd2cSJim Jagielski private static boolean regSingletons( String path, String progPath, String opSys, JLabel statusLabel ) { 39*b1cdbd2cSJim Jagielski try{ 40*b1cdbd2cSJim Jagielski boolean goodResult = false; 41*b1cdbd2cSJim Jagielski String[] env = new String[1]; 42*b1cdbd2cSJim Jagielski String regCmd = null; 43*b1cdbd2cSJim Jagielski ExecCmd command = new ExecCmd(); 44*b1cdbd2cSJim Jagielski for ( int i=0; i<singletonDefParams.length; i++){ 45*b1cdbd2cSJim Jagielski if ( opSys.indexOf( "Windows" ) == -1 ){ 46*b1cdbd2cSJim Jagielski // Not windows 47*b1cdbd2cSJim Jagielski env[0] = "LD_LIBRARY_PATH=" + progPath; 48*b1cdbd2cSJim Jagielski command.exec( "chmod a+x " + progPath + "regsingleton", null ); 49*b1cdbd2cSJim Jagielski regCmd = progPath + "regsingleton " + path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb " + singletonDefParams[i]; 50*b1cdbd2cSJim Jagielski goodResult = command.exec( regCmd, env ); 51*b1cdbd2cSJim Jagielski } 52*b1cdbd2cSJim Jagielski else { 53*b1cdbd2cSJim Jagielski // Windows 54*b1cdbd2cSJim Jagielski regCmd = quotedString( progPath + "regsingleton.exe" ) + " " + quotedString( path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb" ) + " " + quotedString( singletonDefParams[i] ); 55*b1cdbd2cSJim Jagielski goodResult = command.exec( regCmd,null ); 56*b1cdbd2cSJim Jagielski } 57*b1cdbd2cSJim Jagielski if ( !goodResult ){ 58*b1cdbd2cSJim Jagielski System.out.println("Regsingleton cmd failed, cmd: " + regCmd ); 59*b1cdbd2cSJim Jagielski statusLabel.setText("Regsingleton ScriptRuntimeForJava Failed, please view SFrameworkInstall.log"); 60*b1cdbd2cSJim Jagielski return false; 61*b1cdbd2cSJim Jagielski } 62*b1cdbd2cSJim Jagielski } 63*b1cdbd2cSJim Jagielski } 64*b1cdbd2cSJim Jagielski catch ( Exception e ) { 65*b1cdbd2cSJim Jagielski String message = "\nError installing scripting package, please view SFrameworkInstall.log."; 66*b1cdbd2cSJim Jagielski System.out.println(message); 67*b1cdbd2cSJim Jagielski e.printStackTrace(); 68*b1cdbd2cSJim Jagielski statusLabel.setText(message); 69*b1cdbd2cSJim Jagielski return false; 70*b1cdbd2cSJim Jagielski } 71*b1cdbd2cSJim Jagielski return true; 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski } register(String path, JLabel statusLabel)75*b1cdbd2cSJim Jagielski public static boolean register(String path, JLabel statusLabel) { 76*b1cdbd2cSJim Jagielski String[] packages = {"ooscriptframe.zip", "bshruntime.zip", "jsruntime.zip"}; 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski try { 79*b1cdbd2cSJim Jagielski String s=null; 80*b1cdbd2cSJim Jagielski boolean goodResult = false; 81*b1cdbd2cSJim Jagielski String env[] = new String[1]; 82*b1cdbd2cSJim Jagielski ExecCmd command = new ExecCmd(); 83*b1cdbd2cSJim Jagielski boolean isWindows = 84*b1cdbd2cSJim Jagielski (System.getProperty("os.name").indexOf("Windows") != -1); 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski String progpath = path.concat("program" + File.separator); 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski statusLabel.setText("Registering Scripting Framework..."); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski // pkgchk Scripting Framework Components 91*b1cdbd2cSJim Jagielski statusLabel.setText("Registering Scripting Framework Components..."); 92*b1cdbd2cSJim Jagielski System.out.println("Registering Scripting Framework Components..."); 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski for (int i = 0; i < packages.length; i++) { 95*b1cdbd2cSJim Jagielski String cmd = ""; 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski if (!isWindows) { 98*b1cdbd2cSJim Jagielski env[0]="LD_LIBRARY_PATH=" + progpath; 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski goodResult = command.exec("chmod a+x " + progpath + "pkgchk", null ); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski if ( goodResult ){ 103*b1cdbd2cSJim Jagielski cmd = progpath + "pkgchk -s -f " + progpath + packages[i]; 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski System.err.println(cmd); 106*b1cdbd2cSJim Jagielski goodResult = command.exec(cmd, env); 107*b1cdbd2cSJim Jagielski } 108*b1cdbd2cSJim Jagielski } 109*b1cdbd2cSJim Jagielski else { 110*b1cdbd2cSJim Jagielski cmd = "\"" + progpath + "pkgchk.exe\" -s -f \"" + progpath + 111*b1cdbd2cSJim Jagielski packages[i] + "\""; 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski System.err.println(cmd); 114*b1cdbd2cSJim Jagielski goodResult =command.exec(cmd,null); 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski } 117*b1cdbd2cSJim Jagielski if (!goodResult) { 118*b1cdbd2cSJim Jagielski System.err.println("\nPkgChk Failed"); 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski if(!isWindows) 121*b1cdbd2cSJim Jagielski System.err.println("Command: " + cmd + "\n" + env[0]); 122*b1cdbd2cSJim Jagielski else 123*b1cdbd2cSJim Jagielski System.err.println("Command: \"" + cmd + "\""); 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski statusLabel.setText( 126*b1cdbd2cSJim Jagielski "PkgChk Failed, please view SFrameworkInstall.log"); 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski return false; 129*b1cdbd2cSJim Jagielski } 130*b1cdbd2cSJim Jagielski } 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski // if ( !regSingletons( path, progpath, opSys, statusLabel ) ) 133*b1cdbd2cSJim Jagielski // { 134*b1cdbd2cSJim Jagielski // return false; 135*b1cdbd2cSJim Jagielski // } 136*b1cdbd2cSJim Jagielski // updating ProtocolHandler 137*b1cdbd2cSJim Jagielski /* statusLabel.setText("Updating ProtocolHandler..."); 138*b1cdbd2cSJim Jagielski if(!FileUpdater.updateProtocolHandler(path, statusLabel)) { 139*b1cdbd2cSJim Jagielski statusLabel.setText("Updating ProtocolHandler failed, please view SFrameworkInstall.log"); 140*b1cdbd2cSJim Jagielski return false; 141*b1cdbd2cSJim Jagielski } */ 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski // updating StarBasic libraries 144*b1cdbd2cSJim Jagielski statusLabel.setText("Updating StarBasic libraries..."); 145*b1cdbd2cSJim Jagielski if(!FileUpdater.updateScriptXLC(path, statusLabel)) { 146*b1cdbd2cSJim Jagielski statusLabel.setText("Updating user/basic/script.xlc failed, please view SFrameworkInstall.log"); 147*b1cdbd2cSJim Jagielski return false; 148*b1cdbd2cSJim Jagielski } 149*b1cdbd2cSJim Jagielski if(!FileUpdater.updateDialogXLC(path, statusLabel)) { 150*b1cdbd2cSJim Jagielski statusLabel.setText("Updating user/basic/dialog.xlc failed, please view SFrameworkInstall.log"); 151*b1cdbd2cSJim Jagielski return false; 152*b1cdbd2cSJim Jagielski } 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski } 155*b1cdbd2cSJim Jagielski catch(Exception e){ 156*b1cdbd2cSJim Jagielski String message = "\nError installing scripting package, please view SFrameworkInstall.log."; 157*b1cdbd2cSJim Jagielski System.out.println(message); 158*b1cdbd2cSJim Jagielski e.printStackTrace(); 159*b1cdbd2cSJim Jagielski statusLabel.setText(message); 160*b1cdbd2cSJim Jagielski return false; 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski return true; 163*b1cdbd2cSJim Jagielski }// register 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski }//Register 166