Used to DJ internet radio stations like IceCast.
Currently only provides an implementation to IceCast formatted playlists,
which are plain text files listing the absolute pathname of each file on
seperate lines.
Loads all mp3 and ogg files found within all subdirectories of those directories
listed with the java system property org.wever.jradiodj.musicLocations
After choosing a selection of music, the playlist is rewritten containing the new
songs. The playlist file is specified by the system property org.wever.jradiodj.playlist.file
The primary interface is located at "/xml/Selection". This provides only xml output, making
JRadioDj primarily a webservice.
This xml interface uses only POJOs for its view components. Each 'screen bean' has a corresponding POJO to hold all and any
information to be displayed. Each screen bean provides the methods toXMLDocument(), toXMLString(),
and toXMLSoapElement() to provide the webservice displays.
This makes the view very simple to build. The servlets/actions (controlling components) don't have mess around with
loading attributes into the request under different request attribute constants.
Rather all work is centred around set the appropriate properties to the beans.
This design provides easy url to bean caching to dramatically improve performance, it
also removes all dependency of any particular api from the view level, allowing the beans to be used by any view
implementation, including a swing based thick client.
Layed ontop of this is a browser interface, located at "/html/Selection".
Currently the xml to html transformation is just simple xslt.
Plans are to use JSF to generate nice webpages (graphically using Sun Studio Creator),
making it easier to hand the UI design work onto a grahic designer that needs no
knowledge of java programming. This is being done under the JRadioDjFaces project...
Opensource libraries JAudioTagger and J-Ogg are used to read header comments, to
determine artist, albums, title, and genre information, for mp3 and ogg files
respectively.
Provides:
- handles both mp3 and ogg songs,
- progress indicator when requests are made while the songs are still being loaded,
- pluggable implementations for different playlist formats, default IceCast,
- both webservice and html interfaces,
Design Features:
- Uses jdk-1.5 features: generics, enhanced for-loops, java.util.concurrent.locks
- uses POJOs for as view components instead of jsp / velocity / ognl,
- Clean MVC seperation, including a further seperation of the view between xml and html to provide html layered ontop of webservicing.
- Web framework independant,
- maven built,
Still under work:
- Elaborate the xml interface with webservice definitions, ie .wsdl files,
- Web framework... There's is currently no need for a framework, but it is always under consideration. I would like to take the jsf layered ontop of webservice concept a little further first and then see which framework best adapts to this.