WURFL (Wireless Universal Resource File) added to PDA support in Sakai

Coming back form the airport – I was playing with my Treo and realized that if I *knew* I was talking to a narrow device, I could do things like place the “Log In” text more nicely.
There was a discussion on the dev list a whle back about a thing called WURFL(Wireless Universal Resource File) that gave yo all kinds of properties about mobile phones. So at 6AM on a bus, I decided to “look into” what it would take. Now about 20 hours later I have it ready to go :) It was trickier than I thought.
The biggest issue was the existing Java APIs around WURFL did a really bad job of matching user agents – particularly when a Treo 600 user agent changes on upgrades with minor versions change on the browser compatibility.
So, I pulled the source into Sakai, fixed it, added an acknowledgement, and made it work for the PDA portal. All to save a line on my Treo 600 display :)
I put in my stock dev notes that have little or no meaning.


charles-severances-computer:/tmp csev$ cvs -d:pserver:anonymous@wurfl.cvs.sourceforge.net:/cvsroot/wurfl login
Logging in to :pserver:anonymous@wurfl.cvs.sourceforge.net:2401/cvsroot/wurfl
CVS password:
charles-severances-computer:/tmp csev$
cvs -z3 -d:pserver:anonymous@wurfl.cvs.sourceforge.net:/cvsroot/wurfl co -P tools
cvs checkout: Updating tools
cvs checkout: Updating tools/asp
U tools/asp/CheckCapability.asp
U tools/asp/DeviceCapability.asp
~/dev/sakai/portal/portal-charon/charon csev$ svn commit
Sending charon/pom.xml
Sending charon/project.xml
Adding charon/src/webapp/WEB-INF/wurfl.xml
Adding charon/src/webapp/WEB-INF/wurfl_patch.xml
Transmitting file data ….
Committed revision 29429.
svn commit project.xml pom.xml src/java/net
Sending pom.xml
Sending project.xml
Adding src/java/net
Adding src/java/net/sourceforge
Adding src/java/net/sourceforge/wurfl
Adding src/java/net/sourceforge/wurfl/wurflapi
Adding src/java/net/sourceforge/wurfl/wurflapi/CapabilityMatrix.java
Adding src/java/net/sourceforge/wurfl/wurflapi/ListManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/ObjectsManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/UAManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/Wurfl.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflDevice.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflException.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflServletInit.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflSource.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflTester.java
Transmitting file data …………
Committed revision 29430.
Change the processing of the Loose matching to simply drop
numbers, spaces, and periods – so as to factor out version
changes.
Also switch to using logging rather than System.out.println.
:~/dev/sakai/portal/portal-impl/impl/src/java/net csev$ svn commit
Adding net/README.txt
Sending net/sourceforge/wurfl/wurflapi/ObjectsManager.java
Sending net/sourceforge/wurfl/wurflapi/Wurfl.java
Transmitting file data …
Committed revision 29432.
Add support for mobile portals using the WURFL libraries.
Sending portal-api/api/src/java/org/sakaiproject/portal/api/Portal.java
Sending portal-impl/impl/src/java/org/sakaiproject/portal/charon/SkinnableCharonPortal.java
Transmitting file data ..
Committed revision 29433.
Add support ot the PDA portal do emit simpler HTML when dealing with
a smaller PDA device. This uses WURFL (Wireless Universal
Resource File) with some local modifications.
See http://wurfl.sourceforge.net/ for details
Sending portal-impl/impl/src/java/org/sakaiproject/portal/charon/handlers/PDAHandler.java
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/pda.vm
Transmitting file data …
Committed revision 29434.