Back to Home Back to Desktop View

Content repository

The content repository server for storing lessons

Connecting to and checking out the eLML project files

This chapter is only meant for authors whose projects already reside on the server or who plan to put it on this server (maintained and administered by the University of Zurich). Please note: Access to this server is limited to UZH-members but if you want you can download the make4eLML serverscripts and create a similar CVS-repository server yourself!

What is the advantage of using the content repository?

  • Server hosted and maintained by the IT Services UZH
  • Backup nightly by the IT Services UZH
  • Professional versioning software (CVS)
  • The whole authors team can write and update lessons
  • The make4eLML serverscript regularly checks if a projects lesson are valid (and sends a mail if not)
  • Possibility to transform a lesson automatically into the online, PDF, ODF and LaTeX format plus IMS and SCORM ZIPs with every commit (saved modficiation of a lesson) and upload the results to your server or choice (see make4eLML for more information)

If you choose to use our content repository here's how: Besides the "core" and "elml" project within your Eclipse workspace you will need a new project folder containing all your project specific stuff (content, layout templates, config files etc.). It will be named after your project and can be stored and checked out from the CVSCVS server Contact the administrator of the eLML content server (via for a new repository (YOURPROJECT) an account and access to the server (YOURUSERNAME). Eclipse: CVS checkout from content server using extssh. Eclipse: CVS checkout from content server using extssh. You will have to send the administrator your public ssh key (What is a key? Tell me more!) and he will send you back a username. Dont start below before you haven't got your username!

If you got your projects cvs repository (YOURPROJECT) and your username (YOURUSERNAME) for the content repository server, here is how you can checkout e.g. the GITTA project folder:

  1. First you need an empty project folder named after your project: In Eclipse choose File:New:Project... and the Eclipse "Project wizard" will open. Here choose General:Project and click "Next". You can enter the name of your project (gitta, cartouche, pto, efeed etc.) in the next window and click "Finish".
  2. Now again choose File:New:Project... and the Eclipse "Project wizard" will open again. This time open or double click "CVS" and choose the option "Projects from CVS" that will become available. Double click it to create a new CVS project.
  3. Eclipse will show you a list of stored repositories to choose from (e.g. the Sourceforge repository you just used to checkout the core, if you are using the developer release!). Since you are using the content repository server for the first time you will have to choose the "Create a new repository location" radio button to create a new checkout of a repository.
  4. Now enter the information as listed below:
    Repository Path: /usr/local/var/lib/cvs/YOURPROJECT
    Username: YOURUSERNAME (as told you by the administrator)
    Password: leave empty (you will use key login - see below)
    Connection type: Use "extssh"
  5. If this is the first time you access this server you have to accept the server "fingerprint" now. Afterwards Eclipse will ask you for the password of your ssh-key. If you generated a key with a password enter it now. Else just click "Next".
  6. In the next window you can click the second radio button to view a list of modules you can checkout*. Choose the folder "_config" and "_templates" (without them eLML won't work) AS WELL AS the lessons you want to check out using command-click. Choose "Next" (not "Finish") because you are not finished yet :-)
  7. In the next window choose the last option "Check out into an existing project" and click "Next".
  8. Now you will see the project folder you've just created (named after your project) as target folder in the following window. Choose it and now you can click "Finished" because you're done :-)

* What if the list does not appear? Restart Eclipse. Still nothing? In this case Eclipse didn't recognize your ssh-key. Please make sure that within the Eclipse settings the correct path AND name of your private key is set and maybe restart Eclipse. Read more...

Eclipse screenshot: Example of 'package explorer' view Eclipse screenshot: Example of 'package explorer' view Now you can start working with eLML as described in the eLML user manual. You Eclipse workspace should now look like the picture to your right (instead of "Alpecole" there will be a folder with your project name). Please read the paragraph about displaying empty folders in Eclipse if you installed your content repository and nothing is displayed.

How can I add new lessons to the repository?

How can I add new lessons to the repository?

