diff options
Diffstat (limited to 'javaunohelper/com/sun/star/comp/helper')
5 files changed, 0 insertions, 1058 deletions
diff --git a/javaunohelper/com/sun/star/comp/helper/Bootstrap.java b/javaunohelper/com/sun/star/comp/helper/Bootstrap.java deleted file mode 100644 index edf21d7d2adf..000000000000 --- a/javaunohelper/com/sun/star/comp/helper/Bootstrap.java +++ /dev/null @@ -1,429 +0,0 @@ -// -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -package com.sun.star.comp.helper; - -import com.sun.star.bridge.UnoUrlResolver; -import com.sun.star.bridge.XUnoUrlResolver; -import com.sun.star.comp.loader.JavaLoader; -import com.sun.star.comp.servicemanager.ServiceManager; -import com.sun.star.container.XSet; -import com.sun.star.lang.XInitialization; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.lib.util.NativeLibraryLoader; -import com.sun.star.loader.XImplementationLoader; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.XComponentContext; - -import java.io.BufferedReader; -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.PrintStream; -import java.io.UnsupportedEncodingException; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Map; -import java.util.Random; - -/** Bootstrap offers functionality to obtain a context or simply - a service manager. - The service manager can create a few basic services, whose implementations are: - <ul> - <li>com.sun.star.comp.loader.JavaLoader</li> - <li>com.sun.star.comp.urlresolver.UrlResolver</li> - <li>com.sun.star.comp.bridgefactory.BridgeFactory</li> - <li>com.sun.star.comp.connections.Connector</li> - <li>com.sun.star.comp.connections.Acceptor</li> - <li>com.sun.star.comp.servicemanager.ServiceManager</li> - </ul> - - Other services can be inserted into the service manager by - using its XSet interface: - <pre> - XSet xSet = UnoRuntime.queryInterface( XSet.class, aMultiComponentFactory ); - // insert the service manager - xSet.insert( aSingleComponentFactory ); - </pre> -*/ -public class Bootstrap { - - private static void insertBasicFactories( - XSet xSet, XImplementationLoader xImpLoader ) - throws Exception - { - // insert the factory of the loader - xSet.insert( xImpLoader.activate( - "com.sun.star.comp.loader.JavaLoader", null, null, null ) ); - - // insert the factory of the URLResolver - xSet.insert( xImpLoader.activate( - "com.sun.star.comp.urlresolver.UrlResolver", null, null, null ) ); - - // insert the bridgefactory - xSet.insert( xImpLoader.activate( - "com.sun.star.comp.bridgefactory.BridgeFactory", null, null, null ) ); - - // insert the connector - xSet.insert( xImpLoader.activate( - "com.sun.star.comp.connections.Connector", null, null, null ) ); - - // insert the acceptor - xSet.insert( xImpLoader.activate( - "com.sun.star.comp.connections.Acceptor", null, null, null ) ); - } - - /** - * Returns an array of default commandline options to start bootstrapped - * instance of soffice with. You may use it in connection with bootstrap - * method for example like this: - * <pre> - * List list = Arrays.asList( Bootstrap.getDefaultOptions() ); - * list.remove("--nologo"); - * list.remove("--nodefault"); - * list.add("--invisible"); - * - * Bootstrap.bootstrap( list.toArray( new String[list.size()] ); - * </pre> - * - * @return an array of default commandline options - * @see #bootstrap( String[] ) - * @since LibreOffice 5.1 - */ - public static final String[] getDefaultOptions() - { - return new String[] - { - "--nologo", - "--nodefault", - "--norestore", - "--nolockcheck" - }; - } - - /** - backwards compatibility stub. - @param context_entries the hash table contains mappings of entry names (type string) to - context entries (type class ComponentContextEntry). - @throws Exception if things go awry. - @return a new context. - */ - public static XComponentContext createInitialComponentContext( Hashtable<String, Object> context_entries ) - throws Exception - { - return createInitialComponentContext((Map<String, Object>) context_entries); - } - /** Bootstraps an initial component context with service manager and basic - jurt components inserted. - @param context_entries the hash table contains mappings of entry names (type string) to - context entries (type class ComponentContextEntry). - @throws Exception if things go awry. - @return a new context. - */ - public static XComponentContext createInitialComponentContext( Map<String, Object> context_entries ) - throws Exception - { - ServiceManager xSMgr = new ServiceManager(); - - XImplementationLoader xImpLoader = UnoRuntime.queryInterface( - XImplementationLoader.class, new JavaLoader() ); - XInitialization xInit = UnoRuntime.queryInterface( - XInitialization.class, xImpLoader ); - Object[] args = new Object [] { xSMgr }; - xInit.initialize( args ); - - // initial component context - if (context_entries == null) - context_entries = new HashMap<String,Object>( 1 ); - // add smgr - context_entries.put( - "/singletons/com.sun.star.lang.theServiceManager", - new ComponentContextEntry( null, xSMgr ) ); - // ... xxx todo: add standard entries - XComponentContext xContext = new ComponentContext( context_entries, null ); - - xSMgr.setDefaultContext(xContext); - - XSet xSet = UnoRuntime.queryInterface( XSet.class, xSMgr ); - // insert basic jurt factories - insertBasicFactories( xSet, xImpLoader ); - - return xContext; - } - - /** - * Bootstraps a servicemanager with the jurt base components registered. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code>. - * - * @throws Exception if things go awry. - * @return a freshly bootstrapped service manager - */ - public static XMultiServiceFactory createSimpleServiceManager() throws Exception - { - return UnoRuntime.queryInterface( - XMultiServiceFactory.class, createInitialComponentContext( (Map<String, Object>) null ).getServiceManager() ); - } - - - /** Bootstraps the initial component context from a native UNO installation. - - @throws Exception if things go awry. - @return a freshly bootstrapped component context. - - See also - <code>cppuhelper/defaultBootstrap_InitialComponentContext()</code>. - */ - public static final XComponentContext defaultBootstrap_InitialComponentContext() - throws Exception - { - return defaultBootstrap_InitialComponentContext( (String) null, (Map<String,String>) null ); - } - /** - * Backwards compatibility stub. - * - * @param ini_file - * ini_file (may be null: uno.rc besides cppuhelper lib) - * @param bootstrap_parameters - * bootstrap parameters (maybe null) - * - * @throws Exception if things go awry. - * @return a freshly bootstrapped component context. - */ - public static final XComponentContext defaultBootstrap_InitialComponentContext( - String ini_file, Hashtable<String,String> bootstrap_parameters ) - throws Exception - { - return defaultBootstrap_InitialComponentContext(ini_file, (Map<String,String>) bootstrap_parameters); - - } - /** Bootstraps the initial component context from a native UNO installation. - - See also - <code>cppuhelper/defaultBootstrap_InitialComponentContext()</code>. - - @param ini_file - ini_file (may be null: uno.rc besides cppuhelper lib) - @param bootstrap_parameters - bootstrap parameters (maybe null) - - @throws Exception if things go awry. - @return a freshly bootstrapped component context. - */ - public static final XComponentContext defaultBootstrap_InitialComponentContext( - String ini_file, Map<String,String> bootstrap_parameters ) - throws Exception - { - // jni convenience: easier to iterate over array than calling Hashtable - String pairs [] = null; - if (null != bootstrap_parameters) - { - pairs = new String [ 2 * bootstrap_parameters.size() ]; - int n = 0; - for (Map.Entry<String, String> bootstrap_parameter : bootstrap_parameters.entrySet()) { - pairs[ n++ ] = bootstrap_parameter.getKey(); - pairs[ n++ ] = bootstrap_parameter.getValue(); - } - } - - if (! m_loaded_juh) - { - if ("The Android Project".equals(System.getProperty("java.vendor"))) - { - // Find out if we are configured with DISABLE_DYNLOADING or - // not. Try to load the lo-bootstrap shared library which - // won't exist in the DISABLE_DYNLOADING case. (And which will - // be already loaded otherwise, so nothing unexpected happens - // that case.) Yeah, this would be simpler if I just could be - // bothered to keep a separate branch for DISABLE_DYNLOADING - // on Android, merging in master periodically, until I know - // for sure whether it is what I want, or not. - - boolean disable_dynloading = false; - try { - System.loadLibrary( "lo-bootstrap" ); - } catch ( UnsatisfiedLinkError e ) { - disable_dynloading = true; - } - - if (!disable_dynloading) - { - NativeLibraryLoader.loadLibrary( Bootstrap.class.getClassLoader(), "juh" ); - } - } - else - { - NativeLibraryLoader.loadLibrary( Bootstrap.class.getClassLoader(), "juh" ); - } - m_loaded_juh = true; - } - return UnoRuntime.queryInterface( - XComponentContext.class, - cppuhelper_bootstrap( - ini_file, pairs, Bootstrap.class.getClassLoader() ) ); - } - - private static boolean m_loaded_juh = false; - private static native Object cppuhelper_bootstrap( - String ini_file, String bootstrap_parameters [], ClassLoader loader ) - throws Exception; - - /** - * Bootstraps the component context from a UNO installation. - * - * @throws BootstrapException if things go awry. - * - * @return a bootstrapped component context. - * - * @since UDK 3.1.0 - */ - public static final XComponentContext bootstrap() - throws BootstrapException { - - String[] defaultArgArray = getDefaultOptions(); - return bootstrap( defaultArgArray ); - } - - /** - * Bootstraps the component context from a UNO installation. - * - * @param argArray - * an array of strings - commandline options to start instance of - * soffice with - * @see #getDefaultOptions() - * - * @throws BootstrapException if things go awry. - * - * @return a bootstrapped component context. - * - * @since LibreOffice 5.1 - */ - public static final XComponentContext bootstrap( String[] argArray ) - throws BootstrapException { - - XComponentContext xContext = null; - - try { - // create default local component context - XComponentContext xLocalContext = - createInitialComponentContext( (Map<String, Object>) null ); - if ( xLocalContext == null ) - throw new BootstrapException( "no local component context!" ); - - // find office executable relative to this class's class loader - String sOffice = - System.getProperty( "os.name" ).startsWith( "Windows" ) ? - "soffice.exe" : "soffice"; - File fOffice = NativeLibraryLoader.getResource( - Bootstrap.class.getClassLoader(), sOffice ); - if ( fOffice == null ) - throw new BootstrapException( "no office executable found!" ); - - // create random pipe name - String sPipeName = "uno" + - Long.toString(randomPipeName.nextLong() & 0x7fffffffffffffffL); - - // create call with arguments - String[] cmdArray = new String[ argArray.length + 2 ]; - cmdArray[0] = fOffice.getPath(); - cmdArray[1] = ( "--accept=pipe,name=" + sPipeName + ";urp;" ); - - System.arraycopy( argArray, 0, cmdArray, 2, argArray.length ); - - // start office process - Process p = Runtime.getRuntime().exec( cmdArray ); - pipe( p.getInputStream(), System.out, "CO> " ); - pipe( p.getErrorStream(), System.err, "CE> " ); - - // initial service manager - XMultiComponentFactory xLocalServiceManager = - xLocalContext.getServiceManager(); - if ( xLocalServiceManager == null ) - throw new BootstrapException( "no initial service manager!" ); - - // create a URL resolver - XUnoUrlResolver xUrlResolver = - UnoUrlResolver.create( xLocalContext ); - - // connection string - String sConnect = "uno:pipe,name=" + sPipeName + - ";urp;StarOffice.ComponentContext"; - - // wait until office is started - for (int i = 0;; ++i) { - try { - // try to connect to office - Object context = xUrlResolver.resolve( sConnect ); - xContext = UnoRuntime.queryInterface( - XComponentContext.class, context); - if ( xContext == null ) - throw new BootstrapException( "no component context!" ); - break; - } catch ( com.sun.star.connection.NoConnectException ex ) { - // Wait 500 ms, then try to connect again, but do not wait - // longer than 5 min (= 600 * 500 ms) total: - if (i == 600) { - throw new BootstrapException(ex); - } - Thread.sleep( 500 ); - } - } - } catch ( BootstrapException e ) { - throw e; - } catch ( java.lang.RuntimeException e ) { - throw e; - } catch ( java.lang.Exception e ) { - throw new BootstrapException( e ); - } - - return xContext; - } - - private static final Random randomPipeName = new Random(); - - private static void pipe( - final InputStream in, final PrintStream out, final String prefix ) { - - new Thread( "Pipe: " + prefix) { - @Override - public void run() { - try { - BufferedReader r = new BufferedReader( - new InputStreamReader(in, "UTF-8") ); - - for ( ; ; ) { - String s = r.readLine(); - if ( s == null ) { - break; - } - out.println( prefix + s ); - } - } catch ( UnsupportedEncodingException e ) { - e.printStackTrace( System.err ); - } catch ( java.io.IOException e ) { - e.printStackTrace( System.err ); - } - } - }.start(); - } -} - -// vim:set shiftwidth=4 softtabstop=4 expandtab: diff --git a/javaunohelper/com/sun/star/comp/helper/BootstrapException.java b/javaunohelper/com/sun/star/comp/helper/BootstrapException.java deleted file mode 100644 index 11911bbc07e0..000000000000 --- a/javaunohelper/com/sun/star/comp/helper/BootstrapException.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -package com.sun.star.comp.helper; - -/** - * BootstrapException is a checked exception that wraps an exception - * thrown by the original target. - * - * @since UDK 3.1.0 - */ -public class BootstrapException extends java.lang.Exception { - - /** - * This field holds the target exception. - */ - private Exception m_target = null; - - /** - * Constructs a <code>BootstrapException</code> with <code>null</code> as - * the target exception. - */ - public BootstrapException() { - super(); - } - - /** - * Constructs a <code>BootstrapException</code> with the specified - * detail message. - * - * @param message the detail message - */ - public BootstrapException( String message ) { - super( message ); - } - - /** - * Constructs a <code>BootstrapException</code> with the specified - * detail message and a target exception. - * - * @param message the detail message - * @param target the target exception - */ - public BootstrapException( String message, Exception target ) { - super( message ); - m_target = target; - } - - /** - * Constructs a <code>BootstrapException</code> with a target exception. - * - * @param target the target exception - */ - public BootstrapException( Exception target ) { - super(); - m_target = target; - } - - /** - * Get the thrown target exception. - * - * @return the target exception - */ - public Exception getTargetException() { - return m_target; - } -} diff --git a/javaunohelper/com/sun/star/comp/helper/ComponentContext.java b/javaunohelper/com/sun/star/comp/helper/ComponentContext.java deleted file mode 100644 index 34649d563395..000000000000 --- a/javaunohelper/com/sun/star/comp/helper/ComponentContext.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -package com.sun.star.comp.helper; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.Any; - -import com.sun.star.uno.DeploymentException; -import com.sun.star.uno.XComponentContext; -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.lang.XSingleComponentFactory; -import com.sun.star.lang.XComponent; -import com.sun.star.lang.XEventListener; -import com.sun.star.lang.EventObject; - -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Map; - - - -class Disposer implements XEventListener -{ - private final XComponent m_xComp; - - - Disposer( XComponent xComp ) - { - m_xComp = xComp; - } - - public void disposing( EventObject Source ) - { - m_xComp.dispose(); - } -} - -/** Component context implementation. -*/ -public class ComponentContext implements XComponentContext, XComponent -{ - private static final boolean DEBUG = false; - private static final String SMGR_NAME = "/singletons/com.sun.star.lang.theServiceManager"; - private static final String TDMGR_NAME = "/singletons/com.sun.star.reflection.theTypeDescriptionManager"; - - private Map<String,Object> m_table; - private XComponentContext m_xDelegate; - - private XMultiComponentFactory m_xSMgr; - private boolean m_bDisposeSMgr; - - private ArrayList<XEventListener> m_eventListener; - - public ComponentContext( Hashtable<String,Object> table, XComponentContext xDelegate ) - { - this((Map<String,Object>) table, xDelegate); - } - - /** Ctor to create a component context passing a hashtable for values and a delegator - reference. Entries of the passed hashtable are either direct values or - ComponentContextEntry objects. - - @param table - entries - @param xDelegate - if values are not found, request is delegated to this object - */ - public ComponentContext( Map<String,Object> table, XComponentContext xDelegate ) - { - m_eventListener = new ArrayList<XEventListener>(); - m_table = table; - m_xDelegate = xDelegate; - m_xSMgr = null; - m_bDisposeSMgr = false; - - Object o = table.get( SMGR_NAME ); - if (o != null) - { - if (o instanceof ComponentContextEntry) - { - o = ((ComponentContextEntry)o).m_value; - } - m_xSMgr = UnoRuntime.queryInterface( - XMultiComponentFactory.class, o ); - } - if (m_xSMgr != null) - { - m_bDisposeSMgr = true; - } - else if (m_xDelegate != null) - { - m_xSMgr = m_xDelegate.getServiceManager(); - } - - // listen for delegate - XComponent xComp = UnoRuntime.queryInterface( - XComponent.class, m_xDelegate ); - if (xComp != null) - { - xComp.addEventListener( new Disposer( this ) ); - } - } - - // XComponentContext impl - - public Object getValueByName( String rName ) - { - Object o = m_table.get( rName ); - if (o == null) - { - if (m_xDelegate != null) - { - return m_xDelegate.getValueByName( rName ); - } - else - { - return Any.VOID; - } - } - - if (!(o instanceof ComponentContextEntry)) - { - // direct value in map - return o; - } - - ComponentContextEntry entry = (ComponentContextEntry)o; - if (entry.m_lateInit == null) - { - return entry.m_value; - } - - Object xInstance = null; - try - { - String serviceName = (String)entry.m_lateInit; - if (serviceName != null) - { - if (m_xSMgr != null) - { - xInstance = m_xSMgr.createInstanceWithContext( serviceName, this ); - } - else - { - if (DEBUG) - System.err.println( "### no service manager instance for late init of singleton instance \"" + rName + "\"!" ); - } - } - else - { - XSingleComponentFactory xCompFac = UnoRuntime.queryInterface( XSingleComponentFactory.class, entry.m_lateInit ); - if (xCompFac != null) - { - xInstance = xCompFac.createInstanceWithContext( this ); - } - else - { - if (DEBUG) - System.err.println( "### neither service name nor service factory given for late init of singleton instance \"" + rName + "\"!" ); - } - } - } - catch (com.sun.star.uno.Exception exc) - { - if (DEBUG) - System.err.println( "### exception occurred on late init of singleton instance \"" + rName + "\": " + exc.getMessage() ); - } - - if (xInstance != null) - { - synchronized (entry) - { - if (entry.m_lateInit != null) - { - entry.m_value = xInstance; - entry.m_lateInit = null; - } - else // inited in the meantime - { - // dispose fresh service instance - XComponent xComp = UnoRuntime.queryInterface( - XComponent.class, xInstance ); - if (xComp != null) - { - xComp.dispose(); - } - } - } - } - else - { - if (DEBUG) - System.err.println( "### failed late init of singleton instance \"" + rName + "\"!" ); - } - return entry.m_value; - } - - public XMultiComponentFactory getServiceManager() - { - if (m_xSMgr == null) - { - throw new DeploymentException( - "null component context service manager" ); - } - return m_xSMgr; - } - - // XComponent impl - - public void dispose() - { - if (DEBUG) - System.err.print( "> disposing context " + this ); - - // fire events - EventObject evt = new EventObject( this ); - for (XEventListener listener : m_eventListener) - { - listener.disposing( evt ); - } - m_eventListener.clear(); - - XComponent tdmgr = null; - // dispose values, then service manager, then typedescription manager - for (Map.Entry<String, Object> entry : m_table.entrySet()) - { - String name = entry.getKey(); - if (! name.equals( SMGR_NAME )) - { - Object o = entry.getValue(); - if (o instanceof ComponentContextEntry) - { - o = ((ComponentContextEntry)o).m_value; - } - - XComponent xComp = UnoRuntime.queryInterface( XComponent.class, o ); - if (xComp != null) - { - if (name.equals( TDMGR_NAME )) - { - tdmgr = xComp; - } - else - { - xComp.dispose(); - } - } - } - } - m_table.clear(); - - // smgr - if (m_bDisposeSMgr) - { - XComponent xComp = UnoRuntime.queryInterface( - XComponent.class, m_xSMgr ); - if (xComp != null) - { - xComp.dispose(); - } - } - m_xSMgr = null; - - // tdmgr - if (tdmgr != null) - { - tdmgr.dispose(); - } - - if (DEBUG) - System.err.println( "... finished" ); - } - - public void addEventListener( XEventListener xListener ) - { - if (xListener == null) - throw new com.sun.star.uno.RuntimeException( "Listener must not be null" ); - if (m_eventListener.contains( xListener )) - throw new com.sun.star.uno.RuntimeException( "Listener already registered." ); - - m_eventListener.add( xListener ); - } - - public void removeEventListener( XEventListener xListener ) - { - if (xListener == null) - throw new com.sun.star.uno.RuntimeException( "Listener must not be null" ); - if (! m_eventListener.contains( xListener )) - throw new com.sun.star.uno.RuntimeException( "Listener is not registered." ); - - m_eventListener.remove( xListener ); - } -} diff --git a/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java b/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java deleted file mode 100644 index aa402d29c6d1..000000000000 --- a/javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -package com.sun.star.comp.helper; - -/** Component context entry for constructing ComponentContext objects. - <p> - A ComponentContextEntry is separated into a late-init and direct-value - purpose. - The first one is commonly used for singleton objects of the component - context, that are raised on first-time retrieval of the key. - You have to pass a com.sun.star.lang.XSingleComponentFactory - or string (=> service name) object for this. - </p> -*/ -public class ComponentContextEntry -{ - /** if late init of service instance, set service name (String) or - component factory (XSingleComponentFactory), null otherwise - */ - public Object m_lateInit; - /** set entry value - */ - public Object m_value; - - /** Creating a late-init singleton entry component context entry. - The second parameter will be ignored and overwritten during - instantiation of the singleton instance. - - @param lateInit - object factory or service string - @param value - pass null (dummy separating from second constructor signature) - */ - public ComponentContextEntry( Object lateInit, Object value ) - { - this.m_lateInit = lateInit; - this.m_value = value; - } - /** Creating a direct value component context entry. - - @param value - pass null - */ - public ComponentContextEntry( Object value ) - { - this.m_lateInit = null; - this.m_value = value; - } -} diff --git a/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java b/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java deleted file mode 100644 index 035644efa0b8..000000000000 --- a/javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java +++ /dev/null @@ -1,175 +0,0 @@ -// -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -package com.sun.star.comp.helper; - -import com.sun.star.uno.UnoRuntime; -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XSingleServiceFactory; -import com.sun.star.registry.XRegistryKey; - -/** - * @deprecated use class Bootstrap bootstrapping a native UNO installation - * and use the shared library loader service. - * - * The <code>SharedLibraryLoader</code> class provides the functionality of the <code>com.sun.star.loader.SharedLibrary</code> - * service. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code>. - * - * @see com.sun.star.loader.SharedLibrary - */ -@Deprecated -public class SharedLibraryLoader { - /** - * The default library which contains the SharedLibraryLoader component - */ - public static final String DEFAULT_LIBRARY = "shlibloader.uno"; - - /** - * The default implementation name - */ - public static final String DEFAULT_IMPLEMENTATION = "com.sun.star.comp.stoc.DLLComponentLoader"; - - static { - if ("The Android Project".equals(System.getProperty("java.vendor"))) { - // See corresponding code in - // javaunohelper/com/sun/star/comp/helper/Bootstrap.java for more - // comments. - - boolean disable_dynloading = false; - try { - System.loadLibrary("lo-bootstrap"); - } catch (UnsatisfiedLinkError e) { - disable_dynloading = true; - } - - if (!disable_dynloading) - System.loadLibrary("juh"); - } else - System.loadLibrary("juh"); - } - - private static native boolean component_writeInfo( - String libName, XMultiServiceFactory smgr, XRegistryKey regKey, - ClassLoader loader ); - - private static native Object component_getFactory( - String libName, String implName, XMultiServiceFactory smgr, - XRegistryKey regKey, ClassLoader loader ); - - /** - * Supplies the ServiceFactory of the default SharedLibraryLoader. - * The defaults are "shlibloader.uno" - * for the library and "com.sun.star.comp.stoc.DLLComponentLoader" - * for the component name. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code> and - * <code>com.sun.star.registry.RegistryKey</code>. - * - * @return the factory for the "com.sun.star.comp.stoc.DLLComponentLoader" component. - * @param smgr the ServiceManager - * @param regKey the root registry key - * @see com.sun.star.loader.SharedLibrary - */ - public static XSingleServiceFactory getServiceFactory( - XMultiServiceFactory smgr, - XRegistryKey regKey ) - { - return UnoRuntime.queryInterface( - XSingleServiceFactory.class, - component_getFactory( - DEFAULT_LIBRARY, DEFAULT_IMPLEMENTATION, smgr, regKey, - SharedLibraryLoader.class.getClassLoader() ) ); - } - - /** - * Loads and returns a specific factory for a given library and implementation name. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code> and - * <code>com.sun.star.registry.RegistryKey</code>. - * - * @return the factory of the component - * @param libName the name of the shared library - * @param impName the implementation name of the component - * @param smgr the ServiceManager - * @param regKey the root registry key - * @see com.sun.star.loader.SharedLibrary - */ - public static XSingleServiceFactory getServiceFactory( - String libName, - String impName, - XMultiServiceFactory smgr, - XRegistryKey regKey ) - { - return UnoRuntime.queryInterface( - XSingleServiceFactory.class, - component_getFactory( - libName, impName, smgr, regKey, - SharedLibraryLoader.class.getClassLoader() ) ); - } - - /** - * Registers the SharedLibraryLoader under a RegistryKey. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code> and - * <code>com.sun.star.registry.RegistryKey</code>. - * - * @return true if the registration was successful - otherwise false - * @param smgr the ServiceManager - * @param regKey the root key under that the component should be registered - * @see com.sun.star.loader.SharedLibrary - */ - public static boolean writeRegistryServiceInfo( - com.sun.star.lang.XMultiServiceFactory smgr, - com.sun.star.registry.XRegistryKey regKey ) - { - return component_writeInfo( - DEFAULT_LIBRARY, smgr, regKey, - SharedLibraryLoader.class.getClassLoader() ); - } - - /** - * Registers the SharedLibraryLoader under a RegistryKey. - * - * See also UNOIDL <code>com.sun.star.lang.ServiceManager</code> and - * <code>com.sun.star.registry.RegistryKey</code>. - * - * @return true if the registration was successful - otherwise false - * @param libName name of the shared library - * @param smgr the ServiceManager - * @param regKey the root key under that the component should be registered - * @throws com.sun.star.registry.InvalidRegistryException - * if the registry is not valid. - * - * @see com.sun.star.loader.SharedLibrary - */ - public static boolean writeRegistryServiceInfo( - String libName, - com.sun.star.lang.XMultiServiceFactory smgr, - com.sun.star.registry.XRegistryKey regKey ) - - throws com.sun.star.registry.InvalidRegistryException, - com.sun.star.uno.RuntimeException - { - return component_writeInfo( - libName, smgr, regKey, SharedLibraryLoader.class.getClassLoader() ); - } -} - -// vim:set shiftwidth=4 softtabstop=4 expandtab: |