TaskNotifier Developer guide

From RunaWFE
Jump to navigation Jump to search

RUNA WFE. Task Notifier Developer’s guide.


Version 3.0


© 2004-2009, ZAO Runa. RUNA WFE is an open source system distributed under a LGPL license (http://www.gnu.org/licenses/lgpl.html).


Project structure


lib – additional libraries

nsis – build files

resources – application settings

resources/img – pictures for UI

src – project source files


Architecture


This application works with the RuneWFE system through two "channels": RMI and HTTP.

Authentication can be performed both over HTTP and RMI.

For HTTP you can use the following authentication methods: user name and password, NTLM, Kerberos (browser functionality is used).

For RMI you can use the following authentication methods: user name and password, Kerberos (Java GSS API).


For RMI the following two interfaces are used:

AuthenticationServiceDelegate (for authentication) and ExecutionServiceDelegate (to check new tasks).

This application performs two types of checking: periodic and requested. The former is performed after a timeout, the latter – on MouseOver events in the System tray.

The application is built with NSIS (NullSoft Installation System) to get an EXE file in the end.


Description of Classes


ru.runa.notifier.PlatformLoader

Start class of the application. When started, it shows a splash (a picture) in another Shell and after initialization it starts another Shell with support of system tray.


ru.runa.notifier.GUI

The main class of the application graphical shell. Creates a Browser and attaches event handlers to the three buttons in the top right corner of the screen.


ru.runa.notifier.tray.SystemTray

Provides support in system tray. Contains system tray event handlers.


ru.runa.notifier.tray.SystemTrayAlert

Implements a pop-up window near system tray. Contains functions for drawing this window. Called when it is necessary to notify the user about new tasks.


ru.runa.notifier.checker.TaskChecker

Provides periodical (TimerTask) or requested (SystemTray) checking of new tasks.


ru.runa.notifier.auth.LoginHelper

This class performs Kerberos authentification in a RuneWFE system. In case authentication fails, it displays a dialog window.


ru.runa.notifier.auth.LoginModuleResources

Used as container for kerberos_module.properties settings.


ru.runa.notifier.auth.LoginConfiguration

Configuration for authentification.


org.eclipse.swt.widgets.STrayItem

SWT message event handler class. Designed to respond to MouseOver events.


ru.runa.notifier.util.ExtendedThread

Used by the SystemTrayAlert class.


ru.runa.notifier.util.WidgetsManager

Helper class.


ru.runa.notifier.util.ResourcesManager

A class to liad and store application.property values.


ru.runa.notifier.util.LayoutsManager

A helper class, used by the SystemTrayAlert class.


ru.runa.notifier.util.ImageManager

A manager class to handle images (load, unload).


Application Configuration


kerberos_module.properties


appName=com.sun.security.jgss.initiate

moduleClassName=com.sun.security.auth.module.Krb5LoginModule

useTicketCache=true

doNotPrompt=true

debug=false

serverPrincipal=WFServer


appName – login module name

moduleClassName – login module class

useTicketCache – whether to use cache for Kerberos tickets

doNotPrompt – do not use user input in any situation

debug – additional logging for authentication

serverPrincipal – login from the server side (configured in AD)


application.properties


All Russian values are specified in ANSI coding.


application.name, popup.newtasks, user.name, user.password, login.message,

retry.message, error.login, error.internal, popup.no.tasks, popup.tease,

popup.error, menu.open, menu.exit – localized user messages


server.url – server URL

(Example: http://localhost:8080/wfe)

login.relative.url – a starting page of the system (an authentification page)

(Examples:

/login.do – a form for entering user name and password;

/ntlm.do – NTLM authentification;

/ntlm.do – Kerberos authentification;

)

start.relative.url – a page with tasks

(Example: /manage_tasks.do?tabForwardName=manage_tasks)


check.tasks.timeout – Timeout for checking for new tasks, ms

check.tasks.min_interval – Minimal timeout for forced checking of new tasks, ms


authentication.type – sets authentification type for RMI (possible values are userinput, kerberos)


infopath.submit.button.name – The name of the button for running InfoPath form

infopath.submit.button.name – The name of the button for InfoPath form cancellation


(Only for username and password authentification)

userinput.default.login – default login name, recommended to left blank

userinput.default.login – default password, recommended to left blank