jtrixmaker_help.txt


Descriptor maker
----------------
jtrixmaker -type beatrix -x500dn <dn> [-jardirs <jardir>+] [-jars <jar>+]
           [-outfile <outfile>]
           [-key-pair <public> <private>]
           [-certs <certificate+>]
           [-plugins <class>+]
           [-access <service_type> <main_class> <codebase_label>]*
           [-access <codebase_label>]
           [-access <service_type> <main_class>]*
           [-worker <worker_type> <main_class> <codebase_label>]*
           [-worker <codebase_label>]
           [-worker <worker_type> <main_class>]*
           [-manager <codebase_label>]
           [-manager <main_class> <codebase_label>]
           [-codebase <codebase_label> <jar>+ ]*
           [-cmdlinearg <name> {<property_type>:<rep>} true|false]*
           [-cmdlinearg <name> {<property_type>} true|false]*
           [-cmdlinearg <name> <string>|<digits> true|false]*

jtrixmaker -type netlet [-x500dn <dn>] [-jardirs <jardir>+] [-jars <jar>+]
           [-jar-bases <url_base>+] [-jar-urls <jar_url>+]
           [-outfile <outfile>]
           [-key-pair <public> <private>]
           -classname <classname>
           [-param {<property_type>:<rep>} | <string> | <digits>]
           [-lazy true|false]
           [-embedded true|false]

