Building jEditOQMath

These instructions are meant for Unix systems but should also works using a DOS shell

  • Install maven 1.x, also have a Subversion client at the svn command
  • Make a fresh directory, typically called AMauthoring and cd into there
  • Check-out the IdSearch module:

    svn co http://svn.activemath.org/AMauthoring/trunk/projects/IdSearch
  • Build it:

    cd IdSearch

    maven jar:install -Dmaven.repo.remote=http://repo1.maven.org/maven,http://www.activemath.org/public-repository/

    cd ..
  • Check-out the OQMath module:

    svn co http://svn.activemath.org/AMauthoring/trunk/projects/OQMath
  • Make sure that QMath is installed in /usr/local/qmath_3 (or change the test source files to point to the correct path)
  • Build it:

    cd OQMath

    maven jar:install -Dmaven.repo.remote=http://repo1.maven.org/maven,http://www.activemath.org/public-repository/

    cd ..
  • Build successful will have tested the OQMath compilation of a complete document so you're set, at least for your platform
  • Checkout the webstart modules... they are here to provide the java web-start packaging facilities. svn co http://svn.activemath.org/AMauthoring/trunk/projects/webstart
  • Get a copy of jEdit-cvs. One simple way is to download jEdit-cvs from our repository. This file containing a single directory jEdit-cvs should be expanded in a directory called projects in the user's home (or add the argument -Djedit_home=path-to-jedit-home).
  • Finally, check-out the jEditOQMath module:

    svn co http://svn.activemath.org/AMauthoring/trunk/projects/jEditOQMath
  • Build it:

    cd jEditOQMath

    maven -Dmaven.repo.remote=http://repo1.maven.org/maven,http://www.activemath.org/public-repository/

    cd ..

    (you may be requested a few signature properties (maven.jnlp.signjar.alias, maven.jnlp.signjar.storepass,maven.jnlp.signjar.store). If unsure what this is, get a tutorial on "self-signing a jar") Typically, these preferences, should be inserted into your ~/build.properties. That step can be ignored to achieve the next step, making sure the failure is at the signjar task. Of course it is needed to obtain a java web start distribution)
  • You can now build an application artifact and try to run it right away in the jEditOQMath:

    maven try:run -Dmaven.repo.remote=http://repo1.maven.org/maven,http://www.activemath.org/public-repository/

Extras:

  • Should you wish to upload a release to the developer snapshot, you will need the following properties defined in your ~/build.properties which allow the signer to use your key to sign each of the jars:

    maven.jnlp.signjar.alias = (the "key name")

    maven.jnlp.signjar.storepass = (the "password of the keystore")

    maven.jnlp.signjar.store= (typically $${user.home}/.keystore)

    You then invoke maven all-jnlp -DdoUpload=true.
  • Should you wish to upgrade this website, run maven site then maven site:upload having defined the property amProjectsUploadLocation to point to the projects directory of the website (where a directory jEditOQMath is) in ~/build.properties. To upload the zip, use maven pack:upload.

Thanks to report questions to paul@activemath.org, the most probable being a lack of some dependencies.

.

What about other ingredients ?

You should be reading the project.xml for precise information as well as the poms inside the public repository. The ActiveMath authoring extracts are built from current CVS using the command maven amAuthorExtracts:install-snapshot, the jEdit artifacts are built from CVS of jEdit (on version 4.2), the QMath archive is pre-compiled (multi-platform), and the jakarta-commons-jelly snapshots are built from svn. These resulting=artifacts are all available from the ActiveMath public repository: http://www.activemath.org/public-repository/

How to Release

(WARNING experimental)

Each of the projects involved in jEditOQMath are released the maven way. One supposes that you have the keys to deploy to the ActiveMath repository. I put these in my ~/build.properties:

maven.repo.AM-public = scp://dave.activemath.org

maven.repo.AM-public.username = ilo

maven.repo.AM-public.directory = /project/activemath/javalibs/maven/public-repository

maven.repo.AM-public.privatekey={path-to-id_dsa-or-so}

maven.repo.AM-public.mode=0664

maven.repo.AM-public.mode.directory=0755

Deploying is then "just a matter of invoking": maven jar:deploy. But please only deploy releases that are actual new releases and snapshots not too often.

More information on the deployment of artifacts can be read from maven artifact plugin documentation.