de.a_weinert.apps
Class FileServices

java.lang.Object
  extended by de.frame4j.util.App
      extended by de.a_weinert.WinApp
          extended by de.a_weinert.apps.FileServices
All Implemented Interfaces:
AttrSettable, TextHelper.MessageComponents, UIInfo, ActionListener, ComponentListener, WindowListener, EventListener, DynamicMBean

public class FileServices
extends WinApp

Aufdat- und Aufräumdienste für Dateien.

Einleitung

Diese Anwendung kann im Dauerbetrieb auf einem Rechner laufen, der im folgenden Data-Server genannt wird. Dies kann ein Windows-NT/XP/2000/2003-PC, ein NT/200/2003-Server oder (fast) jede andere Plattform mit Java (JVM) sein. Auf diesem Data-Server realisiert diese Anwendung verschiedene einmalige oder zyklische Dateiaufdatdienste, die sehr granular konfiguriert werden können.

Neben üblichen Archivierungs- und Sicherungsfunktionen kann man FileServices auch dazu verwenden, Dateien von WWW-Lieferanten aus dem Data-Server in einen WWW-Server zu transportieren.

Die Idee dahinter:
Die Anwender erhalten fein verteilte (NTFS-) Schreibrechte auf dem Data-Server, sie haben aber keine Rechte auf dem eigentlichen WWW-Server. Die feingranularen Dateirechte lassen sich im Allgemeinen mit NT-/2000-/2003-ACLS (access control lists, NTFS) gut realisieren. Linux-/Unix-Systeme, meist ja die Heimat der WWW-Sever, sind auf diesem Gebiet (mit den steinzeitlichen 9 Rechtebits) ja vollkommen rückständig. (Genauso kritisch ist natürlich anzumerken, dass die Java-File-Klassen selbst auch keine Dateisystem-ACLs handhaben können.)

Alle Dienste des Programms werden über Properties gesteuert, die zunächst aus der Datei FileServices.properties im Startverzeichnis der Anwendung, aus ...\jre\lib\ oder aus dem .jar-File dieser Anwendung geladen und danach ggf. mit Startparametern (direkt und/oder durch zusätzliche Properties-Datei) verändert werden. Alle hier genannten Namen, Verzeichnisse Listen von Dateitypen etc. sind Beispiele; die tatsächliche Einstellung erfolgt durch eine zugehörige Property (im folgenden jeweils mit ihrem %Namen% in Prozentzeichen geklammert bezeichnet).
Zu Einzelheiten siehe die Datei FileServices.properties, die ein integraler Bestandteil dieser Anwendung ist.

Der Datei-Aufdatdienst

Ein Aufdatdienst kopiert nach gewissen Kriterien Dateien von einem Quell- in ein Zielverzeichnis; dort "verdrängte" Dateien können in ein Backup-Verzeichnis kopiert werden.
Mehrere solche Dienste sind flexibel konfigurierbar.
Für jeden Aufdatdienst können Quell-, Ziel- und optional auch Backup-Verzeichnis über Properties angegeben werden :

  Quellverzeichnis:    %qvz0% z.B. D:\WWW\AktuellerStand
  Zielverzeichnis:     %zvz0% z.B. W:
  Backup-Verzeichnis:  %bvz0% z.B. D:\WWW\WWWBack