jtrixmaker -type warrant  
           -descriptor-in <netlet descriptor file> | -bind-urls <url>+ 
           [-outfile <outfile>]
           [-x500dn <dn>] [-key-pair <public> <private>]

    Makes an XML warrant or descriptor of some kind. Possible types are:
    netlet descriptor; launch descriptor for a Beatrix application;
    warrant.

    If a warrant is created by supplying a descriptor and additionally
    an X.500 DN and key pair are supplied then a check is made
    to ensure that the signing of the warrant and descriptor
    correspond. No such check is currently provided if the user
    supplies a bind URL in place of a descriptor.

    The following options are relevant for all types of descriptor:

    -type <type>
        Kind of descriptor to be made. Possible values are:
            netlet - Netlet descriptor. This is the default
            beatrix - Launch descriptor for a Beatrix application.
            warrant - Warrant for a netlet service.
    -outfile <outfile>
        Name of file in which to write the descriptor. If omitted, stdout is
        used.
    -x500dn <dn>
        An X.500 DN identifying the application. Required for a launch
        descriptor for a Beatrix application.
    -key-pair <public> <private>
        Public/private key pair to ensure the applications warrants and
        descriptors are digitally signed. 
        <public> is the file name of the public key in X.509 format. 
        Alternatively, an ordinary X509 certificate
        can be specified from which the public key will be extracted.
        <private> is the file name of the private key in PKCS#8 format
        (in DER encoding).
    -certs <certificate>+
        A list of certificate files in X.509 format. The certificates are 
        propagated to all application netlets where they may be used, eg.
        by transport provider plugins. 

     The following options are relevant for type netlet and beatrix only:

    -jardirs <jardir>*
        Series of directories containing JAR files. If any JAR is named in the
        -jars option and it is a relative filename, then each <jardir> is
        looked at in the order presented to see if the named JAR is relative
        to that <jardir>. Otherwise an error is returned. If a <jardir> is
        itself relative then it is assumed to be relative to the user's
        current directory.
    -jars <jar>*
        A series of JAR files to be included in the descriptor. If a <jar> is
        a relative filename then it is assumed to be relative to one of
        <jardir>s, if given, or the user's current directory otherwise.

    The following options are relevant for netlet descriptors:

    -jar-bases <url_base>+
        A series of base URLs containing the JARs. This is a network version
        of the -jardirs option. If a JAR is named in the -jar-urls option
        and it's a relative reference then it will be assumed to be relative
        a given <url_base>. Each <url_base> is tried in turn for the JAR.
        Don't get caught out --- you almost certainly want to put a "/" on
        the end of each <url_base>.
        Example: Suppose our command line includes this
            ... -jar-bases http://www.mysite.com/data/ http://www.home.com/
            -jar-urls http://www.jars.com/files/lib1.jar lib2.jar lib3.jar ...
        Then (1) lib1.jar will be sought at http://www.jars.com/files/lib1.jar,
        (2) lib2.jar will be sought at http://www.mysite.com/data/lib2.jar and
        at http://www.home.com/lib3.jar, (3) lib3.jar will be sought at
        http://www.mysite.com/data/lib3.jar and http://www.home.com/lib3.jar.
    -jar-urls <jar_url>+
        A series of relative or full URL of where to find a JAR. If it's a
        relative URL then each <url_base> will be appended in turn to
        see if this <jar_url> is relative to it.
    -classname <classname>
        The name of the initialisation class implementing INetlet.
        Required for a netlet descriptor.
    -param {<property_type>:<rep>} | <string> | <digits>
        The signed parameter bean. Syntax like launcher properties. However,
        if <property_type> is the string "object" then <rep> is a filename
        containing the object in serialized form. Default is the null
        object.
    -lazy true|false
        Whether or not to use lazy loading of JARs. Default is false.
        If true then the node will only load each JAR when/if it is needed.
    -embedded true|false
        Whether or not to embed the JAR files in the netlet descriptor itself.
        Default is true.  Because a node cannot access the local file system
        on behalf of a netlet, if a netlet descriptor refers to JARs on the
        local filesystem then they are useless and out of reach. Therefore
        setting this to true makes sense if your JARs are in the local
        file system. You probably want to set this to false if your JARs are
        coming from URLs, since the node can access URLs.
        
    The following options are relevant for warrants:

     -descriptor-in <netlet descriptor file>
         The name of the XML file containing the descriptor for the
         netlet for which this warrant is required. The descriptor is then
         embedded in the warrant.
     -bind-urls <url>+
         A list of URLs from which the descriptor (for the
         netlet for which this warrant is required) can be obtained.

    The following options are relevant for launch descriptors for Beatrix
    applications:

    -codebase <codebase_label> <jar>+
        Labels one or more jars to be referenced in following options.
        Zero or more codebases can be secified.
    -manager <codebase_label>
        The codebase for the manager netlet and its plugins.
    -manager <main_class> <codebase_label>
        The main class and the codebase for the manager netlet and its
        plugins.
    -plugins <class>+
        A series of plugin class names which will be added to each Beatrix
        manager (including the first one) when it starts. These plugins
        will not be initialised. However, once they are added the Manager
        will look up an IManagerLifeCycle plugin and call its coldStart
        method, so that will be initialised at that point. All these plugins
        need to be present in the manager's codebase.
    -access <codebase_label>
        Specifies the codebase for the default access point only.
    -access <service_type> <main_class> [<codebase_label>]
        Allows us to specify that a particular access point netlet should
        be downloaded instead of the default proxy one. It will be downloaded
        only in response to bind of service <service_type>. The class
        <main_class> will be the one implementing INetlet and will be
        called as such. Optionally a codebase can be specified
        to reduce the codebase size to be uploaded (lightweight access point).
        This feature has only limited use as each access point should be 
        able to serve any <serivce_type>.
    -worker <codebase_label>
        Specifies the codebase for the default worker only.
    -worker <worker_type> <main_class> [<codebase_label>]
        Allows us to specify that a particular worker netlet should
        be executed instead of the default one. The class
        <main_class> will be the one implementing INetlet and will be
        called as such. Optionally a codebase can be specified
        to reduce the codebase size to be uploaded (lightweight worker)
    -cmdlinearg <name> {<property_type>:<rep>} true|false
        A command line argument called <name> of a given property type
        with a default value of <rep>, just like the -param option above.
        The final boolean specifies whether it is required (true) or not
        (false).
    -cmdlinearg <name> {<property_type>} true|false
        A command line argument called <name> of a given property type
        and no default value.  The final boolean specifies whether it is
        required (true) or not (false).
    -cmdlinearg <name> <string>|<digits> true|false
        A command line argument called <name>. If <string> is given (i.e. a
        string which is not entirely digits) then this is of property type
        String and has that default value. If <digits> is given (i.e. a string
        consisting entirely of digits) then this is of property type int
        and has that default value.  The final boolean specifies whether it
        is required (true) or not (false).

(ends)

Nik Silver 2002-03-09