- Timestamp:
- 03/08/10 21:24:12 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Jav_Transform/src/com/scenari/s/co/transform/oo/HTransformerOo.java
r15012 r15079 56 56 import eu.scenari.fw.log.TraceMgr; 57 57 import eu.scenari.fw.log.TracePoint; 58 import eu.scenari.fw.log.ILogMsg.LogType; 58 59 59 60 /** … … 258 259 259 260 //On recherche dans le classLoader en cours : en fonction du mode déploiement, 260 //les classes Oo peuvent etre déclarées dans le classpath de la Jvm de la JVM. 261 //les classes Oo peuvent etre déclarées dans le classpath de la Jvm ou pas. 262 boolean vSubClassLoaderForUno = true; 261 263 String vUnoBootstrapClassName = "com.sun.star.comp.helper.Bootstrap"; 262 264 try { 263 265 //On teste le chargement des classes Oo 264 266 Class.forName(vUnoBootstrapClassName); 265 //Si c'est bon, on retourne le classLoader en cours. 266 sOoClassLoader = HTransformerOo.class.getClassLoader(); 267 if (sTraceOoClassloader.isEnabled()) sTraceOoClassloader.publishDebug("OO init : no classloader instantiated."); 267 //Si c'est bon, pas besoinde classLoader pour uno. 268 vSubClassLoaderForUno = false; 269 if (sTraceOoClassloader.isEnabled()) sTraceOoClassloader.publishDebug("OO init : no sub-classloader needed for Uno."); 270 } catch (Exception e) { 271 //Classe non spécifiée dans le classpath de la jvm. 272 } 273 274 //On recherche dans le classLoader en cours les classses de l'impl Scenari de transformation. 275 boolean vSubClassLoaderForImpl = true; 276 try { 277 //On teste le chargement des classes Oo 278 Class.forName(OoConnectionPoolLoader.CLASS_CONNECTIONPOOL); 279 //Si c'est bon, pas besoinde classLoader pour l'impl de Scenari. 280 vSubClassLoaderForUno = false; 281 if (sTraceOoClassloader.isEnabled()) sTraceOoClassloader.publishDebug("OO init : no sub-classloader needed for scenari impl."); 282 } catch (Exception e) { 283 //Classe non spécifiée dans le classpath de la jvm. 284 } 285 286 if (!vSubClassLoaderForImpl && vSubClassLoaderForUno) { 287 LogMgr.publishException("Oo class loader config will not work : Scenari classes already defined in classLoader without Uno classes.", LogType.Error); 288 } 289 290 if (!vSubClassLoaderForImpl && !vSubClassLoaderForUno) { 291 //Pas besoin de SubClassLoader. 292 try { 293 sOoClassLoader = Thread.currentThread().getContextClassLoader(); 294 } catch (SecurityException e) { 295 sOoClassLoader = HTransformer.class.getClassLoader(); 296 } 268 297 return sOoClassLoader; 269 } catch (Exception e) {270 //Classe non spécifiée dans le classpath de la jvm.271 298 } 272 299 273 300 //On va chercher l'installation d'Oo sur cette machine. 274 URL[] vLisJars = new URL[9]; 301 int vCountUrls = (vSubClassLoaderForImpl ? 1 : 0) + (vSubClassLoaderForUno ? 8 : 0); 302 URL[] vLisJars = new URL[vCountUrls]; 275 303 int vIdx = 0; 276 vLisJars[vIdx++] = HTransformerOo.class.getResource(sPathOoTransformersClasses); 304 if (vSubClassLoaderForImpl) { 305 vLisJars[vIdx++] = HTransformerOo.class.getResource(sPathOoTransformersClasses); 306 } 277 307 278 308 //System.out.println("URL="+vLisJars[0].toExternalForm()); 279 309 280 //Recherche du dossier program de OpenOffice 281 URL vOoUnoClassFolderUrl = (sOoProgramFolderUrl != null) ? new URL(sOoProgramFolderUrl) : new File(OoFinder.getPath()).toURL(); 282 283 //OO3.x 284 String vUreClassPrefix = (ISWIN ? "../URE/java" : "../basis-link/ure-link/share/java"); 285 String vBasisClassPrefix = (ISWIN ? "../Basis/program/classes" : "../basis-link/program/classes"); 286 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/jurt.jar"); 287 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/ridl.jar"); 288 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vBasisClassPrefix + "/unoil.jar"); 289 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/juh.jar"); 290 //OO2.x 291 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/jurt.jar"); 292 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/ridl.jar"); 293 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/unoil.jar"); 294 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/juh.jar"); 310 if (vSubClassLoaderForUno) { 311 //Recherche du dossier program de OpenOffice 312 URL vOoUnoClassFolderUrl = (sOoProgramFolderUrl != null) ? new URL(sOoProgramFolderUrl) : new File(OoFinder.getPath()).toURL(); 313 314 //OO3.x 315 String vUreClassPrefix = (ISWIN ? "../URE/java" : "../basis-link/ure-link/share/java"); 316 String vBasisClassPrefix = (ISWIN ? "../Basis/program/classes" : "../basis-link/program/classes"); 317 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/jurt.jar"); 318 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/ridl.jar"); 319 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vBasisClassPrefix + "/unoil.jar"); 320 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, vUreClassPrefix + "/juh.jar"); 321 //OO2.x 322 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/jurt.jar"); 323 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/ridl.jar"); 324 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/unoil.jar"); 325 vLisJars[vIdx++] = new URL(vOoUnoClassFolderUrl, "classes/juh.jar"); 326 } 295 327 296 328 ClassLoader vParentLoader = null;
Note: See TracChangeset
for help on using the changeset viewer.