Definition der Servlets und Filter
Der Portal Manager kann in den beiden Dateien web.xml und
pm.xml konfiguriert werden. Diese Dateien sind im Verzeichnis
WEB-INF unterhalb des Web-Applikationsverzeichnisses des Portal
Managers zu finden. In der CMS-Standardinstallation lautet der Pfad (relativ
zum CMS-Verzeichnis):
instance/default/webapps/PM/WEB-INF
In der Datei web.xml werden (wie in jeder anderen
Web-Applikation auch) die verwendeten Servlets, Servlet-Filter etc.
deklariert und deren URL-Schemata festgelegt.
Portal-Manager-Konfiguration
Die eigentliche Konfiguration des Portal Managers ist in der Datei pm.xml
zu finden. In dieser Datei sind Spring-Beans konfiguriert.
In der Standardkonfiguration sind die folgenden obligatorischen Beans enthalten:
hostConfig(com.infopark.pm.HostConfig)
Legt fest, für welche Hosts Anfragen angenommen werden und welche Sprachen unterstützt werden, siehe auch<npspm showIfLanguage>und die Portletkonfiguration in der DateiWEB-INF/portlet.xml.userManager(com.infopark.pm.user.UserManager)
Die Benutzerverwaltung des Systems, über die derAuthenticationFilterauf Benutzerdaten zugreift.portletContainer(com.infopark.pm.portlet.PortletContainer)
Verwaltet die in der DateiWEB-INF/portlet.xmldefinierten Portlets und stellt diese für dynamische Inhalte bereit.documentManager(com.infopark.pm.DocumentManager)
Liefert die Inhalte für dasContentServlet. Die mitgelieferte Implementierung greift dazu auf eine konfigurierbarecom.infopark.pm.DocumentSourcezu.permissionManager(com.infopark.pm.PermissionManager)
Liefert demPermissionFilterdie Namen der Gruppen, die auf auszuliefernde Inhalte zugreifen dürfen. DerpermissionManagerist ab Version 6.7.1 nicht mehr vorhanden, da derAuthorizationManagerseine Funktion übernommen hat.authorizationManager(com.infopark.pm.user.AuthorizationManager)
Überprüft mit Hilfe der angegebenen Methoden (com.infopark.pm.user.Authorizer), ob der Benutzer auf einen Inhalt zugreifen darf.templateEngine(com.infopark.pm.TemplateEngine)
Bereitet dynamische Inhalte so vor, dass dasContentServletdas Ergebnisdokument ausrechnen kann.contentHandlerMap(java.util.Map)
Legt fest, welche Inhalte dasContentServletwie ausliefert (statisch oder dynamisch). Je MIME-Typ kann ein Bean des Typscom.infopark.pm.doc.ContentHandlerangegeben werden. Für statische und dynamische Inhalte ist jeweils eine Implementierung verfügbar.
Eine Portlet-Web-Applikation konfigurieren
Die in einer Web-Applikation enthaltenen Portlets werden in der Datei
WEB-INF/portlet.xml konfiguriert. Die Datei hat den folgenden
Aufbau:
<?xml version="1.0" encoding="UTF-8" ?> <portlet-app version="1.0" xmlns="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet> ... </portlet> ... <custom-portlet-mode> ... </custom-portlet-mode> ... <custom-window-state> ... </custom-window-state> ... <user-attribute> ... </user-attribute> ... </portlet-app>
Die Elemente haben die folgende Bedeutung:
portletkonfiguriert ein Portletcustom-portlet-modekonfiguriert einen über den Standard hinausgehenden Portlet-Modus wieaboutoderprint.custom-window-statekonfiguriert einen über den Standard hinausgehenden Fensterstatus.user-attributedefiniert optionale Benutzereigenschaften, die den Portlets zur Verfügung gestellt werden.
Sicherheitseinschränkungen (security-constraint) werden vom Portal Manager nicht unterstützt.
Ein Portlet konfigurieren
Jedes Portlet wird durch ein portlet-Element konfiguriert. Im
folgenden Beispiel sind die wichtigsten Elemente enthalten:
... <portlet> <portlet-name>example</portlet-name> <portlet-class>com.infopark.example.Portlet</portlet-class> <init-param> <description>my init param description</description> <name>host</name> <value>127.0.0.1</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>edit</portlet-mode> </supports> <supported-locale>en</supported-locale> <supported-locale>de</supported-locale> <resource-bundle>com.infopark.example.localizer</resource-bundle> <portlet-preferences> <preference> <name>readOnlyPreference</name> <value>foo</value> <value>bar</value> <read-only>true</read-only> </preference> <preferences-validator>com.infopark.example.Validator</preferences-validator> </portlet-preferences> </portlet> ...
Die Elemente haben die folgende Bedeutung:
portlet-name: Die Bezeichnung des Portlets. Der Bezeichner muss innerhalb der Portlet-Web-Applikation eindeutig sein. Über ihn wird das Portlet eingebunden.portlet-class: Die Java-Klasse, die die Portlet-Funktionalität bereitstellt. Diese Klasse muss in einem jar-Archiv im VerzeichnisWEB-INF/liboder als kompilierte Klasse unterWEB-INF/classesenthalten sein.expiration-cache: Diese Option erlaubt dem Portal Manager, den Portletinhalt für die angegebene Anzahl von Sekunden zu cachen, d.h. in dieser Zeit nicht neu zu berechnen. Bei0wird diese Funktion deaktiviert, bei-1ist endloses Caching erlaubt (bis eine Aktion ausgeführt wird).init-param: Ein Konfigurationsparameter für dieses Portlet. Es können beliebig vieleinit-param-Elemente für ein Portlet vorhanden sein.description: Optionale Beschreibungname: Der Name des Parametersdescription: Der Wert des Parameters
supports: Konfiguriert unterstützte MIME-Typen und Portlet-Modi:mime-type: Konfiguriert einen unterstützten MIME-Typ. Je Typ wird ein Element angegeben, der MIME-Typ muss angegeben werden.portlet-mode: Weitere vom Portlet unterstützte Portlet-Modi nebenVIEWkönnen hier konfiguriert werden.
supported-locale: Eine unterstützte Sprache. Typischerweise wird hier nur ein ISO-Kürzel für eine Sprache, optional auch ein Länderkürzel nach einem Unterstrich angegeben. Ein Portlet kann eine oder meherere Sprachen unterstützen, d.h. das Element kann mehrfach angegeben werden.resource-bundle: Der Name, unter denen die Ressourcen zu finden sind (ohne die Sprache oder Endung.properties).portlet-info: Alternativ zu Ressourcen können Titel, Kurztitel und Schlüsselwörter mit diesem Element auch direkt angegeben werden. Die entsprechenden Unterlemente sind:title,short-titleundkeywords.portlet-preferences: Zu jedem Portlet können beliebig viele Voreinstellungen konfiguriert werden. Die Werte dieser Einstellungen können zur Laufzeit geändert werden, sofern die Einstellung nicht als schreibgeschützt gekennzeichnet ist. Optional kann die Überprüfung der Einstellungen mittels einer Validator-Klasse konfiguriert werden.
Die Option expiration-cache wird erst ab Version 6.5.2 unterstützt. Für
Portlets mit rechenintensiver Implementierung ist diese Option eine Möglichkeit, die
Performance des Portals zu verbessern.
Portlet-Modi und Fenster-Status
Ab Version 6.5.1 können Sie eigene, nicht in der JSR168-Spezifikation definierte Portlet-Modi
(engl. "custom modes") oder Fenster-Status (engl. "custom states")
einsetzen, indem Sie im WEB-INF-Verzeichnis der PM-Web-Applikation die
Datei portlet.xml anlegen und darin Ihre eigenen Portlet-Modi und
Fenster-Status deklarieren.
Beispiel:
... <custom-portlet-mode> <portlet-mode>preview</portlet-mode> </custom-portlet-mode> <custom-portlet-mode> <portlet-mode>urn:javax:portlet:mode:custom:about</portlet-mode> </custom-portlet-mode> <custom-window-state> <window-state>solo</window-state> </custom-window-state> ...