Changes between Initial Version and Version 1 of GROUP_DEPLOYMENT_JWS_APPLET


Ignore:
Timestamp:
07/22/09 15:43:09 (16 years ago)
Author:
deyan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GROUP_DEPLOYMENT_JWS_APPLET

    v1 v1  
     1Create two pages - 
     2 
     3    * Related to the applet/jws design and links with their tickets: 
     4          o Application to Applet should be researched and the results should be described in the page as well as the applet design 
     5          o JWS should be designed to create permanent directory in the file system where config files can be stored 
     6          o All related tickets should be linked and if there is need for new ones they should be created  
     7 
     8== Applet Deployment === 
     9 
     10=== How to self-sign jars === 
     11 * Research about self-signing has been made. First you have to create keystore and use it to sign the launcher jar. The commands are: 
     12 
     13{{{ 
     14keytool -selfcert -alias AsteaCert -keystore sophie-keystore  
     15}}} 
     16and  
     17{{{ 
     18jarsigner org.sophie2.launcher-2.0-SNAPSHOT.jar AsteaCert 
     19}}} 
     20 
     21Note: This commands are needed for java web start deployment too. 
     22 
     23So we have a keystore named sophie-keystore with alias AsteaCert, with which we can sign the needed jars. 
     24 
     25=== Applet configuration === 
     26--- 
     27 
     28=== Implementation ideas === 
     29 * One of the things that should be done is to make the Main class of the org.sophie2.launcher module extends Applet class. In this case Felix will start in the init() method of the newly created SophieApplet. 
     30 
     31=== Location === 
     32The runnable applet has to be stored in sophie2.org server on http://sophie2.org/applet location. This should be done in the implementation section. 
     33 
     34== Java Web Start persistence == 
     35The main purpose of this is to have a local copy of *.bundles.config file in the file system of the client machine. In this way the functionality of plugin enable/disable can be included in the applet. The file will be read from the machine and if it is edited there will be changes in the switched modules. After research about this the following is found: 
     36 * jnlp library must be used - in the API classes, listed below, are needed: 
     37  * BasicService - this class manage to retrieve the codebase of the application (path to the launcher module in Sophie 2 case) 
     38 
     39  * PersistenceService - this service provides methods for storing local data in the client machine. It is something like storing cookies on the local machine. There is useful method .get which return the file content of the given url of the data store entry. This has to be used when getting the *.bundle.config file for writing/reading. Another important thing is to update the server when the config file is changed on the local machine. This is done using PersistenceService tag DIRTY that keeps track when the file was changed. When the server copy is updated with the new file the tag has to be changed to CHACHED(using setTag method). With create method a new storage entry in the client side is created. 
     40 
     41  * FileContents - file utilities are here. Methods that we need are getInputStream and getMaxLength when reading the config file. 
     42 
     43Here is simple example that uses all of the above and is almost what is needed: 
     44 
     45http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/examples.html#PersistenceService 
     46 
     47== Related Tickets And Estimation == 
     48 
     49[wiki:PLATFORM_DEPLOYMENT_TARGET_APPLET_R0][[BR]] 
     50[wiki:PLATFORM_DEPLOYMENT_TARGET_ZIP_R0][[BR]] 
     51[wiki:PLATFORM_DEPLOYMENT_TARGET_APPLET_R1] [[BR]] 
     52[wiki:PLATFORM_DEPLOYMENT_TARGET_APPLET_R2] [[BR]] 
     53[wiki:PLATFORM_DEPLOYMENT_TARGET_APPLET_R3] [[BR]]