Ralf Borchers

IBM Connections Business Card erweitern

Neben den "Action Links" kann man im obe­ren Bereich der IBM Connections Business Card die Links auf die Anwendungen (z.B. Aktivitäten, Wikis, Blogs,…) erwei­tern. Wir haben das am Beispiel der Confluence-Suche nach Autoren aus­pro­biert und wol­len unsere Erkenntnisse gern hier teilen.

Cross-Origin Resource Sharing (CORS) über Apache HTTP

Was ist CORS? In der Wikipedia ließt man fol­gende Erklärung: "Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, um Webbrowsern oder auch ande­ren Webclients Cross-Origin-Requests zu ermög­li­chen.[1] Zugriffe die­ser Art sind nor­ma­ler­weise durch die Same-Origin-Policy (SOP) unter­sagt. CORS ist ein Kompromiss zuguns­ten grö­ße­rer Flexibilität im Internet unter Berücksichtigung mög­lichst hoher Sicherheitsmaßnahmen." CORS ist also eine Möglichkeit, um im Web Client über Domain-Grenzen…

IBM Connections Custom Activity Stream Templates

Bei der Entwicklung des Activity Stream Plugins zur Integration von Atlassian Confluence in IBM Connections wur­den für die Erstellung und Darstellung der Activity Stream Einträge Vorlagen ein­ge­setzt. Diese Event Title Templates sor­gen dafür, dass loka­li­sier­bare Bestandteile in den Titeln der Einträge, wie z.B. "hat kom­men­tiert", bei dem Aufruf des Activity Streams in die jewei­li­gen Anzeigesprache des Nutzers über­setzt wer­den. Hierbei…

JMeter und NTLMv2

Bisher war es nicht mög­lich, sich mit JMeter gegen eine Anwendung zu Authentifizieren, die eine NTLMv2 Authentifizierung ver­langte. So musste man z.B. bei einem Lasttest gegen einen MS Sharepoint Server auf Basic Authentication umstel­len. Seit der Version 2.5 von JMeter kommt man jedoch in den Genuss der aktu­el­len Apache Commons HttpClient Bibliothek in der Version 4.1: "The HTTP imple­men­ta­tion can…

Liferay 6.1

Für das Liferay Portal steht die Version 6.1 der Community Edition als Release Candidate auf der Downloadseite zur Verfügung. Die Version ver­spricht zahl­rei­che span­nende neue Features und Verbesserungen, die ich mir etwas näher ange­schaut habe.

Liferay – Web Content und OpenSearch

Will man eigene Inhalte in die Liferay Suche inte­grie­ren, kann man hier am Beispiel eines Bookmark Portlets die not­wen­di­gen Schritte für die Umsetzung nach­voll­zie­hen. Zusammenfassend lässt sich sagen, dass man fol­gende Schritte umset­zen muss: Implementierung einer com.liferay.portal.kernel.search.Indexer Klasse. Implementierung einer com.liferay.portal.kernel.search.OpeanSearch Klasse. (Die Suche in Liferay basiert auf ein­zel­nen OpenSearch Providern) Hinzufügen der <indexer-class> und <open-search-class> in die liferay-portlet.xml. Will man…

Liferay Performance Testing

Möchte man einen Lasttest gegen ein Liferay Portal durch­füh­ren, kommt man schnell an die Stelle, dass man eine Anmeldung am Portal durch­füh­ren muss. Aufgrund des CSRF-Schutzes von Liferay reicht es aber nicht, ein­fach einen POST Request mit den Zugangsdaten gegen das Login Portlet abzu­set­zen. Man bekommt dann fol­gende Exeption: com.liferay.portal.security.auth.PrincipalException: Invalid authen­ti­ca­tion token Nun hat man ver­schie­dene Möglichkeiten, um dem Problem…

Grails Liferay Portlets und GORM

Wie in mei­nem letz­ten Beitrag ange­kün­digt, wollte ich mich tie­fer­ge­hend mit den Möglichkeiten des Grails Portlet Plugins beschäf­ti­gen. Da die Dokumentation nicht beson­ders aus­sa­ge­kräf­tig ist, galt es zunächst her­aus­zu­fin­den, ob man nicht nur Deskriptoren und Portlet Views gene­rie­ren son­dern auch Domain-Objekte im Portlet ver­wen­den kann. Dafür habe ich zu Testzwecken ein Domainobjekt mit dem Namen Blogpost erstellt: grails create-domain-class de.communardo.liferay.grails.portlet.Blogpost Die…

Liferay Portlets mit Grails

Seit mei­nem letz­ten Grails Projekt ver­folge ich auf­merk­sam jede Neuigkeit zum Thema Groovy und Grails. Aber auch die Entwicklung von Portlets für den freien Portal Server Liferay liegt im Bereich mei­nes Interesses. Als ich dann auf  groovyblogs.org (emp­feh­lens­werte Quelle!) laß, dass ein Grails Plugin released wurde, mit dem man Portlets für Liferay erstel­len kann, war klar, dass ich das ausprobieren…

Dynamische Navigation für Webflow States in Grails

Grails ver­wen­det intern Spring MVC als Web Framework, wodurch man auch in den Genuss von Spring Webflow kommt. Die Konversationen las­sen sich Grails-üblich mit wenig Aufwand imple­men­tie­ren. Wenn man jedoch inner­halb ein­zel­ner States alle States des Webflows in einem View aus­ge­ben möchte, z.B. um den Fortschritt inner­halb des Flows zu zei­gen, fin­det man keine Hilfe in der Grails Dokumentation. Nach…

Logging per Interceptor mit Spring

Wenn man in Spring-Anwendungen zum Beispiel den Aufruf von Methoden log­gen will, aber nicht in jeder gewünsch­ten Methode eine Log-Anweisung ein­fü­gen möchte, kann man das Logging zen­tral als Aspekt defi­nie­ren. Es kön­nen damit die Methodenaufrufe aller Klassen geloggt wer­den, die als Bean durch Spring ver­wal­tet wer­den. Zu Beginn sollte die Bean für den Interceptor (advice) defi­niert wer­den. <bean id="methodLoggingInterceptor" class="MethodLoggingInterceptor"/> Danach…

JMeter: Werte aus Server Response auslesen

Im Verlauf eines JMeter Tests kann es not­wen­dig sein, dyna­mi­sche Inhalte einer Server Response (Header, Body, URL) aus­zu­le­sen und als Parameter für eine wei­ter Anfrage zu über­neh­men. Dies ist zum Beispiel erfor­der­lich, wenn inner­halb von Formlaren Werte von HIDDEN-Feldern dyna­misch gene­riert wer­den. Für die­sen Zweck ver­fügt JMeter über einen Post-Processor, der als Regular Expression Extractor bezeich­net wird. Er lässt sich…