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 test.java.javaclient;
25 
26 import com.sun.star.bridge.XBridge;
27 import com.sun.star.bridge.XBridgeFactory;
28 import com.sun.star.comp.helper.Bootstrap;
29 import com.sun.star.connection.Connector;
30 import com.sun.star.lang.XComponent;
31 import com.sun.star.lang.XMultiComponentFactory;
32 import com.sun.star.lib.uno.helper.UnoUrl;
33 import com.sun.star.uno.UnoRuntime;
34 import com.sun.star.uno.XComponentContext;
35 import test.types.Data;
36 import test.types.XServer;
37 
38 public final class JavaClient {
main(String[] arguments)39     public static void main(String[] arguments) throws Exception {
40         XComponentContext context = Bootstrap.createInitialComponentContext(
41             null);
42         XMultiComponentFactory manager = context.getServiceManager();
43         if (manager == null) {
44             throw new NullPointerException("no service manager");
45         }
46         XBridgeFactory factory = UnoRuntime.queryInterface(
47             XBridgeFactory.class,
48             manager.createInstanceWithContext(
49                 "com.sun.star.bridge.BridgeFactory", context));
50         if (factory == null) {
51             throw new NullPointerException("no bridge factory");
52         }
53         UnoUrl url = UnoUrl.parseUnoUrl(arguments[0]);
54         XBridge bridge = factory.createBridge(
55             "", url.getProtocolAndParametersAsString(),
56             Connector.create(context).connect(
57                 url.getConnectionAndParametersAsString()),
58             null);
59         Data d = UnoRuntime.queryInterface(
60             XServer.class, bridge.getInstance(url.getRootOid())).getData();
61         UnoRuntime.queryInterface(XComponent.class, bridge).dispose();
62         if (!d.m1.equals("Hello") || d.m2 != 42) {
63             throw new RuntimeException("Data object contains bad values");
64         }
65     }
66 
JavaClient()67     private JavaClient() {}
68 }
69