Daily del.icio.us for February 5th through February 7th

Daily del.icio.us for Nov 02 through Nov 23, 2007

  • InfoQ: Prototype and Script.aculo.us: spending weekends at home again – Script.aculo.us creator Thomas Fuchs gives an overview about the concepts and functionality of both Prototype and the script.aculo.us libraries, provides advice on what and what not to expect and gives pointers and hints on how to get started.
  • Enterprise Java Community: Spring Loaded Observer Pattern – This article describes an easy process of implementing the observer pattern in the Spring framework
  • The Future of Reading (A Play in Six Acts) [dive into mark] – An analysis of the Amazon Kindle only as Mark Pilgrim or maybe John Gruber can do:) Must read – very thought provoking
  • InfoQ: Article: What’s New in Spring 2.5: Part 1: Annotation-Based Configuration – The newly released Spring 2.5 features annotation-driven dependency injection, auto-detection of Spring components on the classpath using annotations rather than XML for metadata, annotation support for lifecycle methods, a new web controller model for ma
  • InfoQ: DDD: putting the model to work – This talk will outline some of the foundations of domain-driven design:How models are chosen and evaluated;How multiple models coexist;How the patterns help avoid the common pitfalls, such as overly interconnected models;How developers and domain experts
  • JavaRanch Journal – November 2007 Volume 6 Issue 2 – Spring offers a few helper classes to do some scheduling in your app. In Spring 2.0, both the JDK’s Timer objects and the OpenSymphony Quartz Scheduler are supported. Quartz is an open source job scheduling system that can be easily used with Spring.
  • What is the Google Collections Library? – Kevin Bourrillion & Jared Levy are the two primary creators of the Google Collections Library, which aims to provide an extension to the Java Collections Framework. They discuss what the library is all about, its genesis, and how it will be useful to you.
  • InfoQ: Scrum and XP from the Trenches – The tricky part to agile software development is that there is no manual telling you exactly how to do it. This book aims to give you a head start by providing a detailed down-to-earth account of how one Swedish company implemented Scrum and XP
  • InfoQ: Starting Struts 2 – Struts2 is the latest manifestation of the popular Struts Java web application framework. Like its predecessor, its goals are to make web application development faster, easier and more productive than ever before.
  • InfoQ: Homer’s Odyssey or My Life as an Agile Consultant – In this offbeat presentation from Agile2006, Jean Tabaka compares impediments and obstacles encountered by an Agile mentor with those detailed in Homer’s classic.
  • TSS Video: Christian Bauer on JBoss Seam – In this presentation, Christian Bauer discusses how JBoss Seam simplifies the handling of stateful conversations, multi-window operations and concurrent, fine-grained Ajax requests & integrates Facelets, Hibernate, jBPM, Drools, Groovy, iText and Lucene.
  • Seam 2.0 has been released – Seam 2.0 was released this week. JBoss Seam is a powerful new application framework for building next generation Web 2.0 applications by ntegrating Asynchronous JavaScript and XML (AJAX), Java Server Faces (JSF), EJB3, Java Portlets and BPM.
  • Asual | SWFAddress – Deep linking for Flash and Ajax – SWFAddress is a small, but powerful library that provides deep linking for Flash and Ajax. It’s a developer tool, allowing creation of unique virtual URLs that can point to a website section or an application state.
  • Adobe – Developer Center : Designing for Flex ? Part 5: Designing content displays – Content displays are the key element of Flex application design. Application chrome exists only to support these displays, if indeed it must exist at all.
  • Henrik Stahl’s Blog: BEA videos on YouTube – There are some short clips covering BEA technologies on YouTube. My favorite is the Predictable Java video. I wish my coffee machine was that well-behaved!
  • Hybridizing HTML – How to create Flex forms within HTML pages to easily achieve cross-browser and cross-platform functionality.
  • alphaWorks : IBM Personal Presenter : Overview – A simple, serverless means of producing and distributing rich media content consisting of video, audio, and slides from the originator’s computer to multiple clients.
  • Interface21 Team Blog » The Spring Web Flow 2.0 Vision – The goal of 2.0 is to evolve Spring Web Flow into a complete controller engine capable of handling all types of user interactions, stateless and stateful alike, with support for multiple view technologies and asynchronous event handling (Ajax) natively
  • gwt-ext – Google Code – GWT-Ext is a powerful widget library that provides rich widgets like Grid with sort, paging and filtering, Tree’s with Drag & Drop support, highly customizable ComboBoxes, Tab Panels, Menus & Toolbars, Dialogs, Forms and a lot more
  • xhtmlrenderer: The Flying Saucer Project – An XML/XHTML/CSS 2.1 Renderer – The Flying Saucer team announces Release 8pre1 of the Flying Saucer 100% Java XHTML+CSS renderer, including support for table pagination, margin boxes, running elements, named pages, and more:
  • It’s Only Software » 5 Minute Guide to Spring and JMX – I recently augmented a Spring-based project to expose some of the Spring-managed beans via JMX. Spring makes this very easy, and even if you?ve never used JMX before, this quick tutorial will let you set up your Spring beans to be viewed (and edited!) t
  • Android’s SDK Now Available – Android, Google’s mobile platform, is finally open to the developers. Now you can download the SDK and start to develop great applications in Java. Google launched a competition that offers $10 million awards for the most interesting apps
  • Microsoft Sync Framework != Google Gears (even if the press wants to make it look that way) on Dion Almaer’s Blog – saw Microsoft?s Answer to Google Gears popup in my news feed, along with Mary Jo?s piece itself: Microsoft delivers first test build of its online-offline sync platform.
  • Upgrading to Prototype 1.6: real world examples – Recently I have undertaken upgrading to Prototype 1.6.0. I will now show you some examples of what I?ve done, how I did it and why; you might find this writeup useful when doing the same in your application.

