Mercurial > hg > release > icedtea-web-1.7
view netx/net/sourceforge/jnlp/services/XServiceManagerStub.java @ 1523:dbde3691639c
Propagating unimplemented DownloadService2. Added tests for it
* netx/net/sourceforge/jnlp/services/ServiceUtil.java: added static getter for DownloadService2
* netx/net/sourceforge/jnlp/services/XDownloadService2.java: unimplemented stub for future DownloadService2
* netx/net/sourceforge/jnlp/services/XServiceManagerStub.java: listed javax.jnlp.DownloadService2 providing XDownloadService2
* tests/reproducers/simple/DownloadService2/resources/DownloadService.jnlp: jnlp to call DownloadService
* tests/reproducers/simple/DownloadService2/resources/DownloadService2.jnlp:jnlp to call DownloadService2
* tests/reproducers/simple/DownloadService2/srcs/DownloadService.java: app to call DownloadService
* tests/reproducers/simple/DownloadService2/srcs/DownloadService2.java: app to call DownloadService2
* tests/reproducers/simple/DownloadService2/testcases/DownloadService2Test.java: test to laounch DownloadService2 and DownloadService
author | Jiri Vanek <jvanek@redhat.com> |
---|---|
date | Mon, 25 Feb 2019 14:56:01 +0100 |
parents | 338c7d55380b |
children |
line wrap: on
line source
// Copyright (C) 2001-2003 Jon A. Maxwell (JAM) // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. package net.sourceforge.jnlp.services; import javax.jnlp.*; /** * Lookup table for services. * * @author <a href="mailto:jmaxwell@users.sourceforge.net">Jon A. Maxwell (JAM)</a> - initial author * @version $Revision: 1.6 $ */ public class XServiceManagerStub implements ServiceManagerStub { // todo: only include ExtensionInstallerService if an installer // is getting the service, otherwise return null. // todo: fix services to do their own privileged actions that // run less code in the secure environment (or avoid privileged // actions by giving permission to the code source). private static String serviceNames[] = { "javax.jnlp.BasicService", // required "javax.jnlp.DownloadService", // required "javax.jnlp.DownloadService2", "javax.jnlp.ExtendedService", "javax.jnlp.ExtensionInstallerService", // required "javax.jnlp.PersistenceService", "javax.jnlp.FileOpenService", "javax.jnlp.FileSaveService", "javax.jnlp.ClipboardService", "javax.jnlp.PrintService", "javax.jnlp.SingleInstanceService" }; private static Object services[] = { ServiceUtil.createPrivilegedProxy(BasicService.class, new XBasicService()), ServiceUtil.createPrivilegedProxy(DownloadService.class, new XDownloadService()), ServiceUtil.createPrivilegedProxy(DownloadService2.class, new XDownloadService2()), ServiceUtil.createPrivilegedProxy(ExtendedService.class, new XExtendedService()), ServiceUtil.createPrivilegedProxy(ExtensionInstallerService.class, new XExtensionInstallerService()), ServiceUtil.createPrivilegedProxy(PersistenceService.class, new XPersistenceService()), ServiceUtil.createPrivilegedProxy(FileOpenService.class, new XFileOpenService()), ServiceUtil.createPrivilegedProxy(FileSaveService.class, new XFileSaveService()), ServiceUtil.createPrivilegedProxy(ClipboardService.class, new XClipboardService()), ServiceUtil.createPrivilegedProxy(PrintService.class, new XPrintService()), ServiceUtil.createPrivilegedProxy(ExtendedSingleInstanceService.class, new XSingleInstanceService()) }; public XServiceManagerStub() { } /** * Returns the service names. */ public String[] getServiceNames() { // make sure it is a copy because we might be returning to // code we don't own. String result[] = new String[serviceNames.length]; System.arraycopy(serviceNames, 0, result, 0, serviceNames.length); return result; } /** * Returns the service. * * @throws UnavailableServiceException if service is not available */ public Object lookup(String name) throws UnavailableServiceException { // exact match for (int i = 0; i < serviceNames.length; i++) if (serviceNames[i].equals(name)) return services[i]; // substring match for (int i = 0; i < serviceNames.length; i++) if (-1 != serviceNames[i].indexOf(name)) return services[i]; throw new UnavailableServiceException("" + name); } }