Tool used to generate the preferred class information for downloadable JAR
files in the form of a META-INF/PREFERRED.LIST required for use by the {@link
net.jini.loader.pref.PreferredClassLoader}. The list is generated by
examining the dependencies of classes contained within a target JAR file and
zero or more additional supporting JAR files. Through various command-line
options, a set of "root" classes are identified as belonging to a public API.
These root classes provide the starting point for recursively computing a
dependency graph, finding all of the classes referenced in the public API of
the root classes, finding all of the classes referenced in turn by the public
API of those classes, and so on, until no new classes are found. The results
of the dependency analysis are combined with the preferred list information
in the additional supporting JAR files to compute a preferred list having the
smallest number of entries that describes the preferred state of the classes
and resources contained in all of the JAR files. The output of the tool is a
new version of the target JAR file containing the generated preferred list,
and/or a copy of the list printed to System.out.
Tool used to generate the preferred class information for downloadable JAR
files in the form of a META-INF/PREFERRED.LIST required for use by the {@link
net.jini.loader.pref.PreferredClassLoader}. The list is generated by
examining the dependencies of classes contained within a target JAR file and
zero or more additional supporting JAR files. Through various command-line
options, a set of "root" classes are identified as belonging to a public API.
These root classes provide the starting point for recursively computing a
dependency graph, finding all of the classes referenced in the public API of
the root classes, finding all of the classes referenced in turn by the public
API of those classes, and so on, until no new classes are found. The results
of the dependency analysis are combined with the preferred list information
in the additional supporting JAR files to compute a preferred list having the
smallest number of entries that describes the preferred state of the classes
and resources contained in all of the JAR files. The output of the tool is a
new version of the target JAR file containing the generated preferred list,
and/or a copy of the list printed to System.out.
There are no dependencies for this project. It is a standalone project that does not depend on any other jars.
Project Modules
There are no modules declared in this project.
JGDMS - Java/Jini Global Distributed Micro Services.
Build instructions
From command or shell prompt:
$ mvn -f JGDMS/pom.xml package
For unit tests:
$mvn -f JGDMS/pom.xml test
After successfully testing the above, integration and regression tests can be run by:
$ cd qa
$ ant run-all
$ ant jtreg
The regression tests ($ ant run-all) take approximately 24 hours to complete.
The jtreg tests take about half an hour to complete, you'll need to manually install jtreg, refer to http://openjdk.java.net/jtreg/
This software is forked from Apache River trunk, it is designed with internet security in mind and provides:
ObjectInput and ObjectOutput implementations for hardening deserialization in the presence of untrusted input.
TLSv1.2 Encrypted endpoints for RPC communication over untrusted networks, using RSA and Ephemeral Diffie Hellman key exchange and AES with GCM, non-epheremal DH key exchanges are prohibited.
IPv6 Multicast Discovery using X500 distinguished names with various integrity checking hash functions provided.
Unicast Discovery over a TLSv1.2 connection with an SHA-224, SHA-256, SHA-384 or SHA-512 hash function to validate data sent and received at both ends prior to sending a response.
Dynamically granting DownloadPermission and DeSerialization permission to trusted authenticated lookup services during unicast discovery.
Lookup Service registrar to search services available from various arbitrary third parties.
Lookup method that allows authentication of third parties, using a bootstrap proxy, prior granting DownloadPermission and DeSerialization permission for service utilisation.