04 March 2008

Quick Summary of WebLogic Workshop 10.2

Here is a summary of the "What's new" page when you launch Workshop 10.2 (which is now called Workspace Studio 1.1):

  • Eclipse Bundling: Workshop 10.2 is Eclipse 3.2.2 with WTP 1.5.4 including Spring IDE 1.3.6
  • Performance Release: 10.2 fixes many performance issues! We'll see! ....
  • Tuxedo Control: There is a new control to interact with Tuxedo Services
  • Adobe Flex Builder 2 and Flex Charting

    and since Workshop 10.1:

  • All functionalities of Workshop Studio have merged into Workshop:
    Struts, Beehive, JSF 1.1 Support
    Strong support for Web Service Creation
    DbXplorer (simple db client)
    DbXaminer (given a connection, it renders DB data model)
    ORM mapping support for Kodo and Hibernate
    Automatic generation of Spring configuration files and DAO classes
    Improved PageFlow support (WYSIWYG JSP editing and more netui support)
    Support for Maven based builds

As I will work with Workshop 10.2 from now on, I'll post my learning soon here.

cheers

WebLogic Portal WLP 10.2 out now!

Today I was able to download the new portal release.
First impressions will follow soon.

DOWNLOAD IT

20 February 2008

BEA WLP 10.2 - A quick overview on Flatirons

BEA officially announced to release WLP 10.2, codename Flatirons, by end of February 2008.
Josh Lannin (Lead Product Manager WebLogic Portal) has just posted a new video (9 min) about the features.






Have a look at it or read my super quick summary:

  • WSRP via REST (not only WS) for Portlet Instances, not only Portlet Definitions
  • Web Clipping Portlet (high quality screen scraping)
  • Portlet Publishing URL: any portlet can be consumed by any other presentation platform (static website, other web app, other portal).
    Question on my side to be clarified: What about security?
  • Content Management: Bulk Actions for content editors (process multiple items)
  • Content Presenter Portlet: Easily display list of items of specific content types
  • RSS Feeds for content items in VCR out of the box
  • Sharepoint 2007 Integration via SPI VCR (still not JSR-170 !)
  • DVT (Dynamic Visitor Tools): Most of user customizations are "in-page" by drag'n'drop actions. DVT is based on the newly introduced DISC technology (see below)
  • DVT also features browsing the portlet catalog including preview.
  • DVT also allows users to reset the default configuration of the customized portlets.
  • DISC (Dynamic Interface Scripting):
    Provides public java script based API for interaction with WLP rendering framework.
    Technology behind it is BEA's Ajax Framework Bundle called "Adrenaline" which itself is based on the Dojo Toolkit and JSON.
  • Developers have a very convenient way of
  • WebLogic Workshop 10.2: Workshop Studio has gone! All tools are now for free!
  • REST on top of API: BEA started by exposing some portal framework APIs as REST services. As far as I know, the full APIs of PageView, BookView and DesktopView is available via REST out of the box!
  • Google Gadgets can directly be consumed via PAT (Portal Admin Tool)
Supported Standards:
  • JSF 1.1 and 1.2
  • Struts 1.1 and 1.2
  • Beehive 1.0.1
  • JSR-170 Level 1 and 2 excluding optional features
  • JSP 2.0
  • JSTL 1.1 and 1.2

An outlook on the non-confirmed features of the next portal release (codename Sunshine):
  • Portal CMS API exposed as REST services (content, search)
  • More Sharepoint Integration Features
  • WSRP 2.0 Runtime Functions
  • JSR 286 Support (Portlet 2.0): Inter Portlet Communication (IPC)
  • Java SE 6 Support


17 January 2008

BEA becomes Oracle

I'm not to repeat what you can read on the net since yesterday 3pm CET.
The best post I've read so far is by Rod Johnson.

My only hope is that Oracle picks the right products from BEA and that Oracle does not stop the innovation that BEA has shown in the last years.

Happy New Year!

30 November 2007

Product Axis for WebLogic

The following list shows the different WebLogic Versions and the products that are released with it.

Workshop Studio 3.3 (needs extra license)

  • WebLogic Server 8.1
  • WebLogic Server 9.x

WebLogic Platform 9.2

  • WebLogic Server 9.2
  • WebLogic Portal 9.2 (Codename Adrenaline)
  • WebLogic Integration 9.2
  • Workshop for WebLogic 9.2

WebLogic Portal 10.0

  • Workshop for WebLogic 10.0
  • WebLogic Server 10.0

Workshop for WebLogic 10.1

  • WebLogic Server 9.2 (supports it but not bundled)
  • WebLogic Server 10.0
  • This Workshop release has included the features of Workshop Studio for free!