Ohne %bvz0%-Angabe entfällt das weiter Schieben in ein Backup-Verzeichnis. Die 0 ist nur ein Beispiel. Hier kann 0 bis 99 stehen (< 10 einstellig).
Darüber hinaus können weitere Eigenschaften eines solchen Aufdatdienstes angegeben werden (Werte sind Beispiele):
  %types0%    html;gif;jpg;css
  #    nur diese Dateitypen aufdaten,
  # default die Typen %types%
  %lcNames0%  true
  #    Erzeugung von Dateien (und ggf. von neuen vorgelagerten 
  #    Verzeichnissen) mit klein geschriebenen Dateinamen,
  #    default %lcNames%;  %lcnames default false
  %noLCforTypes0%  .java;.class;.html
  #    Im Falle %lcNames0%  true trotzdem keine Kleinschreibung (nur)
  #    des Dateinamens für die angegebenen Dateitypen
  #    default %noLCforType%;  %noLCforTypes default .java;.class
  %fast0%     true
  #    Abarbeiten im schnelleren Takt; default seltener
  %delEmpty0% true
  #    Löschen von Dateien der Länge 0 im
  #    Zielverzeichnis, default kein Löschen
  %clean0% false
  #    Löschen von an der Quelle nicht vorhandenen Dateien im
  #    Zielverzeichnis, default kein Säubern
  %noRec0%    true  
  #    keine Rekursion in Unterverzeichnisse
  #    default !%recursion%;  %recursion% default true
  %noMd0%    true  
  #    kein Erzeugen nicht vorhandener Unterverzeichnisse
  #    default !%noMd%;  %noMd% default false
  %noNew0%    true  
  #    kein Erzeugen nicht vorhandener Dateien 
  #    (nur ggf. Aktualisieren)
  #    default !%noNew%;  %noNew% default false
  %noDif0%    true  
  #    kein Mindestaltersunterschied fürs Aufdaten
  #    (default false)
  %difOld0%   60000
  #    Mindestaltersunterschied 60000 ms = 1 min
  #    default %difOld%; %difOld% default 120000 = 2 Minuten
  %thoseDirs0% work?
  #    nur aus Verzeichnissen work? aufdaten
  #    default %dirCritWild%; 
  #    %dirCritWild% ist default null also alle
  %omitDirs0% D:\Programme;WinNT
  #    nicht aus Verzeichnissen, die D:\Programme oder WinNT
  #    enthalten, aufdaten. 
  #    default %dirCritOmit%; 
  #    %dirCritOmit% default null also kein Ausschluss
 
Beispielauszug aus einer Properties-Datei
  #Zusatzdienst 4  (pl    server web ltz)
  qvz4=   D:\\AktuellerStand\\pl\\ 
  zvz4=   W:\\pl
  bvz4=   LetzterStand\\pl
  types4= html;css;jpg
  ###      oder statt qvz4= und types4=  nur
  qvz4=   D:\\AktuellerStand\\pl\\html;css;jpg

Für Dateien, die den so angegebenen Kriterien entsprechen und die auf dem Zielverzeichnis jünger sind als im Quellverzeichnis, geschieht folgendes:
  1. Kopie von %qvz0% (aktueller Stand) nach %zvz0% .
    Dabei werden ggf. Dateien der Länge 0 im Ziel gelöscht.
  2. Vorher Retten der bisherigen Datei vom %zvz0% nach %bvz0%\ (letzter Stand, sofern %bvz0% angegeben)
Durch dieses Kopierverfahren ist es möglich, mehrere Versionen jeder betroffenen Datei zu halten.
Das Kopieren bzw. Löschen geschieht nur, wenn die Quelle mindestens %difOld% ms (default 120000= 2 Minuten) jünger ist als das Ziel. Ist %zonesafe" true (default), wird bei Dateien, die älter als 3 Tage sind, ein Mindestaltersunterschied von mindestens drei Stunden angesetzt.
Dateien können mit Namen in Kleinbuchstaben erzeugt werden, da Groß-/Kleinschreibung auf vielen WEB-Servern, Firewalls und Proxies Probleme bereitet.
Für diese (Aufdat-) Vorgänge wird (default) auch "rekursiv" in Unterverzeichnisse abgestiegen.


Der Aufräumdienst

Ein Aufräumdienst löscht die nach gewissen Kriterien ausgesuchten Dateien in einem Zielverzeichnis, sofern diese in einem Quellverzeichnis nicht vorhanden sind. Die zu löschenden Dateien können vorher in ein Backup-Verzeichnis kopiert werden.

