blob: 6a0cf35fe905543e5f32f28e3d7a5db1d168798e [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package com.sun.star.comp.urlresolver;
import com.sun.star.uno.XComponentContext;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.bridge.UnoUrlResolver;
import com.sun.star.bridge.XUnoUrlResolver;
import com.sun.star.beans.XPropertySet;
import com.sun.star.uno.UnoRuntime;
//import com.sun.star.connection.NoConnectionException;
/** start the office with these options <br>
soffice -accept=socket,host=localhost,port=8100;urp;
*/
public class UrlResolver_Test
{
public static void main(String[] args) {
try {
XComponentContext xcomponentcontext = Bootstrap.createInitialComponentContext( null );
// initial serviceManager
XMultiComponentFactory xLocalServiceManager = xcomponentcontext.getServiceManager();
// create a connector, so that it can contact the office
XUnoUrlResolver urlResolver
= UnoUrlResolver.create( xcomponentcontext );
Object initialObject = urlResolver.resolve(
"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" );
XMultiComponentFactory xOfficeFactory= UnoRuntime.queryInterface(
XMultiComponentFactory.class, initialObject );
// retrieve the component context (it's not yet exported from the office)
// Query for the XPropertySet interface.
XPropertySet xProperySet = UnoRuntime.queryInterface(
XPropertySet.class, xOfficeFactory);
// Get the default context from the office server.
Object oDefaultContext = xProperySet.getPropertyValue( "DefaultContext" );
// Query for the interface XComponentContext.
XComponentContext xOfficeComponentContext = UnoRuntime.queryInterface(
XComponentContext.class, oDefaultContext );
// now create the desktop service
// NOTE: use the office component context here !
Object oDesktop = xOfficeFactory.createInstanceWithContext("com.sun.star.frame.Desktop",
xOfficeComponentContext );
} catch(com.sun.star.connection.NoConnectException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch(com.sun.star.connection.ConnectionSetupException ce) {
System.out.println(ce.getMessage());
ce.printStackTrace();
} catch(com.sun.star.lang.IllegalArgumentException ie) {
System.out.println(ie.getMessage());
ie.printStackTrace();
} catch(com.sun.star.beans.UnknownPropertyException ue) {
System.out.println(ue.getMessage());
ue.printStackTrace();
} catch(java.lang.Exception ee) {
System.out.println(ee.getMessage());
ee.printStackTrace();
}
}
}