Loading Twitter updates Loading...
Follow me on Twitter
20030224 Monday February 24, 2003

Control OS X with your T68i The Sony Ericsson Clicker - Clicker lets you remotely control your Macintosh from a compatible Sony Ericsson phone. Further, Sony Ericsson Clicker has a built in "proximity sensor", allowing you to trigger actions when you leave or come back to your Mac. Downloading now...

After trying it: That is a cool fricken app! On the T68i, the controls are at Connect -> Accessories -> Macintosh. Posted in Mac OS X at Feb 24 2003, 10:22:51 PM MST Add a Comment

XDoclet now supports Hibernate 2.0 (almost) I finished patching XDoclet to allow for Hibernate 2.0 support. I say almost in this post's title because someone still has to commit it. Seems to work pretty good on struts-resume. I can't get one of my unit tests (UserManagerTest) to run, so I won't be releasing tonight (though I was hoping to). Maybe tomorrow. Here's a rough draft of features and plans in the coming 0.6:

Features in 0.6
===============
- Upgraded to Hibernate 2.0 (http://tinyurl.com/6b00) and 
  Struts 1.1RC1 (http://tinyurl.com/6cp9).
- Fixed Validation issues when attempting cancel validation and using
  LookupDispatchAction (document in Struts 1.1RC1 link above).
- Moved opening Hibernate sessions from being at a method level to being passed
  in to each method on the business/persistence tier.  Sessions are now obtained
  via the ActionFilter.getSession() method.
- Added SMTPAppender to log4.properties to e-mail errors that occur in log 
  files.
- Added "Remember Me" feature - for details see http://tinyurl.com/6du0.
- Added "Current User" count as a demonstration of a Tiles Controller.

// TODO for 0.7 
- Add Skills, SkillGroups, Education, Experience to the mix.  Make them 
  all editable when editing a resume using the Struts Nested Tag Library.
- Figure out a way to display resumes to anonymous users.  Do I create XML 
  versions of a resume in "resources/${username}" or use a servlet that maps
  to something like /struts-resume/view/${username}.  I like the servlet 
  idea better, then it's dynamic.  However, how often does a resume really
  change.
- Complete tests for all Action classes using StrutsTestCase.
- When Tomcat 5 become stable, or I figure out how to install an app on Resin 3,
  figure out a way (using Ant) to create JSP 2.0-compliant distribution.
  
// TODO for 0.8
- Add Transformers and XSL for transforming an XHTML document to XML or Text.  
  PDF will be covered in a later release.
- Allow a way for users to register (similar to Roller).
- Create User Administration interface with sortable/pageable list of users.
- Complete tests for all JSPs using Canoo WebTest.

Posted in Java at Feb 24 2003, 10:07:04 PM MST

Introducing xdoclet.org The XDoclet team was doing some musing yesterday over who purchased xdoclet.org. I guess someone was listening (and wanted to help), because it was pointing a company yesterday and now it's pointing to XDoclet's homepage. Very cool. Is hibernate.org next?

Soon after: According to an e-mail on the list, xdoclet.net and xdoclet.com should be working too. Posted in Java at Feb 24 2003, 03:38:19 PM MST Add a Comment

Struts Update: 1.1 beta 3 to 1.1 RC1 While upgrading Hibernate last night and this morning, I also upgraded Struts. Now I'm having some issues there, so I'd better document those too. First of all, the following line doesn't seem to be rendering any client-side JavaScript anymore:

<html:javascript formName="resumeForm"
      dynamicJavascript="true" staticJavascript="false"/>

Update 1: Nevermind, it seems my Internet connection went dow while starting Tomcat. Since the Digester couldn't validate the Struts' XML configuration files with their respective DTDs, it stopped them from loading.

Update 2: This turned out to be a legitimate issue. Adding cdata="false" to the above tag enabled the browser to see the JavaScript by removing the "<![CDATA[" after <script type="text/javascript">

Revisiting the Hibernate upgrade, I needed to add dom4j.jar to WEB-INF/lib to solve java.lang.NoClassDefFoundError: org/dom4j/Node.

Now I'm getting:

java.lang.NoClassDefFoundError
	at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:571)

What the @#$*%#? hibernate2.jar is in WEB-INF/lib??

Update 3: I had to add cglib.jar to WEB-INF/lib as well. Now back to an issue I'm having with the Validator where client-side validation is working when I click "cancel" (as in, it's disable), but server-side is kicks in. Argghhhh!

Update 4: I found an issue (via the struts-user list) about using the Validator with LookupDispatchAction. It basically doesn't allow you to control validation on a method level, so I've hacked the following workaround.

I changed <html:cancel> to be <html:button> and added onclick="cancel()", where cancel() is the following JavaScript method:

<script type="text/javascript">
function cancel() {
    location.href = '<html:rewrite forward="cancelUser"/>';
}
</script>

The "cancelUser" forward points to "/editUser.do?action=Cancel", which is an action-mapping that doesn't have validation (validation="false") and this hits the "cancel" method on UserAction and routes appropriately.

Phew - I'm beat. I never realized being an upgrade-happy-keyboard-monkey could be so much work! Posted in Java at Feb 24 2003, 11:10:46 AM MST 4 Comments