Ein oder mehrere solche Dienste sind flexibel anstelle oder zusätzlich zu den Aufdatdiensten konfigurierbar. Die Konfigurierung der Aufräum- und Aufdatdienste über Properties ist weitgehend gleich.
Für einen Aufräumdienst gilt abweichend zum Obigen:
  %clean0%   true
  #    bei true Aufräum- sonst Aufdatdienst
  # default false
  %delEmpty0% true
  #    Löschen von (ggf. nach dem Aufräumen) leeren Zielverzeichnissen,
  #    default kein Löschen leerer Verzeichnisse
  %noMd0% 
  #    bei Aufräumdienst bedeutungslos
  %noNew0% 
  #    bei Aufräumdienst bedeutungslos
  %noDif0% 
  #    bei Aufräumdienst bedeutungslos
  %difOld0% 
  #    bei Aufräumdienst bedeutungslos
 
Beispielauszug aus einer Properties-Datei
  #Aufräumdienst 40  (pl    server web ltz)
  qvz40=   D:\\AktuellerStand\\pl\\ 
  zvz40=   W:\\pl
  bvz40=   LetzterStand\\pl
  clean40= true 
  delEmpty40= true

Die Bedienung im Dauerbetrieb

FileServices ist eine Java-Anwendung mit eine auf WinApp beruhenden graphischen Bedienschnittstelle. Gibt es zyklische Aufdatdienste, läuft FileServices im Dauerbetrieb und ist zunächst nur durch diese graphische Schnittstelle zu beeinflussen und insbesondere zu beenden.
Der Start mit javaw anstelle von java ist in den meisten Fällen sinnvoll und ausreichend.

Die zweite nur im Dauerbetrieb gegebene Eingriffsmöglichkeit ist die als MBean über die Botschaft / Operation clientOrder(). Diese und weitere Bedien- und Beobachtungsmöglichkeiten können über einen (JMX-) WWW-Server (siehe ServeJMBW) verfügbar gemacht werden. Dieser wird gestartet und genutzt, wenn im Dauerbetrieb useJMX true ist.

Für eine Windows-Server-Plattform (vorzugsweise 2003) ist eine dritte Fernbedienmöglichkeit im Dauerbetrieb durch die remote-Terminal-Funktion gegeben. Von Bedienrechner (Windows-Workstation) logt man sich dann mit einem Befehl à la
      C:\WINNT\system32\mstsc.exe <Data-Server>.rdp /console
als derjenige Benutzer, unter dem FileServices läuft, auf dem "Data-Server" ein.

Implementierte JMX-Kommandos (die neben anderen am ausführenden Rechner bzw. am remote Terminal auch über Menus zu Verfügung stehen) sind u.A.:
Hinweis zu den Variablen / zur Quelle:
Öffentliche Objektvariable werden ggf. via Prop.setfields() gesetzt und auf öffentliche set-Methoden wird ggf. von Prop.setfields() zugegriffen.

Copyright 1999 - 2005   Albrecht Weinert

Version:
15 (21.05.2010)
Author:
Albrecht Weinert
See Also:
de.a_weinert, App, Prop, DataFile, FileService

Field Summary
 int atHour
          Die Stunde für Aufdatdienste.
 int atMinute
          Die Minute für Aufdatdienste.
 boolean delEmpty
          Löschen von Dateien der Länge 0 im Zielverzeichnis.
 int difOld
          Mindestaltersunterschied für Verdrängen (Aufdatdienst) / ms.

default: 120000 (120s = 2 min)
 int fastRate
          Die Periode der häufigen Aufdatdienste (in Minuten).
 boolean fastSilent
          Keine Meldungen bei häufigen Aufdatdiensten ("Schnelldiensten").
 boolean lcNames
          Beim Aufdaten Datei- und Verzeichnisnamen in Kleinschrift erzeugen.
 boolean noClean
          Sperren der Aufräumdienste.
 String noLCforTypes
          Kein Erzeugen von Dateien bestimmter Typen in Kleinbuchstaben.

