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