Daily del.icio.us for Sep 03, 2007 through Sep 09, 2007

  • InfoQ: Spring 2 and Beyond – Spring 2.0 takes POJO-based development to a new level of sophistication. The themes of Spring 2.0 are simplicity and power: it makes existing tasks even easier, while extending the power of Spring to new areas. In this session,
  • craiger’s .plan : A case for iBatis – iBatis on the other hand is the working man?s ORM. In fact, I think I like it because I (and probably you) have created something similar back in the day before all these formalized ORMs. It simply and elegantly maps your sql results to an object of you
  • Universal Map Implementation – I worked late this long week-end to improve the implementation of Javolution high-performance FastMap . But finally, I believe that I got it! The “Swiss Knife/Universal /Holy Grail” map for developers! But judge for yourself
  • And The Fastest Growing Web Framework Is… – As Matt Raible points out, you can significantly change the results of this graph by changing the search terms . For example “Spring” and “Struts” show that Spring is apparently leading all versions of Struts.
  • Virtual Iron goes 4.0 – Virtual Iron has been chipping away at the lower end of the virtualization market for two years now, steadily adding features in a bid to appeal to those businesses for whom VMware’s enterprise offerings are too pricey and feature-laden
  • BeauScott.com » Blog Archive » Ted Patrick?s FXWidget – Beau Scott posted his version of FXWidget that uses the AJAX Prototype framework and an AJAX call to cache the SWF file
  • Ted On Flex: FXWidget part 2 – the goal of FXWidget is to keep everything self contained and reduce adding an element of Flex on any webpage by adding a simple DIV.
  • Emerging Architect Roles – Stephan Schwab – What is exactly software architecture? Do we really need it? Why have we only recently been discussing it? Is there suddenly a contagious fever about software architecture infecting those who claim to be architects? Who are they actually:
  • WebLogic Event Server Administration with wlshell – This tutorial shows how to perform BEA WebLogic Event Server (WLEvS) administration with wlshell. WLEvS exposes management operations through a standard JMX interface, including dynamic configuration of Event Processing Language (EPL)
  • prefuse | interactive information visualization toolkit – Prefuse supports a rich set of features for data modeling, visualization, and interaction. It provides optimized data structures for tables, graphs, and trees, a host of layout and visual encoding techniques, and support for animation,

dev2dev> Managing Applications with HP OpenView

Managing Applications with HP OpenView by Grace Lin — Java Management Extensions are an ideal way to instrument applications so that they can be embedded in a managed environment, providing peace of mind to line-of-business managers. In this tutorial, Grace Lin introduces the basic ideas behind JMX, and shows how you can use JMX Metric Builder and HP OpenView to monitor applications.

java, j2ee, hp+openview, openview, jmx, weblogic, monitoring, management, mbean

WebLogic 9.0 – First look at the GA release

BEA released the latest version (v9.0) of their flagship application server, WebLogic in early August. I have been playing with the latest release of WLS to see what’s new, what’s cool and what are the features that will make me push to upgrade ASAP.

In addition to J2SE 1.5 or Java SE 5.0 support, WLS 9.0 is also fully compliant with the J2EE 1.4 Specification and is fully buzzword compliant. This release includes support for EJB 2.1, Web Services 1.1, JMS 1.1, JMX 1.2, JDBC 3.0, WS-Security, SAML 1.1, Profile 1.0, WS-Policy, WS-Reliable Messaging and WS-Addressing among others. The specification notably missing is EJB 3.0 – WLS 9.0 does not support EJB 3.0 and will support it as a service-pack, when EJB 3.0 JSR finally gets approved. This was kind of disappointing as WebLogic has always been on leading/bleeding edge in terms of specifications. I know I would have used the built-in support for the 3.0 spec, knowing full well that things may change and break with service-packs. The reality is that we won’t be pushing apps in production under 9.0 till SP1 is out and we’ve truly gone through and understood all the changes from 8.1 and their impact to our applications and processes. (More information of all the API alphabet soup is available here here).