Diese Eigenschaft noLCforTypes wirkt jeweils nur wenn sie ungleich null ist und wenn lcNames true ist.

Falls in diesem Falle die (zu erzeugende) Datei von einem dieser Eigenschaft entsprechenden Typ ist, werden zwar ggf.
 boolean noMd
          Kein Erzeugen noch nicht vorhandener Verzeichnisse.
 boolean noNew
          Kein Erzeugen noch nicht vorhandener Dateien.
 boolean noOut
          Keine Normalausgabe (z.B. für javaw-Start).
 int rate
          Die Periode der Aufdatdienste (in Minuten).
 boolean recursion
          Beim Aufdaten default auch rekursiv in Unterverzeichnisse.
 boolean useJMX
          JMX-Server nutzen / generieren.
protected  String wedaClock
          Interner Merker für nutzersprachabhängiges Datum/Uhrzeit-Format.
 boolean zoneSafe
          Besondere Behandlung von Altersunterschieden im Aufdatdienst.
 
Fields inherited from class de.a_weinert.WinApp
actSize, backGround, canvas, fileDialog, icon, killFast, lastShownText, LOG_SHOW_SIZE, menuBar, myCntPane, myFrame, OUT_SHOW_SIZE, preferredSize, showOutAuto, showOutConti, textPanel, textPanelCont, textPanelFont, textPanelFontSize, tickThread, twoTicks, xmlMBdescr
 
Fields inherited from class de.frame4j.util.App
ano, appBase, appIO, appStartTime, args, bgColor, err, fullClassName, help, INIT_ERROR, jmxRemoteNote, JOB_DONE_OK, log, LOG_OUT_ERROR, MAIN_THREAD_EXC, mainThread, myClass, name, NO_PARS_ERROR, objectName, out, outMode, packName, prop, retCode, runFlag, shortClassName, title, verbose, verbosity
 
Fields inherited from interface de.frame4j.net.AttrSettable
ILLEGAL_TYPE, ILLEGAL_VALUE, NO_ATTRIBUTE, NO_KNOWN_ATTRIBUTE, NO_VALUE, OK
 
Constructor Summary
FileServices()
          Konstruktor von FileServices.
 
Method Summary
 String clientOrder(String command)
          Kommando von einem Klient an dieses FileServices-Objekt.
 int doIt()
          Arbeitsmethode von FileServices.
 Object getAttribute(String attName)
          DynamicMBean - Implementierung.
 String getStateString()
          Status dieses JMBW-Objekts als Text .
 int initWinApp()
          (Zusätzliche) Initialisierungen vor dem sichtbar Machen.
 Object invoke(String operationName, Object[] params, String[] signature)
          DynamicMBean - Implementierung.
 boolean isNnoClean()
          Sperren der Aufräumdienste.
static void main(String[] args)
          Startmethode von FileServices.
 boolean performeAction(String command, AWTEvent e)
          Ausführung der Reaktion auf eine Aktion (i.A. eines Menus).
 void setAtHour(CharSequence atHour)
          Die Stunde für Aufdatdienste setzen.
 void setAtMinute(CharSequence atMinute)
          Die Minute für Aufdatdienste setzen.
protected  int setAttribute(String name, char name0, Object value, Class<?> vClass, boolean isNull, boolean isStringVal)
          DynamicMBean - indirekte Implementierung.
 void setFastSilent(boolean fastSilent)
          Keine Meldungen bei häufigen Aufdatdiensten ("Schnelldiensten").
 void setNoClean(boolean noClean)
          Sperren der Aufräumdienste An / Aus.
 boolean showServices(StringBuilder oPw)
          Anzeigen der Dienste (mit Rekursionskontrolle).
 
