From ff9fbfd9c9e9a1caa72601df951a7fd85eb8fcc1 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 7 May 2013 16:46:46 +0200 Subject: Extract SmoketestCommandEnvironment.java from juh.jar ...into a new smoketest.jar, so that URE juh.jar no longer depends on non-URE unoil.jar. Change-Id: I8937c78d8af6e2f82ada5dd80c322f8bca5ec2f5 --- smoketest/org/libreoffice/smoketest/Services.java | 51 ++++++++ .../smoketest/SmoketestCommandEnvironment.java | 143 +++++++++++++++++++++ smoketest/org/libreoffice/smoketest/manifest | 3 + .../org/libreoffice/smoketest/smoketest.component | 25 ++++ 4 files changed, 222 insertions(+) create mode 100644 smoketest/org/libreoffice/smoketest/Services.java create mode 100644 smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java create mode 100644 smoketest/org/libreoffice/smoketest/manifest create mode 100644 smoketest/org/libreoffice/smoketest/smoketest.component (limited to 'smoketest/org') diff --git a/smoketest/org/libreoffice/smoketest/Services.java b/smoketest/org/libreoffice/smoketest/Services.java new file mode 100644 index 000000000000..4f74769e1523 --- /dev/null +++ b/smoketest/org/libreoffice/smoketest/Services.java @@ -0,0 +1,51 @@ +/* + * 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 org.libreoffice.smoketest; + +import com.sun.star.lib.uno.helper.Factory; +import com.sun.star.lang.XSingleComponentFactory; + +/** This class is the registration class for all services in this module. + * + * Note that not all files which can be used as service need to be registered + * by this class. + */ +public class Services { + + /** + * Gives a factory for creating the service. + * This method is called by the JavaLoader + *

+ * @return returns a XSingleComponentFactory for creating + * the component + * @param sImplName the name of the implementation for which a + * service is desired + * @see com.sun.star.comp.loader.JavaLoader + */ + public static XSingleComponentFactory __getComponentFactory(String sImplName) + { + XSingleComponentFactory xFactory = null; + + if ( sImplName.equals( SmoketestCommandEnvironment.class.getName() ) ) + xFactory = Factory.createComponentFactory(SmoketestCommandEnvironment.class, + SmoketestCommandEnvironment.getServiceNames()); + + return xFactory; + } +} diff --git a/smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java b/smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java new file mode 100644 index 000000000000..51c957adb0c5 --- /dev/null +++ b/smoketest/org/libreoffice/smoketest/SmoketestCommandEnvironment.java @@ -0,0 +1,143 @@ +/* + * 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 org.libreoffice.smoketest; + +import com.sun.star.lang.XMultiComponentFactory; +import com.sun.star.lib.uno.helper.WeakBase; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XComponentContext; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.ucb.XCommandEnvironment; + +/** This service is for use by the smoketest which checks the installation of + * extensions. The service provides the XCommandEnvironment interface, which + * is needed for adding extensions. + */ +public class SmoketestCommandEnvironment extends WeakBase + implements XServiceInfo, XCommandEnvironment { + + static private final String __serviceName = + "com.sun.star.deployment.test.SmoketestCommandEnvironment"; + + private XComponentContext m_cmpCtx; + private XMultiComponentFactory m_xMCF; + + + public SmoketestCommandEnvironment(XComponentContext xCompContext) { + try { + m_cmpCtx = xCompContext; + m_xMCF = m_cmpCtx.getServiceManager(); + } + catch( Exception e ) { + e.printStackTrace(); + } + } + + public static String[] getServiceNames() { + String[] sSupportedServiceNames = { __serviceName}; + return sSupportedServiceNames; + } + + //XServiceInfo ------------------------------------------------------------- + public String[] getSupportedServiceNames() { + return getServiceNames(); + } + + + public boolean supportsService( String sServiceName ) { + boolean bSupported = false; + if (sServiceName.equals(__serviceName)) + bSupported = true; + return bSupported; + } + + public String getImplementationName() { + return SmoketestCommandEnvironment.class.getName(); + } + + //XCommandEnvironment ================================================ + public com.sun.star.task.XInteractionHandler getInteractionHandler() + { + return new InteractionImpl(); + } + + public com.sun.star.ucb.XProgressHandler getProgressHandler() + { + return new ProgressImpl(); + } +} + + + + +class InteractionImpl implements com.sun.star.task.XInteractionHandler +{ + public void handle( com.sun.star.task.XInteractionRequest xRequest ) + { + Object request = xRequest.getRequest(); + + boolean approve = true; + boolean abort = false; +// Object install_Exception = +// AnyConverter.toObject( +// com.sun.star.deployment.InstallException.class, request); +// if (install_Exception != null) +// { +// approve = true; +// } + + com.sun.star.task.XInteractionContinuation[] conts = xRequest.getContinuations(); + for (int i = 0; i < conts.length; i++) + { + if (approve) + { + com.sun.star.task.XInteractionApprove xApprove = + UnoRuntime.queryInterface(com.sun.star.task.XInteractionApprove.class, conts[i]); + if (xApprove != null) + xApprove.select(); + //don't query again for ongoing extensions + approve = false; + } + else if (abort) + { + com.sun.star.task.XInteractionAbort xAbort = + UnoRuntime.queryInterface(com.sun.star.task.XInteractionAbort.class, conts[i]); + if (xAbort != null) + xAbort.select(); + //don't query again for ongoing extensions + abort = false; + } + } + } +} + +class ProgressImpl implements com.sun.star.ucb.XProgressHandler +{ + public void push(Object status) + { + } + + public void update(Object status) + { + } + + public void pop() + { + } +} diff --git a/smoketest/org/libreoffice/smoketest/manifest b/smoketest/org/libreoffice/smoketest/manifest new file mode 100644 index 000000000000..88cb26f5b6bb --- /dev/null +++ b/smoketest/org/libreoffice/smoketest/manifest @@ -0,0 +1,3 @@ +Sealed: true +RegistrationClassName: org.libreoffice.smoketest.Services +UNO-Type-Path: diff --git a/smoketest/org/libreoffice/smoketest/smoketest.component b/smoketest/org/libreoffice/smoketest/smoketest.component new file mode 100644 index 000000000000..fa7d8f100a05 --- /dev/null +++ b/smoketest/org/libreoffice/smoketest/smoketest.component @@ -0,0 +1,25 @@ + + + + + + + + -- cgit