com.hlcl.rql.as
Class CmsClient

java.lang.Object
  extended by com.hlcl.rql.as.CmsClient

public class CmsClient
extends java.lang.Object

Die Klasse beschreibt einen Client zum RedDot Content Management Server.

Author:
LEJAFR

Constructor Summary
CmsClient(PasswordAuthentication passwordAuthentication)
          Erzeugt einen CmsServer, indem ein neuer User am CMS angemeldet wird.
CmsClient(PasswordAuthentication passwordAuthentication, java.net.URL cmsServerConnectionUrl)
          Erzeugt einen CmsServer, indem ein neuer User am CMS angemeldet wird.
CmsClient(java.lang.String logonGuid)
          Erzeugt einen CmsClient für die gegebene logonGuid.
CmsClient(java.lang.String logonGuid, java.lang.String connectedUserGuid)
          Erzeugt einen CmsClient für die gegebene logonGuid.\n Gleichzeitig wird der angemeldete Benutzer initialisiert.
CmsClient(java.lang.String logonGuid, java.net.URL cmsServerConnectionUrl)
          Erzeugt einen CmsClient für die gegebene logonGuid und die gegebene URL zur CMS Server hlclRemoteRQL.asp.
 
Method Summary
 RQLNode callCms(java.lang.String rqlRequest)
          Sendet einen RQL request an das CMS und gibt die geparste Antwort zurück.
 java.lang.String callCmsWithoutParsing(java.lang.String rqlRequest)
          Sendet einen RQL request an das CMS und gibt die ungeparste Antwort zurück.
 Project changeCurrentProjectByGuid(java.lang.String projectGuid)
          Wechselt das aktuelle Projekt.
 Project changeCurrentProjectByName(java.lang.String projectName)
          Wechselt das aktuelle Projekt.
 void closeLdapContext()
          Schließt den angeforderten LDAP directory service context wieder.
 java.util.List<java.lang.String> collectUserMailAddressesForProjects(java.lang.String sessionKey, java.lang.String[] projectGuids)
          Liefert alle Mailadressen aller User zurück, die für die gegebenen Projekte zugelassen sind.
 void disconnect()
          Meldet diesen Client vom CMS ab.
 java.util.List<Plugin> enablePluginsByNameContains(java.lang.String namePart, boolean ignoreCase)
          Setzt alle Plugins, die namePart im Namen haben, auf active=true.
 void enterOutage(java.lang.String outageMessage, boolean isTest)
          Sperrt alle Projekte dieses Servers und meldet alle aktiven Benutzer (außer dem, der das Script gestartet hat) ab.
 void exitOutage(boolean isTest)
          Entsperrt alle Projekt dieses CMSServers.
 java.util.List<User> getAllActiveUsers()
          Liefert alle gerade am CMS angemeldeten Benutzer.
 java.util.List<Plugin> getAllPlugins()
          Liefert alle auf diesem RD Server eingerichteten Plugins (aktive und inaktive) unabhängig von der Projektzuweisung.
 java.util.List<Project> getAllProjects()
          Liefert alle Projekt auf diesem CMS Server, unabhängig von den Rechten des angemeldeten Users.
 java.util.List<User> getAllUsers()
          Liefert alle User zurück, die auf diesem CMS Server konfiguriert sind.
 java.net.URL getCmsServerConnectionUrl()
          Liefert die URL zu dem CMS Server zurück, mit der sich dieser CmsClient verbindet.
 User getConnectedUser()
          Liefert den angemeldeten Benutzer, falls vorhanden.
 User getConnectedUser(Page page)
          Liefert den angemeldeten Benutzer über eine beliebige Seite des aktuellen Projektes.
 User getConnectedUser(java.lang.String sessionKey)
          Liefert den angemeldeten Benutzer für den gegebenen session key.
 Project getCurrentProject()
          Liefert das aktuell gewählte Projekt, falls vorher ein Projekt geholt wurde; sonst null.
 java.lang.String getCurrentProjectGuid()
          Liefert die GUID des aktuell gewählten Projektes, falls vorher ein Projekt geholt wurde; sonst null.
 Locale getLocaleByLcid(java.lang.String localeId)
          Liefert die Locale für die gegebene locale ID (z.b.
 java.lang.String getLogonGuid()
          Liefert die RedDot logon GUID.
 Plugin getPluginByName(java.lang.String pluginName)
          Liefert das Plugin mit dem gegebenen Namen oder null, falls keines gefunden werden kann.
 java.util.Set<Plugin> getPluginsByNamePrefix(java.lang.String pluginNamePrefix)
          Liefert alle Plugins, deren Name mit dem gegebenen Prefix beginnt oder eine leere Liste, falls keines gefunden werden kann.
 Project getProject(java.lang.String sessionKey)
          Erzeugt ein Project aus dem gegebenen sessionKey.
 Project getProject(java.lang.String sessionKey, java.lang.String projectGuid)
          Erzeugt ein Project aus dem gegebenen sessionKey und der GUID des Projektes.
 Project getProjectByGuid(java.lang.String projectGuid)
          Erzeugt ein Project aus der gegebenen GUID des Projektes.
 Project getProjectByName(java.lang.String projectName)
          Erzeugt ein Project mit dem gegebenen Namen.
 java.util.List<Project> getTestProjects()
          Liefert eine List mit Projekte für den Test.
 java.util.List<User> getTestUsers()
          Liefert ein paar User zurück, an die testweise ein mail versendet werden kann.
 User getUserByName(java.lang.String userName)
          Liefert den User mit dem gegebenen Namen zurück.
 UserInterfaceLanguage getUserInterfaceLanguageByLanguageId(java.lang.String languageId)
          Liefert die UserInterfaceLanguage für die gegebene language ID (z.B.
 UserInterfaceLanguage getUserInterfaceLanguageByRfcId(java.lang.String rfcLanguageId)
          Liefert die UserInterfaceLanguage für die gegebene RFC language ID (z.B.
 java.util.List<UserInterfaceLanguage> getUserInterfaceLanguages()
          Liefert alle UserInterfaceLanguages zurück.
 javax.naming.directory.DirContext openLdapContext()
          Liefert einen LDAP directory service context zurück.
 void sendMail(java.util.List<User> users, java.lang.String from, java.lang.String subject, java.lang.String message)
          Sendet eine Mail an alle gegebenen User.
 void sendMail(java.lang.String from, java.lang.String[] toAddresses, java.lang.String subject, java.lang.String message)
          Anbindung an den DS MailService.
static void sendMail(java.lang.String from, java.lang.String[] to, java.lang.String subject, java.lang.String msgText, java.io.File[] attachements, java.lang.String[] fileNames)
          BURMEBJ002A Diese Methode verschickt eine E-Mail mit Attachements an mehrere Empfänger.
 void sendMail(java.lang.String from, java.lang.String to, java.lang.String subject, java.lang.String message)
          Sendet eine Mail an einen Empfänger.
 void sendMailToAllUsers(java.lang.String from, java.lang.String subject, java.lang.String message, boolean isTest)
          Sendet eine Mail an alle eingerichteten User.
 void sendStatisticMail(java.lang.String statisticReceiver, java.lang.String sourceId, long start, long end, java.lang.String additionalHeader, java.lang.String additionalData)
          Sendet eine Mail mit Statistikinformationen (Dauer, Zeitpunkt...) im CSV Format an statisticReceiver.
 void wait(int seconds)
          Hält die Ausführung für die gegebenen Sekunden an.
 void wait(java.lang.String seconds)
          Hält die Ausführung für die gegebenen Sekunden an.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsClient

public CmsClient(PasswordAuthentication passwordAuthentication)
          throws RQLException
Erzeugt einen CmsServer, indem ein neuer User am CMS angemeldet wird.

Parameters:
passwordAuthentication -
Throws:
UserAlreadyLoggedInException
RQLException

CmsClient

public CmsClient(PasswordAuthentication passwordAuthentication,
                 java.net.URL cmsServerConnectionUrl)
          throws RQLException
Erzeugt einen CmsServer, indem ein neuer User am CMS angemeldet wird.

Parameters:
passwordAuthentication -
Throws:
UserAlreadyLoggedInException
RQLException

CmsClient

public CmsClient(java.lang.String logonGuid)
          throws RQLException
Erzeugt einen CmsClient für die gegebene logonGuid.

Parameters:
logonGuid - Anmelde-GUID des angemeldeten Nutzers
Throws:
RQLException

CmsClient

public CmsClient(java.lang.String logonGuid,
                 java.lang.String connectedUserGuid)
          throws RQLException
Erzeugt einen CmsClient für die gegebene logonGuid.\n Gleichzeitig wird der angemeldete Benutzer initialisiert.

Parameters:
logonGuid - Anmelde-GUID des angemeldeten Nutzers
connectedUserGuid - GUID des angemeldeten Nutzers
Throws:
RQLException

CmsClient

public CmsClient(java.lang.String logonGuid,
                 java.net.URL cmsServerConnectionUrl)
          throws RQLException
Erzeugt einen CmsClient für die gegebene logonGuid und die gegebene URL zur CMS Server hlclRemoteRQL.asp.

Parameters:
logonGuid - Anmelde-GUID des angemeldeten Nutzers
Throws:
RQLException
Method Detail

sendMail

public static void sendMail(java.lang.String from,
                            java.lang.String[] to,
                            java.lang.String subject,
                            java.lang.String msgText,
                            java.io.File[] attachements,
                            java.lang.String[] fileNames)
                     throws javax.mail.MessagingException
BURMEBJ002A Diese Methode verschickt eine E-Mail mit Attachements an mehrere Empfänger. Ein großer Teil dieser Methode wurde von der ursprünglichen Methode sendMail(String, String[], String, String, File[]) übernommen. Lediglich der letzte Parameter fileNames wurde ergänzt. Geändert durch: Name Datum: MM-JJ Beschreibung: kurze Erläuterung der Änderung

Parameters:
from - ein String mit der E-Mail-Adresse des Absenders
to - ein Array von Strings mit den E-Mail-Adressen der Empfänger
subject - ein String mit dem Subject der E-Mail
msgText - ein String mit dem Text der E-Mail
attachements - ein Array von Files, die attached werden sollen
fileNames - Ein Array mit den fileNames, die für die Attachments in der Mail vergeben werden sollen. Dabei wird folgendermaßen vorgegangen: Für das i. Attachement wird geprüft, ob der i. Eintrag des fileNames-Array von null verschieden ist. Wenn ja, wird dieser fileName verwendet, ansonsten der ursprüngliche File-Name des Attachements. (BURMEBJ002A)
Throws:
javax.mail.MessagingException, - wenn beim Versenden der E-Mail ein Fehler auftritt
javax.mail.MessagingException

callCms

public RQLNode callCms(java.lang.String rqlRequest)
                throws RQLException
Sendet einen RQL request an das CMS und gibt die geparste Antwort zurück.

Leitet den Aufruf an den RQLHelper weiter.

Parameters:
rqlRequest - String
Returns:
RQLNode
Throws:
RQLException
See Also:
RQLNode

callCmsWithoutParsing

public java.lang.String callCmsWithoutParsing(java.lang.String rqlRequest)
                                       throws RQLException
Sendet einen RQL request an das CMS und gibt die ungeparste Antwort zurück. Leitet den Aufruf an den RQLHelper weiter.

Parameters:
rqlRequest - String
Returns:
XML String
Throws:
RQLException
See Also:
RQLNode

changeCurrentProjectByGuid

public Project changeCurrentProjectByGuid(java.lang.String projectGuid)
                                   throws RQLException
Wechselt das aktuelle Projekt.

Parameters:
projectGuid - Guid des neuen Projektes
Returns:
Project
Throws:
RQLException

changeCurrentProjectByName

public Project changeCurrentProjectByName(java.lang.String projectName)
                                   throws RQLException
Wechselt das aktuelle Projekt.

Parameters:
projectName - Name des neuen Projektes, z.b. hip.hlcl.com
Returns:
Project
Throws:
RQLException

closeLdapContext

public void closeLdapContext()
                      throws RQLException
Schließt den angeforderten LDAP directory service context wieder.

Throws:
RQLException
See Also:
openLdapContext()

collectUserMailAddressesForProjects

public java.util.List<java.lang.String> collectUserMailAddressesForProjects(java.lang.String sessionKey,
                                                                            java.lang.String[] projectGuids)
                                                                     throws RQLException
Liefert alle Mailadressen aller User zurück, die für die gegebenen Projekte zugelassen sind.

Diese Abfrage kann nur ein Administrator ausführen. Wiederholungen werden durch ein Set vermieden. User ohne Mailadresse werden ausgelassen.

Parameters:
sessionKey - aktueller Session Key
projectGuids - Strings mit den GUIDs der Projekte
Throws:
RQLException

disconnect

public void disconnect()
                throws RQLException
Meldet diesen Client vom CMS ab. Danach kann dieses Object nicht mehr benutzt werden.

Throws:
RQLException

enterOutage

public void enterOutage(java.lang.String outageMessage,
                        boolean isTest)
                 throws RQLException
Sperrt alle Projekte dieses Servers und meldet alle aktiven Benutzer (außer dem, der das Script gestartet hat) ab.

Throws:
RQLException

exitOutage

public void exitOutage(boolean isTest)
                throws RQLException
Entsperrt alle Projekt dieses CMSServers.

Throws:
RQLException

getAllActiveUsers

public java.util.List<User> getAllActiveUsers()
                                       throws RQLException
Liefert alle gerade am CMS angemeldeten Benutzer.

Throws:
RQLException

getAllPlugins

public java.util.List<Plugin> getAllPlugins()
                                     throws RQLException
Liefert alle auf diesem RD Server eingerichteten Plugins (aktive und inaktive) unabhängig von der Projektzuweisung.

Throws:
RQLException

getAllProjects

public java.util.List<Project> getAllProjects()
                                       throws RQLException
Liefert alle Projekt auf diesem CMS Server, unabhängig von den Rechten des angemeldeten Users.

Throws:
RQLException

getAllUsers

public java.util.List<User> getAllUsers()
                                 throws RQLException
Liefert alle User zurück, die auf diesem CMS Server konfiguriert sind. Diese Abfrage kann nur ein Administrator ausführen.

Throws:
RQLException

getCmsServerConnectionUrl

public java.net.URL getCmsServerConnectionUrl()
                                       throws RQLException
Liefert die URL zu dem CMS Server zurück, mit der sich dieser CmsClient verbindet.

Wird er nicht im Konstruktor gesetzt, wird er per default aus rql_fw.properties gelesen.

Throws:
RQLException

getConnectedUser

public User getConnectedUser()
                      throws RQLException
Liefert den angemeldeten Benutzer, falls vorhanden.

Liegt keine User GUID vor, wird versucht diese aus dem sessionKey zu ermitteln.

Dazu muss vorher ein Projekt gewählt worden sein.

Throws:
RQLException

getConnectedUser

public User getConnectedUser(Page page)
                      throws RQLException
Liefert den angemeldeten Benutzer über eine beliebige Seite des aktuellen Projektes. Skurilerweise liefert das CMS die GUID des angemeldeten Benuter über die Seite zurück. Und die meisten Scripte beziehen sich auf eine Seite, diese ist also vorhanden. Das funktioniert auch bereits in V5.6!

Throws:
RQLException

getConnectedUser

public User getConnectedUser(java.lang.String sessionKey)
                      throws RQLException
Liefert den angemeldeten Benutzer für den gegebenen session key. Erst ab V6!.

Throws:
RQLException

getCurrentProject

public Project getCurrentProject()
Liefert das aktuell gewählte Projekt, falls vorher ein Projekt geholt wurde; sonst null.

See Also:
getProject

getCurrentProjectGuid

public java.lang.String getCurrentProjectGuid()
Liefert die GUID des aktuell gewählten Projektes, falls vorher ein Projekt geholt wurde; sonst null.

See Also:
getProject

getLocaleByLcid

public Locale getLocaleByLcid(java.lang.String localeId)
                       throws RQLException
Liefert die Locale für die gegebene locale ID (z.b. Germany = 1031) zurück.

Throws:
ElementNotFoundException - if locale cannot be found
RQLException

getLogonGuid

public java.lang.String getLogonGuid()
Liefert die RedDot logon GUID.


getPluginByName

public Plugin getPluginByName(java.lang.String pluginName)
                       throws RQLException
Liefert das Plugin mit dem gegebenen Namen oder null, falls keines gefunden werden kann.

Check with equals().

Throws:
RQLException

getPluginsByNamePrefix

public java.util.Set<Plugin> getPluginsByNamePrefix(java.lang.String pluginNamePrefix)
                                             throws RQLException
Liefert alle Plugins, deren Name mit dem gegebenen Prefix beginnt oder eine leere Liste, falls keines gefunden werden kann.

Check with startsWith().

Throws:
RQLException

getProject

public Project getProject(java.lang.String sessionKey)
                   throws RQLException
Erzeugt ein Project aus dem gegebenen sessionKey. Die GUID des Projektes wird ermittelt.

Das aktuell gewählte Projekt wird festgehalten.

Parameters:
sessionKey - aktueller Sessionkey
Returns:
Project
Throws:
RQLException

getProject

public Project getProject(java.lang.String sessionKey,
                          java.lang.String projectGuid)
                   throws RQLException
Erzeugt ein Project aus dem gegebenen sessionKey und der GUID des Projektes.

Das aktuell gewählte Projekt wird festgehalten.

Parameters:
sessionKey - aktueller Sessionkey
projectGuid - Guid des Projektes
Returns:
Project
Throws:
RQLException

getProjectByGuid

public Project getProjectByGuid(java.lang.String projectGuid)
                         throws RQLException
Erzeugt ein Project aus der gegebenen GUID des Projektes. Das aktuell gewählte Projekt wird festgehalten.

Parameters:
projectGuid - Guid des Projektes
Returns:
Project
Throws:
RQLException

getProjectByName

public Project getProjectByName(java.lang.String projectName)
                         throws RQLException
Erzeugt ein Project mit dem gegebenen Namen. Der Benutzer muss auf dieses Projekt berechtigt sind. Das aktuell gewählte Projekt wird festgehalten.

Parameters:
projectName - Name des Projektes, z.b. hip.hlcl.com
Returns:
Project
Throws:
RQLException

getTestProjects

public java.util.List<Project> getTestProjects()
Liefert eine List mit Projekte für den Test.


getTestUsers

public java.util.List<User> getTestUsers()
Liefert ein paar User zurück, an die testweise ein mail versendet werden kann.


getUserByName

public User getUserByName(java.lang.String userName)
                   throws RQLException
Liefert den User mit dem gegebenen Namen zurück.

Nur mit Administratorrechten benutzbar.

Throws:
RQLException

getUserInterfaceLanguageByLanguageId

public UserInterfaceLanguage getUserInterfaceLanguageByLanguageId(java.lang.String languageId)
                                                           throws RQLException
Liefert die UserInterfaceLanguage für die gegebene language ID (z.B. DEU, ENG) zurück.

Throws:
ElementNotFoundException - if language cannot be found
RQLException

getUserInterfaceLanguageByRfcId

public UserInterfaceLanguage getUserInterfaceLanguageByRfcId(java.lang.String rfcLanguageId)
                                                      throws RQLException
Liefert die UserInterfaceLanguage für die gegebene RFC language ID (z.B. de-de, fr-ca) zurück.

Throws:
ElementNotFoundException - if language cannot be found
RQLException

getUserInterfaceLanguages

public java.util.List<UserInterfaceLanguage> getUserInterfaceLanguages()
                                                                throws RQLException
Liefert alle UserInterfaceLanguages zurück.

Throws:
RQLException

openLdapContext

public javax.naming.directory.DirContext openLdapContext()
                                                  throws RQLException
Liefert einen LDAP directory service context zurück. Muss mit closeLdapContext() geschlossen werden.

Throws:
RQLException
See Also:
closeLdapContext()

sendMail

public void sendMail(java.util.List<User> users,
                     java.lang.String from,
                     java.lang.String subject,
                     java.lang.String message)
              throws RQLException
Sendet eine Mail an alle gegebenen User.

Throws:
RQLException

sendMail

public void sendMail(java.lang.String from,
                     java.lang.String to,
                     java.lang.String subject,
                     java.lang.String message)
              throws RQLException
Sendet eine Mail an einen Empfänger.

Throws:
RQLException

sendMail

public void sendMail(java.lang.String from,
                     java.lang.String[] toAddresses,
                     java.lang.String subject,
                     java.lang.String message)
              throws RQLException
Anbindung an den DS MailService.

Throws:
RQLException

sendMailToAllUsers

public void sendMailToAllUsers(java.lang.String from,
                               java.lang.String subject,
                               java.lang.String message,
                               boolean isTest)
                        throws RQLException
Sendet eine Mail an alle eingerichteten User.

Throws:
RQLException

sendStatisticMail

public void sendStatisticMail(java.lang.String statisticReceiver,
                              java.lang.String sourceId,
                              long start,
                              long end,
                              java.lang.String additionalHeader,
                              java.lang.String additionalData)
                       throws RQLException
Sendet eine Mail mit Statistikinformationen (Dauer, Zeitpunkt...) im CSV Format an statisticReceiver.

Parameters:
statisticReceiver - Zieladresse
sourceId - ID des Scriptes für das die Informationen sind
start - Startzeitpunkt in 1/1000 s
end - Endzeitpunkt in 1/1000s
additionalHeader - zusätzliche Headerfelder (mit ; getrennt)
additionalData - zusätzliche Datenfelder (mit ; getrennt)
Throws:
RQLException

wait

public void wait(int seconds)
          throws RQLException
Hält die Ausführung für die gegebenen Sekunden an.

Throws:
RQLException

wait

public void wait(java.lang.String seconds)
          throws RQLException
Hält die Ausführung für die gegebenen Sekunden an.

Throws:
RQLException

enablePluginsByNameContains

public java.util.List<Plugin> enablePluginsByNameContains(java.lang.String namePart,
                                                          boolean ignoreCase)
                                                   throws RQLException
Setzt alle Plugins, die namePart im Namen haben, auf active=true.

Throws:
RQLException