Methods inherited from class de.a_weinert.WinApp
chooseFile, componentHidden, componentMoved, componentResized, componentShown, getByAction, getByAction, getMinimumSize, getMyFrame, getPanel, getPreferredHeight, getPreferredWidth, getTicks, go, go, go, initMenuBar, isCanvasShowing, isStarted, loadMenus, setCBMIstate, setCBMIstate, setLogDat, setMenuBar, setOutDat, setPanel, setPanelText, setPreferredHeight, setPreferredSize, setPreferredWidth, setTitle, setTwoTicks, setXmlMBdescr, showLogText, showOutText, showPanelText, showProps, showState, shutdown, storeMenus, storeMenus, tick, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class de.frame4j.util.App
actionPerformed, allowNoPropertiesFile, condHelpLog, connect, errMeld, errMeld, errorExit, errorExit, errorExit, errorText, formMessage, formMessage, getAbout, getAboutText, getActTime, getAppLogger, getAppStartTime, getArgs, getAttributes, getAuthor, getCopyright, getDbLogger, getExecTimeMs, getExecTimeString, getHelp, getHelpText, getIcon, getLanguage, getLogHandler, getMBeanInfo, getMessageComponent, getMessageComponentsLength, getName, getNameWithVersDate, getOutMode, getProp, getPurpose, getStartTime, getTitle, getUsage, getVerbosity, getVerbosityString, getVersDate, getXMLinput, go, go, go, haveIcon, isDebug, isHelp, isHelpLog, isNormal, isRunFlag, isSilent, isTest, isVerbose, logVerbose, logVerbose, makeDbLogger, makeMenuBar, makeMenuBar, makeStatusTextEnd, makeStatusTextStart, messageFormat, normalExit, parsePartial, postDeregister, postRegister, preRegister, queueAction, registerAsMBean, setAboutText, setAttribute, setAttribute, setAttributes, setAuthor, setBgColor, setCodePages, setCopyright, setHelp, setJmxRemoteNote, setLogOut2, setName, setOutMode, setOutMode, setPurpose, setUsage, setVerbose, setVerbose, setVerbosity, setVerbosity, setVerbosityString, setVersDate, stop, threeLineEndMsg, toString, twoLineEndMsg, twoLineStartMsg, valueLang, valueLang, wakeMainThread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
 

Field Detail

noOut

public boolean noOut
Keine Normalausgabe (z.B. für javaw-Start).


fastSilent

public boolean fastSilent
Keine Meldungen bei häufigen Aufdatdiensten ("Schnelldiensten").


lcNames

public boolean lcNames
Beim Aufdaten Datei- und Verzeichnisnamen in Kleinschrift erzeugen.


noLCforTypes

public String noLCforTypes
Kein Erzeugen von Dateien bestimmter Typen in Kleinbuchstaben.

Diese Eigenschaft noLCforTypes wirkt jeweils nur wenn sie ungleich null ist und wenn lcNames true ist.

Falls in diesem Falle die (zu erzeugende) Datei von einem dieser Eigenschaft entsprechenden Typ ist, werden zwar ggf. die Directories in Kleinschrift erzeugt, nicht aber die betreffende Datei.

default: .class;.java

Since:
16.11.2005

recursion

public boolean recursion
Beim Aufdaten default auch rekursiv in Unterverzeichnisse.


atHour

public int atHour
Die Stunde für Aufdatdienste.

Ein Wert zwischen 0 und 23 bewirkt, dass die normalen (nicht die "häufigen") Aufdatdienste einmal täglich während der angegebenen Stunde durchgeführt werden; rate wird auf 24*60 = 1440, d.h auf täglich, gesetzt.
Ein negativer Wert (default) schaltet diese "Tagestakt"-Eigenschaft aus.


atMinute

public int atMinute
Die Minute für Aufdatdienste.

Ein Wert zwischen 0 und 59 bewirkt, dass die normalen Aufdatdienste zur angegebenen Minute durchgeführt werden; rate wird auf 60 gesetzt, falls es < 115 ist, ansonsten wird es auf volle Stunden gerundet.
Ein negativer Wert (default) schaltet die Minutensynchronität aus.


rate

public int rate
Die Periode der Aufdatdienste (in Minuten).