WARNING: This is a tricky one and if anyone knows a simpler method to include a new lesson, please let us know! The main problem is Eclipse only allows to add new modules (=eLML lessons) into a CVS repository if they are a single Eclipse project. But since we are not using one project per lesson (a lesson is in cvs terms called "module"), we cannot directly add new lessons to the repository and have to do a workaround as described below:

  1. First you need an empty project folder named after your lesson: In Eclipse choose File:New:Project... and the Eclipse "Project wizard" will open. Here choose General:Project and click "Next". You can enter the label name of your lesson in the next window and click "Finish".
  2. Now you can create the subfolders (e.g. "de" or "en" and within this folder "text" and "image" etc.) and create a new XML file within the "text" folder. You can do this by doing a right-mouse-click on the "text" folder and by choosing File:New:XML File. Please remember to name the XML file like this: lessonlabel.xml where lessonlabel stands for the actual label of your lesson.
  3. The XML file must start with the "lesson" root element and contain the schema reference, the lessonlabel and title attribute etc. as described in the create a new lesson chapter.
  4. Now you can start creating the lesson with entry, goals, unit etc. elements and validate it as described in the validation chapter.
  5. Once you're finished you can make a right-mouse-click on the project/lesson and choose:
    Team:Share Project...
  6. In the following dialog choose the CVS repository where the lesson belongs to and click next. The following steps are pretty similar to the steps described above (always click the default button and you're OK :-)
  7. We have now submitted the new lesson but within your workspace the lesson is at the wrong place. Therefore you have to do a new checkout from within your project folder. Make a right-mouse-click on your actual project folder (not your lesson you've just created) and choose Import...
  8. Now you can choose your lesson and do a checkout into your project folder (refer to point 6 and 7 in the list above!).
  9. After you have successfully included your lesson within your project you can delete the standalone lesson project folder we created in step 1. The lesson is now included into your CVS repository as a unique module.

If you're a command line geek you can add a new lesson to the repository with the command:

cvs -d import -m "Some comment" lessonlabel vendor tag start

Appendix: Key generation in Eclipse

Appendix: Key generation in Eclipse

Please note that our content server only accepts key authentication. If you plan to use the eLML content server read this chapter carefully. You can skip it if you are already familiar with key authentication.

I don't know about keys and authentication, tell me more about it!

For authentication purposes usually a password is used. This is not very secure since passwords can be hacked while transmitted from your computer to the server. Therefore using keys is a more secure solution. The way it works is that you generate a key pair with a public and a private key that match each other. The private key always (!) remains on your computer. The public key is distributed to the servers where you would like to have access. As soon as you login on that server using your username, the server knows the public key that belongs to that username. The server then sends the public key to your computer to check if it matches your private key. If they match, you get access. This way no passwords or sensitive data is transmitted since the private key always remains on your computer (and the private key should also be password protected itself!).

Generating a key in Eclipse

  1. Choose "Preferences..." from the "Eclipse" (or "Windows", depending on OS) Menu. Now look for "General:Network Connections:SSH2". By clicking on the "Key Management" Tab you are able to create and manage keys.
  2. Click on "Generate DSA Key" and a new DSA key (RSA is an older method not recommended using) is generated. Enter a useful comment to remember what you created this key for (E.g. "eLML Content Server for YOURPROJECTNAME" or something similar) and enter a password for this key.
  3. Click "Save Private Key" to save your public and private key. Usually this is done in the ".ssh" directory of your home directory and usually it is named "id_dsa" but both can be chosen as wished. Just be sure that your application (here Eclipse) knows where to look for the keys (see below). Give a useful name to your key and after saving Eclipse generated both a public (with the ".pub" extension) and a private key. Set your permissions correctly so that no one but you has privileges to read your private key!!! This is usually done using the command chmod 700 YOURKEY within the .ssh directory.
  4. Click "Apply" and "OK" and you're done with this step.
  5. Please note: If you need to email someone your public key and your .ssh directory is hidden (e.g. on OSX or Linux/Unix but NOT on Windows), you cannot directly attach the public key to your email from within the mail client. To do so please issue the following command with a terminal application: cp ~/.ssh/ ~/ (now your public key named "" should be visible within your home directory).

The next step can be omitted if you've just installed Eclipse. The default settings should then still apply but feel free to check it:

Telling Eclipse where to look for keys:

  1. Choose "Preferences..." from the "Windows" Menu. Now look for "General:Network Connections:SSH2". Go to the "General" Tab if you're not already there.
  2. Define here where your ".ssh" directory is (normally this is "~/.ssh") and the names of your keys (usually "id_dsa" for DSA keys). Please note that in the "Private keys" field you can enter as many keys as you like, separated by commas. If they are all in the SSH directory defined right above, entering just the name is fine, else enter the whole path (or just use the "Browse" button and Eclipse does it for you :-)
  3. Click "Apply" and "OK" and you're done with this step.
Eclipse screenshot: Key management in Eclipse. Eclipse screenshot: Key management in Eclipse.

Using your key to authenticate at Sourceforge

Sourceforge offers both password and key authentication. If you generated your key as described above and prefer to work with keys instead of entering your password, you have to upload your public key to Sourceforge. Within your Account Options on the Sourceforge website you will find a link to add and edit SSH Keys for your account. Please refer to the Sourceforge Documentation for more information.