English
Tag it:
Delicious
Furl it!
Spurl
NewsVine
Reddit
YahooMyWeb
Technorati
Digg
Mister.Wong

Developer quick start


Preface


So, you want to venture into the realm of openthinclient development? Welcome! Great to have you here. But before we start, let us get something off our chest: openthinclient has been opensourced only recently, having been an essentially closed-source thing until then. Before you complain - yes, parts of it, the OS namely, have always been based on GPL components, and therefore sourcecode has been provided earlier. But going from there to a full-scale open-source model, isn't a walk in the park. So, what you should know, is that taking part in the openthinclient development won't be a piece of cake. We intend to make it easier, but we're not quite there yet - and painfully aware of that. So, now that we've got that out of the way, let's get started (we haven't scared you off, have we?).

The openthinclient code base is divided into two parts:
  1. The openthinclient OS itself (essentially a specialized Linux distribution)
  2. The openthinclient manager suite, which is java-based and consists of
    1. The openthinclient server which provides the thin clients with essential services and
    2. The openthinclient console which is the GUI you use to configure the system.

openthinclient OS

If you want to build your own packages you will need a development system. As the openthinclient OS is based on Ubuntu 6.06 (Dapper Drake) it is strongly recommended that you use the same base platform. Whether you use an entire computer or just a virtual machine is up to you, we suggest that you use about 10 GB of free hard disk space and about 512 MB of RAM.

Quick setup guide

  1. install Ubuntu 6.06
  2. add archive.openthinclient.org to apt sources.list
  3. insert openthinclient.org gpg key
  4. update apt database
  5. install development packages
  6. install web server of your choice
  7. choose an installation to test your package

In some more details

Install Ubuntu 6.06

Nothing really special, a standard desktop installation will do. Just think about some hard disk space for your development requirements, whether you choose to use /home or another dedicated partition is completely up to you.

Add openthinclient.org gpg key

Ubuntu packages provided by openthinclient.org are cryptographically signed and installing the openthinclient.org gpg key will make that signing key known to your system. It can be downloaded from http://archive.openthinclient.org/key.gpgexternal link and installed with apt-key:

wget http://archive.openthinclient.org/key.gpg -O - | sudo apt-key add -

sources.list

openthinclient.org provides two repositories for packages, one for the developer support packages and one for the source packages of the OS. They can be found at http://archive.openthinclient.org/openthinclient/devel/external link and http://archive.openthinclient.org/openthinclient/manager/external link respectively. You will have to add those two repositories to your /etc/apt/sources.list.

update apt database

To activate the new repositories you will then have to update the apt database by issuing "apt-get update".

install development packages

We are providing developer helper packages which prepare the build system to build your own packages. At the moment there is just one: tcos-dev. Please install it, it will provide build scripts for the openthinclient OS and make sure that the basic standard developer packages are installed.

install web server of your choice

To be able to install your freshly built openthinclient packages, you need a web server. You can use an external system for that task or install one locally on your development system. A simple web server like webfsd is sufficient for the task.

cut'n'paste for the lazy folks

sudo -s
wget http://archive.openthinclient.org/key.gpg -O - | apt-key add -
cat << EOF >> /etc/apt/sources.list
deb http://archive.openthinclient.org/openthinclient/devel/ ./
deb-src http://archive.openthinclient.org/openthinclient/manager/ ./
EOF
apt-get update
apt-get install tcos-dev


Create your own packages

  1. tcos_genpackage <packagename>
  2. change directory to <packagename/packagename-0.0.1> and work on the sources
  3. tcos_buildpackage

deploy your package

  1. use tcos_upload-debs to publish your package on your installed webserver

choose a installation to test your package

  1. use an already existing openthinclient installation or install one on your development system. We recommend the latter for initial testing.
  2. add the URL to your webserver as an additional source as described here
  3. start the openthinclient manager
  4. search for new updates
  5. install your new package

Manager Suite

Installation prerequisites

You will need a few prerequisites in order to work with the openthinclient source code:

  • A subversion client (see our instructions for working with the source code)instructions for accessing the source code
  • Apache Maven 2.0.7external link or higher, which is used to build the system, or the m2eclipseexternal link if you intend to work with eclipse
  • Java 6
  • A Java IDE. Any IDE should do (even vi :-), although the source code comes only with eclipse project meta-data.

Checking out the source code

The openthinclient source code is hosted at sourceforgeexternal link. Check out the source code using the instructions for working with the source code or the instructions provided by sourceforgeexternal link. This will give you the complete source tree of the java based openthinclient suite.

Building the source code


We use the Eclipse IDE in this example

After you checked out the source tree there are many dependencies which are not resolved yet. Not to worry, you need to let maven do its work first to sort this mess out.

Choose the openthinclient project and right click the context menu:
Project -> Maven -> Enable Workspace Resolution
and then
Project -> Enable Nested Modules

Then restart eclipse. All dependecies should now be resolved.


Starting the manager to debug an test code


FIXME

Deploy and test code for the server side


To test changes on the server side you need a working OpenThinClientServer Installation. If you do not have already an running installation use the Install Guide to install one.


Hot deployment


To activate hot deployment open the file "jboss-service.xml" and go to line number 654. There change the attribute name="ScanEnabled" to "true"