129 lines
4 KiB
Java
129 lines
4 KiB
Java
/*
|
|
* 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 .
|
|
*/
|
|
|
|
import com.sun.star.comp.loader.FactoryHelper;
|
|
import com.sun.star.lang.*;
|
|
import com.sun.star.uno.*;
|
|
import com.sun.star.registry.XRegistryKey;
|
|
import java.io.*;
|
|
import java.net.*;
|
|
|
|
|
|
/** This component implements XTypeProvider for use with StarBasic.
|
|
* The XServiceInfo is implemented to have an interface in which we can put some
|
|
* code just for the sake of debugging.
|
|
*
|
|
* To debug with JPDA (jdk 1.3), put these lines in the java.ini within the [Java] section:
|
|
* -Xdebug
|
|
* -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
|
|
*
|
|
* When the Virtual Machine service is instantiated it will block until the debugger
|
|
* attaches to it on port 8000. You can chose a different port. You attach to the VM using
|
|
* jdb by
|
|
*
|
|
* jdb -connect com.sun.jdi.SocketAttach:hostname=myhost,port=8000
|
|
*
|
|
* myhost is the hostname where the VM is running.
|
|
*/
|
|
public class TestComponent implements XServiceInfo, XTypeProvider
|
|
{
|
|
public static final String __serviceName="JavaTestComponent";
|
|
|
|
// XTypeProvider
|
|
public com.sun.star.uno.Type[] getTypes( )
|
|
{
|
|
Type[] retValue= new Type[2];
|
|
retValue[0]= new Type( XServiceInfo.class);
|
|
retValue[1]= new Type( XTypeProvider.class);
|
|
return retValue;
|
|
}
|
|
// XTypeProvider
|
|
public byte[] getImplementationId( )
|
|
{
|
|
return new byte[0];
|
|
}
|
|
|
|
|
|
// XServiceName
|
|
public String getImplementationName( )
|
|
{
|
|
// the functions are for debugging
|
|
|
|
// Test security settings
|
|
File f= new File("c:/temp/javasecurity.txt");
|
|
try {
|
|
f.createNewFile();
|
|
|
|
// local connection
|
|
URL url= new URL("http://localhost:8080/index.html");
|
|
url.openStream();
|
|
// remote connection
|
|
url= new URL("http://www.w3.org/index.html");
|
|
url.openStream();
|
|
}catch( MalformedURLException mue) {
|
|
}catch( IOException e) {
|
|
String s= e.getMessage();
|
|
System.out.println(s);
|
|
}
|
|
|
|
return __serviceName;
|
|
}
|
|
// XServiceName
|
|
public boolean supportsService( /*IN*/String ServiceName )
|
|
{
|
|
|
|
return false;
|
|
}
|
|
|
|
//XServiceName
|
|
public String[] getSupportedServiceNames( )
|
|
{
|
|
String[] retValue= new String[0];
|
|
return retValue;
|
|
}
|
|
|
|
public static XSingleServiceFactory __getServiceFactory(String implName,
|
|
XMultiServiceFactory multiFactory,
|
|
XRegistryKey regKey)
|
|
{
|
|
XSingleServiceFactory xSingleServiceFactory = null;
|
|
|
|
if (implName.equals( TestComponent.class.getName()) )
|
|
xSingleServiceFactory = FactoryHelper.getServiceFactory( TestComponent.class,
|
|
TestComponent.__serviceName,
|
|
multiFactory,
|
|
regKey);
|
|
|
|
return xSingleServiceFactory;
|
|
}
|
|
|
|
/**
|
|
* Writes the service information into the given registry key.
|
|
* This method is called by the <code>JavaLoader</code>
|
|
* <p>
|
|
* @return returns true if the operation succeeded
|
|
* @param regKey the registryKey
|
|
* @see com.sun.star.comp.loader.JavaLoader
|
|
*/
|
|
public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
|
|
{
|
|
return FactoryHelper.writeRegistryServiceInfo( TestComponent.class.getName(),
|
|
TestComponent.__serviceName, regKey);
|
|
}
|
|
|
|
}
|