My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Links

NOTE that all this moved to and is maintained at http://github.com/razie

Bunch of low-level code i wish i didn't have to write...others may find some useful embedded light http server, annotation-based light soa etc.

STATUS: concept - changes a lot and often ;)

For details on the stuff I use this library for, see my wiki: http://razie.wikidot.com/mutant and http://wiki.homecloud.ca

You can find a working demo in the downloads to the right of this page.

How to use

There are a bunch of projects here, under svn/trunk/. Checkout these as eclipse projects with their respective names, i.e. "razbase". Use the SVN plugin in eclipse to checkout the project and then you can simply run the SuitePub.java and/or follow it to see what other samples you can find/run.

See SVN repository setup on the "source" tab.

Project structure:

Elsewhere:

Here:
  • razweb - web stuff, all socket server, SOA, etc
  • scripster - interactive access to the scala REPL, via telnet, http, swing
  • razpub - base public code, needed on all other projects
  • razpubs - scala base public code, needed on all other projects
  • razupnp - some needed hacks of the upnp library

Eclipse setup:

  • install the scala 2.8 plugin and the svn plugin
  • download a 2.8 scala distribution someplace, i.e. bin/scala - will need the complier.jar
  • download a 2.8-compatible scalatest distribution someplace - will need the library

Check out as projcets in an eclipse workspace. Switch the JDK to 1.6_14. Create two User Libraries (Window/Preferences/Java/Build Path/User Libraries):

  • scalatest - containing the scalatest-0.9.5.jar file or whichever is latest. Make sure you have the version that's compiled for scala 2.8
  • scalacompiler - with scala-compiler.jar (from the scala 2.8 installation)

Note that some projects are scala projects and combine java and scala code. You'll obviously need the scala plugin for eclipse.

Also, you need to checkout this project: http://razie.googlecode.com - sorry for the mess, I'm hoping it's temporary...

Build with ant

  • checkout the sources in a workspace folder, be it ~/w.
  • make sure JAVA_HOME, SCALA_HOME and ant are setup properly
    • JAVA_HOME should point to a full JDK not just the JRE, obviously
  • edit ~/w/razie/razie.properties and modify the proper folders
  • each project has its own build.xml with the targets "clean" and "build"
  • see http://homecloud.googlecode.com for instructions on building the entire executable

Dependencies

All required libraries are in the ./lib folder.

This project requires the projects from http://razie.googlecode.com and http://20widgets.googlecode.com

Components

Http server

Simple embeddable socket/http/sip server implementation. It is not a complete web server implementation, but serves most purposes. It is easy to extend/use - just start it up and mount "listeners".

You can use it as a plain socket server (i.e. ftp or something) OR, just mount the LightCmdGET and it becomes an http server with SOA support. OR extend it to handle sip requests...

Features:

  • bind java code to URL
  • parse URL into map of values and viceversa
  • handles multithreaded request processing
  • handles simple authentication/authorization
  • default implementation can serve files from disk and/or classpath (keep application compact by including icons into jar file)

See more details at http://code.google.com/p/razpub/source/browse/trunk/razpub/src/com/razie/pub/http/package-info.java

Light SOA

Idea is to write a "service" with methods, in Java and bind it to different protocols, for now http and upnp are suported.

See more details at http://code.google.com/p/razpub/source/browse/trunk/razpub/src/com/razie/pub/lightsoa/package-info.java

Drawing and streaming

I know there's so many presentation frameworks and platforms out there - it's just that I didn't find one that makes me happy.

The question of platform, language and framework independent drawing keeps bugging me. Here's an attempt at abstracting a set of objects frequently used in drawing (list, table, icon, button etc) with a twist: since response time to the user is paramount, streaming partial results is important. Of course, model/view separation, serialization into different presentation protocols and all that complicates things...

See what came out at http://code.google.com/p/razpub/source/browse/trunk/razpub/src/com/razie/pub/draw/package-info.java

Powered by Google Project Hosting