Ein Wert zwischen 1 und 8*24*60 (=86400 Minuten = 8 Tage) bewirkt, dass alle Aufdatdienste periodisch alle angegebenen Minuten durchgeführt werden. Default : 60.

Ein negativer Wert oder 0 bewirkt nur einmalige Durchführung der Aufdatdienste, falls atMinute oder atHour nicht gesetzt ist. Setzen von atMinute oder atHour erhöht diesen Wert auf mindestens eine Stunde beziehungsweise setzt ihn auf einen Tag.


fastRate

public int fastRate
Die Periode der häufigen Aufdatdienste (in Minuten).

Ein Wert zwischen 1 und 24*60=1440 (Minuten= 1 Tag) bewirkt, dass die häufigen Aufdatdienste periodisch alle angegebenen Minuten durchgeführt werden. (fastRate <= rate !) Ein negativer Wert oder 0 heißt so oft, wie die normalen Aufdatdienste (rate).


noClean

public boolean noClean
Sperren der Aufräumdienste.

Im Falle true werden alle Aufräumdienste unterdrückt.

default: false (Also Aufräumdienste sind ggf. freigegeben.)


delEmpty

public boolean delEmpty
Löschen von Dateien der Länge 0 im Zielverzeichnis.


zoneSafe

public boolean zoneSafe
Besondere Behandlung von Altersunterschieden im Aufdatdienst.

Vermeidung von Sommer-/Winterzeitproblemen bei Aufdaten über das Netz.

default: true


difOld

public int difOld
Mindestaltersunterschied für Verdrängen (Aufdatdienst) / ms.

default: 120000 (120s = 2 min)


noMd

public boolean noMd
Kein Erzeugen noch nicht vorhandener Verzeichnisse.

default: false


noNew

public boolean noNew
Kein Erzeugen noch nicht vorhandener Dateien.


wedaClock

protected String wedaClock
Interner Merker für nutzersprachabhängiges Datum/Uhrzeit-Format.

Wert: valueLang("wedaclock", "D, d.m.Y, H:i:s")


useJMX

public boolean useJMX
JMX-Server nutzen / generieren.

Constructor Detail

FileServices

public FileServices()
Konstruktor von FileServices.

Ruft nur den zweiparametrigen Konstruktor der Elternklasse WinApp mit super(81920, -1) auf um einen 80K großen Puffer für die Protokoll-Ausgabe bzw. -Anzeige bereit zustellen.

Method Detail

setFastSilent

public void setFastSilent(boolean fastSilent)
Keine Meldungen bei häufigen Aufdatdiensten ("Schnelldiensten").

Im Falle true werden die Meldungen der Schnelldienste unterdrückt.


setAtHour

public void setAtHour(CharSequence atHour)
Die Stunde für Aufdatdienste setzen.

Ein Wert zwischen "0" und "23" bewirkt, dass atHour entsprechend gesetzt wird. Eine führende 0 ist bei "00" bis "09" erlaubt. Ggf. führendes und nachlaufendes whitespace wird ignoriert.

