1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 package com.sun.star.comp.helper; 25 26 import com.sun.star.comp.loader.JavaLoader; 27 28 import com.sun.star.comp.servicemanager.ServiceManager; 29 import com.sun.star.uno.UnoRuntime; 30 31 import com.sun.star.container.XSet; 32 import com.sun.star.container.XContentEnumerationAccess; 33 import com.sun.star.container.XEnumeration; 34 import com.sun.star.container.XEnumerationAccess; 35 import com.sun.star.container.XElementAccess; 36 37 import com.sun.star.lang.XComponent; 38 39 import com.sun.star.lang.XServiceInfo; 40 import com.sun.star.lang.XMultiServiceFactory; 41 import com.sun.star.lang.XSingleServiceFactory; 42 import com.sun.star.lang.XInitialization; 43 44 import com.sun.star.loader.XImplementationLoader; 45 46 import com.sun.star.registry.XSimpleRegistry; 47 48 49 public class SharedLibraryLoader_Test { 50 51 private static final String NATIVE_SERVICE_MANAGER_IMP_NAME = "com.sun.star.comp.stoc.OServiceManager"; 52 private static final String NATIVE_SERVICE_MANAGER_LIB_NAME = "servicemgr.uno"; 53 private static final String NATIVE_REGISTRY_IMP_NAME = "com.sun.star.comp.stoc.SimpleRegistry"; 54 private static final String NATIVE_REGISTRY_LIB_NAME = "simplereg.uno"; 55 56 private static XMultiServiceFactory nativeServiceManager = null; 57 private static XSingleServiceFactory sharedLibraryLoaderFactory = null; 58 private static XImplementationLoader sharedLibraryLoader = null; 59 private static XSimpleRegistry simpleRegistry = null; 60 test_getSharedLibraryLoaderFactory()61 static public boolean test_getSharedLibraryLoaderFactory() 62 throws java.lang.Exception 63 { 64 sharedLibraryLoaderFactory = null; 65 System.out.println("*******************************************************************"); 66 System.out.println("Test: <<< get SharedLibraryLoader factory >>>"); 67 sharedLibraryLoaderFactory = SharedLibraryLoader.getServiceFactory(null, null); 68 69 System.out.print("Test - "); 70 System.out.println(sharedLibraryLoaderFactory == null? "failed" : "successful"); 71 System.out.println("*******************************************************************"); 72 System.out.println(); 73 74 return sharedLibraryLoaderFactory != null; 75 } 76 test_instantiateSharedLibraryLoader()77 static public boolean test_instantiateSharedLibraryLoader() 78 throws java.lang.Exception 79 { 80 sharedLibraryLoader = null; 81 System.out.println("*******************************************************************"); 82 System.out.println("Test: <<< instantiate SharedLibraryLoader >>>"); 83 if ( sharedLibraryLoaderFactory == null ) 84 if ( ! test_getSharedLibraryLoaderFactory() ) 85 return false; 86 87 sharedLibraryLoader = UnoRuntime.queryInterface( 88 XImplementationLoader.class, sharedLibraryLoaderFactory.createInstance() ); 89 90 System.out.print("Test - "); 91 System.out.println(sharedLibraryLoader == null? "failed" : "successful"); 92 System.out.println("*******************************************************************"); 93 System.out.println(); 94 95 return sharedLibraryLoader != null; 96 } 97 test_loadNativeServiceManager()98 static public boolean test_loadNativeServiceManager() 99 throws java.lang.Exception 100 { 101 nativeServiceManager = null; 102 103 System.out.println("*******************************************************************"); 104 System.out.println("Test: <<< load native ServiceManager >>>"); 105 if ( sharedLibraryLoader == null ) 106 if ( ! test_instantiateSharedLibraryLoader() ) 107 return false; 108 109 System.err.println("- get the native ServiceManger factory"); 110 XSingleServiceFactory aSMgrFac = 111 UnoRuntime.queryInterface( XSingleServiceFactory.class, 112 sharedLibraryLoader.activate(NATIVE_SERVICE_MANAGER_IMP_NAME, null, NATIVE_SERVICE_MANAGER_LIB_NAME, null)); 113 114 System.err.println("- instantiate the native ServiceManger"); 115 nativeServiceManager = UnoRuntime.queryInterface( XMultiServiceFactory.class, aSMgrFac.createInstance() ); 116 117 System.out.print("Test - "); 118 System.out.println(nativeServiceManager == null? "failed" : "successful"); 119 120 System.out.println("*******************************************************************"); 121 System.out.println(); 122 return nativeServiceManager != null; 123 } 124 test_loadNativeSimpleRegistry()125 static public boolean test_loadNativeSimpleRegistry() 126 throws java.lang.Exception 127 { 128 boolean result = false; 129 System.out.println("*******************************************************************"); 130 System.out.println("Test: <<< load native SimpleRegistry >>>"); 131 if ( sharedLibraryLoader == null ) 132 if ( ! test_instantiateSharedLibraryLoader() ) 133 return false; 134 135 System.err.println("- get factory of the Registry"); 136 XSingleServiceFactory aRegFac = 137 UnoRuntime.queryInterface( XSingleServiceFactory.class, 138 sharedLibraryLoader.activate(NATIVE_REGISTRY_IMP_NAME, null, NATIVE_REGISTRY_LIB_NAME, null) 139 ); 140 System.err.println("- instantiate the Registry"); 141 simpleRegistry = 142 UnoRuntime.queryInterface( XSimpleRegistry.class, aRegFac.createInstance() ); 143 System.out.print("Test - "); 144 System.out.println(simpleRegistry == null? "failed" : "successful"); 145 System.out.println("*******************************************************************"); 146 System.err.println(); 147 return true; 148 } 149 test_registerSharedLibraryLoader()150 static public boolean test_registerSharedLibraryLoader() 151 throws java.lang.Exception 152 { 153 boolean result = true; 154 System.out.println("*******************************************************************"); 155 System.out.println("Test: <<< register SharedLibraryLoader at the Registry >>>"); 156 157 if ( simpleRegistry == null ) 158 if ( ! test_loadNativeSimpleRegistry() ) 159 return false; 160 161 com.sun.star.registry.XRegistryKey regKey = simpleRegistry.getRootKey(); 162 result = SharedLibraryLoader.writeRegistryServiceInfo( null, regKey ); 163 164 System.out.print("Test - "); 165 System.out.println( result==false ? "failed" : "successful"); 166 System.out.println("*******************************************************************"); 167 System.out.println(); 168 return result; 169 } 170 test()171 static public boolean test() throws java.lang.Exception { 172 boolean passed = true; 173 174 System.err.println("SharedLibraryLoader - doing tests..."); 175 passed = test_getSharedLibraryLoaderFactory() && passed; 176 passed = test_instantiateSharedLibraryLoader() && passed; 177 passed = test_loadNativeServiceManager() && passed; 178 passed = test_loadNativeSimpleRegistry() && passed; 179 //passed = test_registerSharedLibraryLoader() && passed; 180 181 System.err.println("SharedLibraryLoader test passed? " + passed); 182 183 return passed; 184 } 185 main(String args[])186 static public void main(String args[]) throws java.lang.Exception { 187 System.exit( test() == true ? 0: -1 ); 188 } 189 } 190 191