From 754cb731b2d5f4888815c16c530fc3674264a4f2 Mon Sep 17 00:00:00 2001 From: clemenso Date: Wed, 11 Feb 2009 19:59:02 +0000 Subject: make applet better extensible (override BKUWorker,...) git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@294 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../gv/egiz/bku/online/applet/AppletBKUWorker.java | 4 +- .../bku/online/applet/AppletHashDataDisplay.java | 3 - .../at/gv/egiz/bku/online/applet/BKUApplet.java | 122 +++++++++++++-------- .../bku/online/applet/BrowserHashDataDisplay.java | 52 --------- 4 files changed, 79 insertions(+), 102 deletions(-) delete mode 100644 BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java index 388f045f..5a57ef18 100644 --- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java +++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletBKUWorker.java @@ -165,7 +165,7 @@ public class AppletBKUWorker extends AbstractBKUWorker implements Runnable { showErrorDialog(BKUGUIFacade.ERR_CONFIG, ex); } catch (Exception ex) { log.error(ex.getMessage(), ex); - showErrorDialog(BKUGUIFacade.ERR_UNKNOWN, ex); + showErrorDialog(BKUGUIFacade.ERR_UNKNOWN_WITH_PARAM, ex); } finally { if (signatureCard != null) { signatureCard.disconnect(false); @@ -195,7 +195,7 @@ public class AppletBKUWorker extends AbstractBKUWorker implements Runnable { } } - private void showErrorDialog(String err_code, Exception ex) { + protected void showErrorDialog(String err_code, Exception ex) { actionCommandList.clear(); actionCommandList.add("ok"); gui.showErrorDialog(err_code, diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java index 7be40d65..2ed9aa5b 100644 --- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java +++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/AppletHashDataDisplay.java @@ -16,12 +16,10 @@ */ package at.gv.egiz.bku.online.applet; -import at.gv.egiz.bku.gui.BKUGUIFacade; import java.security.DigestException; import java.security.MessageDigest; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import org.apache.commons.logging.Log; @@ -34,7 +32,6 @@ import at.gv.egiz.stal.service.GetHashDataInputFault; import at.gv.egiz.stal.service.STALPortType; import at.gv.egiz.stal.service.types.GetHashDataInputResponseType; import at.gv.egiz.stal.service.types.GetHashDataInputType; -import at.gv.egiz.stal.signedinfo.DigestMethodType; import at.gv.egiz.stal.signedinfo.ReferenceType; import java.security.NoSuchAlgorithmException; diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java index d4b2018d..a4337bbd 100644 --- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java +++ b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BKUApplet.java @@ -31,7 +31,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import at.gv.egiz.bku.gui.BKUGUIFacade; -import at.gv.egiz.bku.gui.BKUGUIFactory; +import at.gv.egiz.bku.gui.BKUGUIImpl; import at.gv.egiz.stal.service.STALPortType; import at.gv.egiz.stal.service.STALService; import java.awt.Container; @@ -57,8 +57,6 @@ public class BKUApplet extends JApplet { public static final String BACKGROUND_IMG = "Background"; public static final String REDIRECT_URL = "RedirectURL"; public static final String REDIRECT_TARGET = "RedirectTarget"; -// public static final String HASHDATA_DISPLAY_INTERNAL = "internal"; -// public static final String HASHDATA_DISPLAY_BROWSER = "browser"; public static final String HASHDATA_DISPLAY_FRAME = "frame"; /** * STAL WSDL namespace and service name @@ -69,6 +67,14 @@ public class BKUApplet extends JApplet { * Dummy session id, used if no sessionId parameter is provided */ protected static final String TEST_SESSION_ID = "TestSession"; + + static { + if (log.isTraceEnabled()) { + log.trace("enabling webservice communication dump"); + System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true"); + } + } + /** * STAL */ @@ -82,7 +88,7 @@ public class BKUApplet extends JApplet { @Override public void init() { log.info("Welcome to MOCCA"); - log.debug("Called init()"); + log.trace("Called init()"); HttpsURLConnection.setDefaultSSLSocketFactory(InternalSSLSocketFactory.getInstance()); @@ -127,19 +133,19 @@ public class BKUApplet extends JApplet { backgroundImgURL, helpListener); - worker = new AppletBKUWorker(this, gui); + worker = createBKUWorker(this, gui); } @Override public void start() { - log.debug("Called start()"); + log.trace("Called start()"); workerThread = new Thread(worker); workerThread.start(); } @Override public void stop() { - log.debug("Called stop()"); + log.trace("Called stop()"); if ((workerThread != null) && (workerThread.isAlive())) { workerThread.interrupt(); } @@ -147,52 +153,36 @@ public class BKUApplet extends JApplet { @Override public void destroy() { - log.debug("Called destroy()"); + log.trace("Called destroy()"); } - protected URL getURLParameter(String paramKey, String sessionId) throws MalformedURLException { - String urlParam = getParameter(paramKey); - if (urlParam != null) { - URL codebase = getCodeBase(); - try { - URL url; - if (codebase.getProtocol().equalsIgnoreCase("file")) { - // for debugging in appletrunner - url = new URL(urlParam); - } else { - if (sessionId != null) { - urlParam = urlParam + ";jsessionid=" + sessionId; - } - url = new URL(codebase, urlParam); - } - log.info("applet parameter " + url); - return url; - } catch (MalformedURLException ex) { - log.error("applet paremeter " + urlParam + " is not a valid URL: " + ex.getMessage()); - throw ex; - } - } else { - log.error("applet paremeter " + urlParam + " not set"); - throw new MalformedURLException(urlParam + " not set"); - } - } - - /** - * provides a means to for subclasses to inject a different GUI - */ + ///////////////////////////////////////////////////////////////////////////// + // factory methods for subclasses to inject different components + ///////////////////////////////////////////////////////////////////////////// + protected BKUGUIFacade createGUI(Container contentPane, Locale locale, Style guiStyle, URL backgroundImgURL, AbstractHelpListener helpListener) { - return BKUGUIFactory.createGUI(contentPane, - locale, - guiStyle, - backgroundImgURL, - helpListener); + return new BKUGUIImpl(contentPane, locale, guiStyle, backgroundImgURL, helpListener); + } + + protected AppletBKUWorker createBKUWorker(BKUApplet applet, BKUGUIFacade gui) { + return new AppletBKUWorker(applet, gui); } - protected STALPortType getSTALPort() throws MalformedURLException { + + ///////////////////////////////////////////////////////////////////////////// + // callback for BKUWorker to allow extension + ///////////////////////////////////////////////////////////////////////////// + + /** + * Callback for BKUWorker to allow extension + * @return + * @throws java.net.MalformedURLException + */ + public STALPortType getSTALPort() throws MalformedURLException { URL wsdlURL = getURLParameter(WSDL_URL, null); log.debug("setting STAL WSDL: " + wsdlURL); QName endpointName = new QName(STAL_WSDL_NS, STAL_SERVICE); @@ -200,10 +190,21 @@ public class BKUApplet extends JApplet { return stal.getSTALPort(); } - protected STALTranslator getSTALTranslator() { + /** + * Callback for BKUWorker to allow extension + * (TODO STALPort could know its STALTranslator) + * @return + * @throws java.net.MalformedURLException + */ + public STALTranslator getSTALTranslator() { return new STALTranslator(); } + /** + * Callback for BKUWorker to keep applet context out of BKUWorker + * @return + * @throws java.net.MalformedURLException + */ protected void sendRedirect(String sessionId) { try { URL redirectURL = getURLParameter(REDIRECT_URL, sessionId); @@ -220,4 +221,35 @@ public class BKUApplet extends JApplet { // gui.showErrorDialog(errorMsg, okListener, actionCommand) } } + + + ///////////////////////////////////////////////////////////////////////////// + // utility methods + ///////////////////////////////////////////////////////////////////////////// + + protected URL getURLParameter(String paramKey, String sessionId) throws MalformedURLException { + String urlParam = getParameter(paramKey); + if (urlParam != null) { + URL codebase = getCodeBase(); + try { + URL url; + if (codebase.getProtocol().equalsIgnoreCase("file")) { + // for debugging in appletrunner + url = new URL(urlParam); + } else { + if (sessionId != null) { + urlParam = urlParam + ";jsessionid=" + sessionId; + } + url = new URL(codebase, urlParam); + } + return url; + } catch (MalformedURLException ex) { + log.error("applet paremeter " + urlParam + " is not a valid URL: " + ex.getMessage()); + throw ex; + } + } else { + log.error("applet paremeter " + urlParam + " not set"); + throw new MalformedURLException(urlParam + " not set"); + } + } } diff --git a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java b/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java deleted file mode 100644 index c30921da..00000000 --- a/BKUApplet/src/main/java/at/gv/egiz/bku/online/applet/BrowserHashDataDisplay.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2008 Federal Chancellery Austria and - * Graz University of Technology - * - * Licensed 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 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package at.gv.egiz.bku.online.applet; - -import java.net.URL; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import at.gv.egiz.bku.smccstal.SignRequestHandler; -import at.gv.egiz.stal.signedinfo.ReferenceType; -import java.applet.AppletContext; - -/** - * - * @author Clemens Orthacker - */ -public class BrowserHashDataDisplay extends SignRequestHandler { - - private static final Log log = LogFactory.getLog(BrowserHashDataDisplay.class); - - protected AppletContext ctx; - protected URL hashDataURL; - - public BrowserHashDataDisplay(AppletContext ctx, URL hashDataURL) { - this.ctx = ctx; - this.hashDataURL = hashDataURL; - } - - @Override - public void displayHashDataInputs(List signedReferences) throws Exception { - //TODO pass reference Id's to servlet (TODO servlet) - log.debug("displaying hashdata inputs at " + hashDataURL); - ctx.showDocument(hashDataURL, "_blank"); - } -} -- cgit v1.2.3