Null oder leer (ohne umfassende white spaces) ändert den bisherigen Wert von atHour nicht, alles übrige (d.h. alles außerhalb von 0 bzw. 00 bis 23 setzt atHour auf -1.


setAtMinute

public void setAtMinute(CharSequence atMinute)
Die Minute für Aufdatdienste setzen.

Ein Wert zwischen "0" und "59" bewirkt, dass atMinute entsprechend gesetzt wird. Eine führende 0 ist bei "00" bis "09" erlaubt. Ggf. führendes und nachlaufendes whitespace wird ignoriert.

Null oder leer (ohne umfassende white spaces) ändert den bisherigen Wert von atMinute nicht, alles übrige (d.h. alles außerhalb von 0 bzw. 00 bis 59 setzt atMinute auf -1.


isNnoClean

public final boolean isNnoClean()
Sperren der Aufräumdienste.

Im Falle true werden alle Aufräumdienste unterdrückt.

default: false (Also Aufräumdienste sind ggf. freigegeben.)


setNoClean

public void setNoClean(boolean noClean)
Sperren der Aufräumdienste An / Aus.

Im Falle true werden alle Aufräumdienste unterdrückt.


main

public static void main(String[] args)
Startmethode von FileServices.

Return-Code:
  Exit =0, wenn erfolgreich gelaufen,
  Exit >0 bei Fehlern,
  Exit 99 bei falschen Parametern.

Parameters:
args - Kommandozeilen-Parameter

performeAction

public boolean performeAction(String command,
                              AWTEvent e)
Ausführung der Reaktion auf eine Aktion (i.A. eines Menus).

Diese Methode ruft zunächst die geerbte Implementierung auf. Über die dort verwirklichten Kommandos hinaus reagiert sie auf die Kommandos:
In denen Fällen einer möglichen Reaktion wird true zurückgeliefert, ansonsten false.

Overrides:
performeAction in class WinApp
Parameters:
command - Das "action command"
e - ggf. ein ActionEvent oder ein ItemEvent

showServices

public boolean showServices(StringBuilder oPw)
Anzeigen der Dienste (mit Rekursionskontrolle).

Es werden alle Dienste auf oPw gelistet und true zurückgegeben.

Wird eine rekursive Kopie in ein eigenes Unterverzeichnisse entdeckt, wird die Auflistung mit false abgebrochen.


initWinApp

public int initWinApp()
(Zusätzliche) Initialisierungen vor dem sichtbar Machen.

Overrides:
initWinApp in class WinApp

doIt

public int doIt()
Arbeitsmethode von FileServices.

Implementierung des Aufdat-Dienstes.

Overrides:
doIt in class WinApp
Returns:
0
See Also:
WinApp.WinApp(), App.JOB_DONE_OK

clientOrder

public String clientOrder(String command)
Kommando von einem Klient an dieses FileServices-Objekt.

Siehe die Beschreibung von clientOrder() in App.

Diese Implementierung kennt die Kommandos: ?, help, appHelp, log.., prop.., about, service..,, stop, fastServiceNow, allServiceNow

Overrides:
clientOrder in class App

getStateString

public String getStateString()
Status dieses JMBW-Objekts als Text .

Overrides:
getStateString in class App

setAttribute

protected int setAttribute(String name,
                           char name0,
                           Object value,
                           Class<?> vClass,
                           boolean isNull,
                           boolean isStringVal)
DynamicMBean - indirekte Implementierung.

Diese Implementierung verwirklicht über die von App.setAttribute(name, value) verwirklichten hinaus alle schreibenden Zugriffe auf folgende Attribute: fastSilent, doClean (als !noclean), delEmpty .

Overrides:
setAttribute in class App
Parameters:
name - name of the property (never empty)
name0 - first character of name (>= a)
value - the (new) value of the property
vClass - the (original) class of value (or null if isNull)
isNull - true if value is null
isStringVal - true if value is of type String
See Also:
App.setAttribute(String, Object),

getAttribute

public Object getAttribute(String attName)
                    throws AttributeNotFoundException,
                           MBeanException,
                           ReflectionException
DynamicMBean - Implementierung.

Diese Implementierung verwirklicht über die von App.getAttribute(attName) verwirklichten hinaus alle lesenden Zugriffe auf folgende Attribute: fastSilent, doClean (als !noclean), delEmpty .

Specified by:
getAttribute in interface DynamicMBean
Overrides:
getAttribute in class App
Throws:
AttributeNotFoundException
MBeanException
ReflectionException

invoke

public Object invoke(String operationName,
                     Object[] params,
                     String[] signature)
              throws MBeanException,
                     ReflectionException
DynamicMBean - Implementierung.

Diese Implementierung verwirklicht über die in WinApp bzw. App.invoke() geerbten Operationen:

Specified by:
invoke in interface DynamicMBean
Overrides:
invoke in class App
Throws:
MBeanException
ReflectionException