One of the newest and biggest additions to WebLogic is the new functionality called ‘Production Deployment’ or ‘side-by-side deployment’. This new feature allows you to redeploy a new, updated version of a production application without affecting existing clients of the application that have valid sessions, and without interrupting the availability of the application to new client requests. So all the old users continue to use the old version of the application and any new users get directed to the new application. As old sessions timeout and/or users log out, the old application is retired. This also works in a clustered environment where you may have many WebLogic instances. The one thing I haven’t tested yet is whether in-memory (session) replication still works as before. The scenario I hope to test soon is where Server A and Server B participate in a cluster. User 1 comes in and logs into Server A – in-memory replication will replicate User 1’s session over to Server B. While User 1 is still active, I deploy a new version of the application to the cluster. Once the application is deployed, I kill Server A and then have User 1 attempt to use the application. Will the old version of the application still be there on Server B even though it didn’t have any users using it?

WLS 9.0 also includes a completely new administration console built on top of the WebLogic Portal framework as a set of JSP’s with Struts and Beehive. This allows you to extend the console and add your own custom admin screens. I think this is a pretty useful concept as developers can add custom JMX hooks in their applications and then surface that data via the custom admin console interface. I’ve always built custom admin-consoles for applications to turn on/off things, resources inside the applications or failover, etc. Being able to add that functionality inside the console gives you the additional authentication and authorization capabilities to your custom admin screen. WLS supports JMX 1.2 and JMX Remote API 1.0 (JSR-160) in this release, which deprecates BEA’s proprietary API for remote JMX access, MbeanHome.

One of the nicest new features is the ability to create 1 log file for 1 day. This was always a missing feature that annoyed me to no end as you could rotate logs based by time but it was always elapsed time and so you couldn’t create 1 log file for 1 day that automatically rotates to a new log file at midnight. That is now enabled and all I can say is that it’s about time.

Another great enhancement is the use of DataSources instead of connection pools by default. Instead of configuring a JDBC connection pool and then configuring a data source to point to the connection pool and binding to the JNDI tree, you configure a data source that encompasses a connection pool. Before JDBC 2.0 and the concept of DataSource, people created a connection-pool and then used the pool driver (JDBC) to get a connection. But now everything is in the context of a DataSource and so you have to create a DataSource to create the underlying connection pool and that will force people to rewrite their legacy code that gets a connection from the pool directly. It’s a good thing, as it will make their code more portable.

There are quite a lot of simple enhancements that I find useful. For example, hitting CTRL-C to interrupt a running server that you were running inside a DOS window or UNIX shell used to just kill the server. Now the start script catches the interrupt and calls the WLS shutdown hook. Another minor but useful thing is that the auto-generated start scripts have support for JPDA (Java Platform Debugger Architecture). The command line includes all the parameters needed to fire up the debug listener on port 8453 but it’s configurable at each startup script level.

I know I’ve only scratched the surface with WebLogic 9.0 in the weeks of playing. I’ll continue to blog about anything that’s interesting or cool or broken.

Links of Interest:

WebLogic, WLS, WebLogic 9, WLS 9.0, BEA, J2EE

WebLogic and JMX

I know I rarely use JMX, the Java Management Extensions (JMX) 1.0 specification that provide open and extensible management services. But there are instances when it’s a great thing to have in your tool-belt, specially dealing with applications deployed in a WebLogic cluster in a distributed environment. As users of WebLogic know, WebLogic Server has implemented JMX 1.0 and added its own set of convenience methods and other extensions to facilitate working in the WebLogic Server.

The WebLogic JMX services expose the management attributes and operations of managed resources through one or more managed beans (MBeans). An MBean is really a concrete Java class that is developed per JMX specifications that provides getters and setters for each attribute. For more information, check out the WebLogic documentation for Programming WebLogic Management Services with JMX.

My usage of JMX is fairly limited and it’s usually something simple like discovering all the names and addresses of managed servers in a cluster. For redundancy and fault tolerance, I will create caches of data at the individual server level (No, we don’t use Coherence :)) that need to be managed across the cluster. My typical pattern is to create a simple admin servlet that sits in each member of the cluster and interacts with the cache via the exposed destroy, reset, display, etc operations. Here’s a snippet of code that allows you to discover members of a WebLogic cluster:

https://gist.github.com/325451.js

More information is at dev2dev.bea.com and Programming WebLogic Management Services with JMX.