Welcome on the JMMC developper Corner
This area is dedicated to:
- point to the technical ressources that are used by the JMMC technical team.
- list our tips, workarounds, usefull material.
Main documentation has been moved onto
the github wiki of Jmcs
Shared Libraries
Jmal and Jmcs collections
Jmcs and Jmal modules group a lot of external shared libraries. All collections of libs can be easily included in the distributed applications through their jnlp adding following code:
<!-- JMMC libs -->
<extension href="../JmcsLibs/JmcsLibs.jnlp"/>
<extension href="../JmalLibs/JmalLibs.jnlp"/>
JmcsLibs.jnlp and
JmalLibs.jnlp declare these ressources in the jnlp throug following code sample:
<!-- Swing Task management -->
<jar href="@SHARED@/swing-worker-1.2.jar"/>
The
@SHARED@ is replaced on fly by the admDeploy.sh script on top of a base url.
Both jmcs and jmal jnlp can be shared between applications. Then no shared ressources must be removed without strong analysis.
Contrib jars of applications
Applications based on external jars should declare them in their jnlp using the
@SHARED@ hack. By this way, the jar is copied on the server in one specific directory if it does not exist. Then the clients will download this resources only one time during successive versions.
Jnlp
The jar which contains the main class declared in the jnlp file must be declared as first jar ressource.
Constraints on deployed jars
To reach the maximum number of running platform, the distributed jars must not be signed more than once. Else error can appear arging that some parts are not signed by the same certificates.
This feature is performed during maven build.
XML Schema rules :
Here are several rules to help writing XML schemas :
First of all we define two different types of schemas.
- First we define “type schemas”, XSD documents containing only type definitions.
- For each object type(class) and value type we generate a corresponding complexType or simpleType, i.e. NOT ELEMENTS.
- Attributes map to elements of a corresponding data type (simple or complex), collections to elements of a type corresponding to the class.
- We next define a “document schema” containing root elements. The elements in the document schema define the valid XML documents one can write and we choose only the complex types representing an interesting document. That is, only important classes can be represented as a document. Fragments of these are not allowed.
If the data model is simple, it is possible to have a single XML schema gathering both type and document schemas. In this case, the XML schema must contain first the root elements and then the type definitions.
Complete and detailed explanations
here
External ressources
VO related
SAMP Simple Application Messaging Protocol
TAP
To complete: TAPlib , badcal, oidb...
Usefull tools
Tips and tricks
Commit clean code with netbeans
Netbeans provides in its Tool/Option Panel/Editor an "on save" tab where you can activate code cleanup function (organize imports, etc...)
Get the status of running threads for any java program
...if started from the command line: just get its pid and send one SIGQUIT signal :
kill -3 <pid>