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