Version 3.6.0.2, tag libreoffice-3.6.0.2
[LibreOffice.git] / javaunohelper / com / sun / star / comp / helper / SharedLibraryLoader.java
blob64ed85d6d4c9f63b8250e1019c4630af1d137bdd
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
27 package com.sun.star.comp.helper;
29 import com.sun.star.uno.UnoRuntime;
30 import com.sun.star.lang.XMultiServiceFactory;
31 import com.sun.star.lang.XSingleServiceFactory;
32 import com.sun.star.registry.XRegistryKey;
34 /**
35 * @deprecated use class Bootstrap bootstrapping a native UNO installation
36 * and use the shared library loader service.
38 * The <code>SharedLibraryLoader</code> class provides the functionality of the <code>com.sun.star.loader.SharedLibrary</code>
39 * service.
40 * <p>
41 * @see com.sun.star.loader.SharedLibrary
42 * @see "com.sun.star.comp.servicemanager.ServiceManager"
43 * @see com.sun.star.lang.ServiceManager
45 public class SharedLibraryLoader {
46 /**
47 * The default library which contains the SharedLibraryLoader component
49 public static final String DEFAULT_LIBRARY = "shlibloader.uno";
51 /**
52 * The default implementation name
54 public static final String DEFAULT_IMPLEMENTATION = "com.sun.star.comp.stoc.DLLComponentLoader";
56 static {
57 System.loadLibrary("juh");
60 private static native boolean component_writeInfo(
61 String libName, XMultiServiceFactory smgr, XRegistryKey regKey,
62 ClassLoader loader );
64 private static native Object component_getFactory(
65 String libName, String implName, XMultiServiceFactory smgr,
66 XRegistryKey regKey, ClassLoader loader );
68 /**
69 * Supplies the ServiceFactory of the default SharedLibraryLoader.
70 * The defaults are "shlibloader.uno"
71 * for the library and "com.sun.star.comp.stoc.DLLComponentLoader"
72 * for the component name.
73 * <p>
74 * @return the factory for the "com.sun.star.comp.stoc.DLLComponentLoader" component.
75 * @param smgr the ServiceManager
76 * @param regKey the root registry key
77 * @see com.sun.star.loader.SharedLibrary
78 * @see com.sun.star.lang.ServiceManager
79 * @see com.sun.star.registry.RegistryKey
81 public static XSingleServiceFactory getServiceFactory(
82 XMultiServiceFactory smgr,
83 XRegistryKey regKey )
85 return UnoRuntime.queryInterface(
86 XSingleServiceFactory.class,
87 component_getFactory(
88 DEFAULT_LIBRARY, DEFAULT_IMPLEMENTATION, smgr, regKey,
89 SharedLibraryLoader.class.getClassLoader() ) );
92 /**
93 * Loads and returns a specific factory for a given library and implementation name.
94 * <p>
95 * @return the factory of the component
96 * @param libName the name of the shared library
97 * @param impName the implementation name of the component
98 * @param smgr the ServiceManager
99 * @param regKey the root registry key
100 * @see com.sun.star.loader.SharedLibrary
101 * @see com.sun.star.lang.ServiceManager
102 * @see com.sun.star.registry.RegistryKey
104 public static XSingleServiceFactory getServiceFactory(
105 String libName,
106 String impName,
107 XMultiServiceFactory smgr,
108 XRegistryKey regKey )
110 return UnoRuntime.queryInterface(
111 XSingleServiceFactory.class,
112 component_getFactory(
113 libName, impName, smgr, regKey,
114 SharedLibraryLoader.class.getClassLoader() ) );
118 * Registers the SharedLibraryLoader under a RegistryKey.
119 * <p>
120 * @return true if the registration was successfull - otherwise false
121 * @param smgr the ServiceManager
122 * @param regKey the root key under that the component should be registered
123 * @see com.sun.star.loader.SharedLibrary
124 * @see com.sun.star.lang.ServiceManager
125 * @see com.sun.star.registry.RegistryKey
127 public static boolean writeRegistryServiceInfo(
128 com.sun.star.lang.XMultiServiceFactory smgr,
129 com.sun.star.registry.XRegistryKey regKey )
131 return component_writeInfo(
132 DEFAULT_LIBRARY, smgr, regKey,
133 SharedLibraryLoader.class.getClassLoader() );
137 * Registers the SharedLibraryLoader under a RegistryKey.
138 * <p>
139 * @return true if the registration was successfull - otherwise false
140 * @param libName name of the shared library
141 * @param smgr the ServiceManager
142 * @param regKey the root key under that the component should be registered
143 * @see com.sun.star.loader.SharedLibrary
144 * @see com.sun.star.lang.ServiceManager
145 * @see com.sun.star.registry.RegistryKey
147 public static boolean writeRegistryServiceInfo(
148 String libName,
149 com.sun.star.lang.XMultiServiceFactory smgr,
150 com.sun.star.registry.XRegistryKey regKey )
152 throws com.sun.star.registry.InvalidRegistryException,
153 com.sun.star.uno.RuntimeException
155 return component_writeInfo(
156 libName, smgr, regKey, SharedLibraryLoader.class.getClassLoader() );