summaryrefslogtreecommitdiff
path: root/odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2003-06-10 09:23:13 +0000
committerVladimir Glazounov <vg@openoffice.org>2003-06-10 09:23:13 +0000
commit94144a5a84f39c01494d604f89670fd6faf44e5a (patch)
tree7cd205005383fa712b84586f081e009df5d29d51 /odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java
parent45592156dfc6d73274ca726f7895f01ae35da16a (diff)
INTEGRATION: CWS sdk02 (1.1.2); FILE ADDED
2003/05/09 11:24:37 jsc 1.1.2.1: #109045# insert new and remove example zip file
Diffstat (limited to 'odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java')
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java b/odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java
new file mode 100644
index 000000000000..175e8f533202
--- /dev/null
+++ b/odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java
@@ -0,0 +1,66 @@
+import com.sun.star.bridge.XUnoUrlResolver;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.beans.XPropertySet;
+
+
+public class FirstConnection extends java.lang.Object {
+
+ private XComponentContext xRemoteContext = null;
+ private XMultiComponentFactory xRemoteServiceManager = null;
+
+ public static void main(String[] args) {
+ FirstConnection firstConnection1 = new FirstConnection();
+ try {
+ firstConnection1.useConnection();
+ }
+ catch (java.lang.Exception e){
+ e.printStackTrace();
+ }
+ finally {
+ System.exit(0);
+ }
+ }
+
+ protected void useConnection() throws java.lang.Exception {
+ try {
+ xRemoteServiceManager = this.getRemoteServiceManager(
+ "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager");
+ String available = (null != xRemoteServiceManager ? "available" : "not available");
+ System.out.println( "remote ServiceManager is " + available );
+ }
+ catch( com.sun.star.lang.DisposedException e ) { //works from Patch 1
+ xRemoteContext = null;
+ throw e;
+ }
+ }
+
+ protected XMultiComponentFactory getRemoteServiceManager(String unoUrl) throws java.lang.Exception {
+ if (xRemoteContext == null) {
+ // First step: create local component context, get local servicemanager and
+ // ask it to create a UnoUrlResolver object with an XUnoUrlResolver interface
+ XComponentContext xLocalContext =
+ com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
+
+ XMultiComponentFactory xLocalServiceManager = xLocalContext.getServiceManager();
+
+ Object urlResolver = xLocalServiceManager.createInstanceWithContext(
+ "com.sun.star.bridge.UnoUrlResolver", xLocalContext );
+ // query XUnoUrlResolver interface from urlResolver object
+ XUnoUrlResolver xUnoUrlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(
+ XUnoUrlResolver.class, urlResolver );
+ //XUnoUrlResolver xUnoUrlResolver = (XUnoUrlResolver)urlResolver;
+
+ // Second step: use xUrlResolver interface to import the remote StarOffice.ServiceManager,
+ // retrieve its property DefaultContext and get the remote servicemanager
+ Object initialObject = xUnoUrlResolver.resolve( unoUrl );
+ XPropertySet xPropertySet = (XPropertySet)UnoRuntime.queryInterface(
+ XPropertySet.class, initialObject);
+ Object context = xPropertySet.getPropertyValue("DefaultContext");
+ xRemoteContext = (XComponentContext)UnoRuntime.queryInterface(
+ XComponentContext.class, context);
+ }
+ return xRemoteContext.getServiceManager();
+ }
+} \ No newline at end of file