WebLogic Platform 10.2 (Feb 29th 2008)

  • Workshop for WebLogic 10.2
  • WebLogic Integration 10.2
  • WebLogic Portal 10.2 (Codename Flatirons, next portal's codename will be Sunshine)
  • WebLogic Server 10 MP1

WebLogic Server 10.3

  • WebLogic Server 10.3 (Codename Essex)
  • Workshop for WebLogic 10.3

14 November 2007

Best Practices: WLP10.0: Read Portlet Preferences

The Background

This post addresses the following portal setup:

  • WebLogic Portal 10.0
  • Portal is used in streaming mode (virtual portals, desktops, book/page/portlet instances
The requirements I had to fulfill were the following:
  • From anywhere in the whole portal, the business logic had to be able to read portlet preferences from any portlet instance (even from desktops different than the current desktop)

The Problem
I thought the implementation would be easy by using the PresentationContext API:
PortletPresentationContext px = PortletPresentationContext.getPortletPresentationContext(request);

this worked fine as long as the portlet I was reading the preferences from belongs to the desktop the current request belongs to.
In case the portlet instances was belonging to another desktop, that did not work.

The Workarounds
There are no workaronds...

The Solution
... but a solution! The following code shows
  • How you can get all the preferences of any portlet (getPortletPreferences())
  • How you should retrieve an EJB Home interface

/**
* @return null if portlet has no preferences or if portlet can not be retrieved. otherwise each key represents a preference, the value is Preference through which you retrieve the name, value or anything else from the preference.
*/
public static final Map getPortletPreferences(HttpServletRequest request, PortletView portletView) {
request = getRealRequest(request);
Map map = null;
try {
// init
CustomizationContext customizationContext = new CustomizationContext(Locale.ENGLISH);
getPortalCustomizationManager();
getPreferencePersistenceManager();

// read preferences
PortletInstance preferencesPortletInstance = portletView.getPortletInstance();
PortletPreferencesId portletPreferencesId = new PortletPreferencesId(preferencesPortletInstance.getPortletInstanceId().getId());
map = preferencePersistenceManager.getPreferences(customizationContext, portletPreferencesId);

if (map != null && map.isEmpty()) {
map = null;
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}

private static PortalCustomizationManager getPortalCustomizationManager() {
if (portalCustomizationManager == null) {
try {
PortalCustomizationManagerHome portalCustomizationManagerHome =
(PortalCustomizationManagerHome)getHome(new InitialContext(),PortalCustomizationManagerHome.LOOKUP_NAME);
portalCustomizationManager = portalCustomizationManagerHome.create();
} catch (Exception e) {
e.printStackTrace();
}
}
return portalCustomizationManager;
}

private static PreferencePersistenceManager getPreferencePersistenceManager() {
if (preferencePersistenceManager == null) {
try {
PreferencePersistenceManagerHome preferencePersistenceManagerHome =
(PreferencePersistenceManagerHome)getHome(new InitialContext(),PreferencePersistenceManagerHome.LOOKUP_NAME);
preferencePersistenceManager = preferencePersistenceManagerHome.create();
} catch (Exception e) {
e.printStackTrace();
}
}
return preferencePersistenceManager;
}

private static Object getHome(InitialContext context, String jndiName) throws NamingException
{
String fullJndiName = ApplicationHelper.getNonVersionedAppName()+ "." + jndiName;
Object obj = context.lookup(fullJndiName);
return obj;
}

/**
* @param request
* @return returns the original Request Object, not the wrapped pageflow request object.
*/
public static HttpServletRequest getRealRequest(HttpServletRequest request) {
if (request instanceof ScopedRequest) {
request = ((ScopedRequest)request).getOuterRequest();
}
return request;
}




Your Feedback
I also posted this in the official portal forum, so feedback is welcome at both places! Thanks.
http://forums.bea.com/thread.jspa?threadID=300003850

13 September 2007

BEA WebLogic Portal 10 : Hands-On Experience

dear readers,
in my current portal 10 project I collected lots of infos regarding the new features, some challenges with Workshop10 as well as the cluster setup of a portal 10 domain.

as the whole project makes me fully busy, I will write a post-project smackdown of what I have learnt, and I can promise that the summary is going to be interesting as there is no info on the web at this moment on these topics ;-)

so stay tuned.

cheers
Balz

05 April 2007

Puma

Current version of ALSB is 2.6.
BEA's next release of ALSB with codename PUMA is following the general direction of AquaLogic products:

  • Make integration of BEA products easier
If have no idea how far BEA is regarding their microServiceArchitecture vision, but this is certainly an important step in parallel:
  • Puma will make use of the just announced Custom Transport SDK provided by the ALSB team. This is an implementation of a custom transport layer allowing ALBPM to talk directly with ALSB. One of the main reasons to bring this up was the demand on further improving performance.
Below is a pre-release screen shot of the ALBPM custom transport already working, deployed, inside ALSB:

ALBPM_CustomTransport.jpg

PUMA will bring additional cool features to improve the ALBPM-ALSB integration. Features such as: automatic publication and subscription of services, better authentication support via WS-Security, etc.

WebLogic Server 10 Summary

  • JavaEE5 certified
  • Operations News:
    weblogic.jar split up:
    • Include not only weblogic.jar but also WL_HOME/modules/weblogic.server.modules_10.0.0.0.jar directly in the classpath
    • The java weblogic.version command has a new -verbose optional argument that returns version information about numerous WebLogic Server components.
    • As a consequence of the weblogic.jarreorganization, your existing J2SE security policies may need to be modified to control access to the new separate modules. The default J2SE security policy in WebLogic Server has been modified to grant access to the new modules.
  • EAR libs:
    • APP-INF/lib and/or
    • library-directory defined in deployment descriptor of EAR file
    • library-directory has priority over others
  • MySQL 5.0 Support
  • WebLogic Diagnostic Framework
  • EJB3 + EJB2.1 support
  • JAX-WS 2.0: Java API for XML-Based Web Services
  • JAXB 2.0: Java Architecture for XML Binding
  • Web Services for Java EE 1.2
  • SAAJ 1.3: SOAP With Attachments API For Java
  • WS-SecureConversations 1.3
  • WS-Security 1.1
  • WS-SecurityPolicy 1.2
  • WS-Trust 1.3
  • new set of security policy files that comply with WS-SecurityPolicy 1.2
  • JAX-RPC: support MTOM (Message Transmission Optimization Mechanism) and XOP (XML-binary Optimized Packaging)
  • Filtering Classloader: specify packages to be loaded from the application specific lib folder (WEB-INF/lib) rather than system classpath.
  • Servlet 2.5
  • JSF 1.2
  • JSTL 1.2
  • JSP 2.1
  • Cross-Domain Security
  • Windows NT Authorization Provider Deprecated
  • Admin Console: record actions and store them as WLST scripts
  • Admin Console extensions must be packaged as a WAR file
  • JMX implementation supports the jmx.remote.x.request.waiting.timeout environment parameter (optional in JMX Remote API 1.0)

Full List of standards supported

Java Standards Support

Standard Version
Java EE 5.0
JDKs 5.0 (aka 1.5), 1.4 (clients only)
Java EE Enterprise Web Services 1.2, 1.1
Web Services Metadata for the Java Platform 2.0, 1.1
Java API for XML-Based Web Services (JAX-WS) 2.0
Java EE EJB 3.0, 2.1, 2.0, and 1.1
Java EE JMS 1.1, 1.0.2b
Java EE JDBC (with third-party drivers) 2.0
MS SQL jDriver 1.0
Oracle OCI jDriver 1.0 and some 2.0 features (batching)
Java EE JNDI 1.2
OTS/JTA 1.2 and 1.1
Java EE Servlet 2.5, 2.4, 2.3, and 2.2
Java EE Application Deployment 1.2
Java Authorization Contract for Containers (JACC) 1.1
Java EE JSP 2.1, 2.0, 1.2, and 1.1
RMI/IIOP 1.0
JMX 1.2, 1.0
JavaMail 1.2
JAAS 1.0 Full
Java EE CA 1.5, 1.0
JCE 1.4
Java RMI 1.0
JAX-B 2.0
JAX-P 1.2, 1.1
JAX-RPC 1.1, 1.0
JAX-R 1.0
SOAP Attachments for Java (SAAJ) 1.3, 1.2
Streaming API for XML (StAX) 1.0

Web Services Standards Support

Standard Version
Java EE Enterprise Web Services 1.2, 1.1
Web Services Metadata for the Java Platform (JWS) 2.0, 1.0
Java API for XML-Based Web Services (JAX-WS) 2.0
SOAP 1.1, 1.2
WSDL 1.1
JAX-RPC 1.1
SOAP Attachments for Java (SAAJ) 1.3, 1.2
WS-Security 1.1, 1.0
WS-Policy 1.0
WS-SecurityPolicy 1.2, 1.1
WS-PolicyAttachment 1.0
WS-Addressing 1.0
WS-ReliableMessaging 1.0
WS-Trust 1.0
WS-SecureConversation 1.3, 1.0
UDDI 2.0
JAX-R 1.0
JAX-B 2.0

Other Standards

Standard Version
SSL v3
X.509 v3
Security Assertion Markup Language (SAML) 1.0, 1.1
LDAP v3
TLS v1
HTTP 1.1
SNMP SNMPv1, SNMPv2, SNMPv3
xTensible Access Control Markup Language (XACML) 2.0
Partial implementation of Core and Hierarchical Role Based Access Control (RBAC) Profile of XACML 2.0