JGDMS technology is a micro service
oriented architecture that defines a programming model which both
exploits and extends Java technology to enable the construction of
secure, distributed systems which are adaptive to change.
Submitting Issues
If you would like to submit a bug against the JGDMS release, please
do so on github.
Platform dependencies
This release depends on new features included in version 6 of
the Java(TM) 2 Platform,
Standard Edition. You should not expect to be able to use
the source code or JAR files from this release with earlier versions
of the Java platform. This requirement also extends to clients
that dynamically download code from the services provided in this release.
Platform JAR files
jsk-policy.jar
This JAR file contains a security policy provider,
DynamicPolicyProvider
, that supports dynamic
granting of permissions at run time. Although use of this policy provider
is not required, its use is highly recommended when deploying secure
applications and services. To permit effective use of this policy provider,
it must first be installed as an extension in the Java 2 SDK (or JRE)
that you will be using, as described in the
installation instructions.
This is the only JAR file that we recommend installing as an extension
to avoid possible deadlock, however this is no longer necessary if using
DynamicPolicyProvider
with
ConcurrentPolicyFile
as the default base policy.
It will not be possible to use the extension facility with Java 9.
To use this provider, you need to define a security property
(not a system property):
policy.provider=net.jini.security.policy.DynamicPolicyProvider
in some file (for example, named security.properties
) and
then define a system property:
-Djava.security.properties=path-to-file/security.properties
when running your application.
jsk-platform.jar
This JAR file contains classes and interfaces that we have chosen to include
in all of our applications, and have also chosen to assume are available
in all other applications that receive objects from our applications.
This JAR file primarily contains classes and interfaces that are typically
referenced in:
- service provider resources to control the configuration of
ClassLoading
,
RMIClassLoader
,
TrustVerifier
,
IntegrityVerifier
,
ServerContext
,
and
DiscoveryFormatProvider
providers
ConfigurationFile
source files, but which are unlikely to be referenced directly by the
applications and services being configured (in particular, classes for
creating
Exporter
and
ProxyPreparer
instances and their components)
- dynamically downloaded code, but which we believe are not themselves
reasonable to download (in particular, because they are needed to bootstrap
proxy trust verification, or because their implementations require
extraordinary permissions)
plus all of the classes and interfaces that their implementations directly
or indirectly depend on.
This JAR file contains all of the classes and interfaces in the
following namespaces (including all subpackages):
net.jini.activation
net.jini.config
net.jini.constraint
net.jini.core
net.jini.export
net.jini.id
net.jini.iiop
net.jini.io
net.jini.jeri
net.jini.jrmp
net.jini.loader
net.jini.security
net.jini.url
org.apache.river.discovery
plus the following classes:
Any other classes or interfaces found in this JAR file should be considered
implementation details.
This JAR file includes a protocol handler for
HTTPMD URLs.
To enable this handler, you need to specify the system property:
-Djava.protocol.handler.pkgs=net.jini.url
in any application that creates or receives such URLs. In particular,
any service that uses an HTTPMD URL in its codebase, and any client
that wants to download code from such a service, should set this
system property.
It is important to understand that the contents of this JAR file do not
constitute a "standard" platform; this JAR file is simply our choice of
a platform likely to be useful for deployments of this release.
Depending on your deployment requirements, you may want to alter the contents
of this JAR file (but if you do so, you also might have to make changes to
other JAR files).
jsk-resources.jar
This JAR file is referenced in the Class-Path
manifest attribute
of jsk-platform.jar
, and configures the following specific
service providers to be used:
Depending on your deployment requirements, you may want to alter
the contents of this JAR file to use different sets of providers.
jsk-lib.jar
This JAR file is referenced in the Class-Path
manifest attribute
of many JGDMS release implementation JAR files, and contains the utility
APIs that are not tied to a specific service implementation.
This JAR file contains all of the classes and interfaces in the
following namespaces (including all subpackages):
net.jini.admin
net.jini.discovery
excluding ConstrainableLookupLocatorTrustVerifier
which is contained in jsk-platform.jar
net.jini.entry
net.jini.event
net.jini.lease
net.jini.lookup
net.jini.space
org.apache.river.admin
org.apache.river.landlord
org.apache.river.lease
org.apache.river.lookup.entry
org.apache.river.proxy
org.apache.river.resource
org.apache.river.thread
plus the following classes:
Any other classes or interfaces found in this JAR file should be considered
implementation details.
jsk-dl.jar
The codebase JAR file for jsk-lib.jar
. An application that includes
jsk-lib.jar
in its class-path may also need to include jsk-dl.jar
in its codebase.
This JAR file contains all of the classes and interfaces in the
following namespaces (including all subpackages):
net.jini.admin
net.jini.entry
net.jini.event
net.jini.lookup.entry
excluding EntryBeans
net.jini.space
org.apache.river.admin
org.apache.river.lease
org.apache.river.proxy
plus the following classes:
Any other classes or interfaces found in this JAR file should be considered
implementation details.
Service Starter JAR files
All of our services are designed to be run under the
Service Starter.
start.jar
- This executable JAR file is the primary entry point for the
Service Starter. It acts as both the class path for the container
virtual machine (VM) for the Java platform that executes non-activatable
services, and as the
setup VM for activatable services. It has a
Class-Path
manifest
attribute that references jsk-platform.jar
.
sharedvm.jar
- This JAR file is used as the class path for the activation group VM
(the container VM for activatable services). It has a
Class-Path
manifest attribute that references both
jsk-platform.jar
and phoenix-init.jar
.
destroy.jar
- This executable JAR file can be used to destroy an existing
activation group and all of the activatable services registered
in that group.
group.jar
- This JAR file contains the implementation of an activatable service
used to destroy an existing activation group. It is typically used as
the class path in a
SharedActivatableServiceDescriptor
in a configuration file
passed to destroy.jar
.
group-dl.jar
- The codebase JAR file for
group.jar
, used in the same
service descriptor as above for group.jar
.
Service JAR files
There are two primary JAR files for each service, a service JAR file with
a name of the form service.jar
, and a codebase JAR
file with a name of the form service-dl.jar
.
The service JAR file contains the service implementation itself, and
can be thought of as the class path for the service. The
service JAR file generally contains three versions of the service:
a transient (non-activatable, non-persistent) version; a non-activatable,
persistent version; and an activatable, persistent version. In this release,
Mahalo and Mercury do not yet provide transient versions. The service
JAR file is designed to be run under the Service Starter, and as such
is not directly executable.
The service JAR file's Class-Path
manifest attribute refers to jsk-lib.jar
.
The codebase JAR file is used as the
codebase annotation for the service; it contains classes and interfaces
that are used by the service's proxies and trust verifiers, and that clients
need to dynamically download. The codebase JAR file also contains a
preferred list for use by clients that have the
PreferredClassProvider
enabled.
The codebase JAR file does not include any of the classes or interfaces found
in jsk-dl.jar
therefore jsk-dl.jar
must be included
in the service's codebase annotation. The codebase JAR should come first in
the codebase annotation, so that its preferred list is obeyed, rather than the
one in jsk-dl.jar
.
Neither the service JAR file nor the codebase JAR file include any of the
classes or interfaces found in jsk-platform.jar
: the Service
Starter container (either start.jar
or sharedvm.jar
)
provides these classes for the service implementation, and clients are
expected to have jsk-platform.jar
in their class path.
fiddler.jar
- The service JAR file for the Fiddler implementation of the lookup discovery service.
fiddler-dl.jar
- The codebase JAR file for Fiddler.
mahalo.jar
- The service JAR file for the Mahalo implementation of the transaction manager service.
mahalo-dl.jar
- The codebase JAR file for Mahalo.
mercury.jar
- The service JAR file for the Mercury implementation of the event mailbox service.
mercury-dl.jar
- The codebase JAR file for Mercury.
norm.jar
- The service JAR file for the Norm implementation of the lease renewal service.
norm-dl.jar
- The codebase JAR file for Norm.
outrigger.jar
- The service JAR file for the Outrigger implementation of the JavaSpaces service.
outrigger-dl.jar
- The codebase JAR file for Outrigger.
reggie.jar
- The service JAR file for the Reggie implementation of the lookup service.
reggie-dl.jar
- The codebase JAR file for Reggie.
Activation JAR files
This release contains a configurable Java Remote Method Invocation
(Java RMI) activation system daemon implementation named
Phoenix
that we recommend using instead of rmid
when deploying
activatable versions of services.
phoenix.jar
- This executable JAR file is used to run Phoenix.
phoenix-dl.jar
- The codebase JAR file for Phoenix. Unlike
rmid
,
Phoenix requires clients to dynamically download code.
phoenix-init.jar
- This JAR file (or its contents) must be included in the class path of any
activation group VM that is created by Phoenix to run activatable objects.
phoenix-group.jar
- This JAR file contains the default
ActivationGroup
implementation for Phoenix. Normally it is not referenced explicitly,
but is instead loaded automatically from the same directory as
phoenix.jar
.
Tools JAR files
tools.jar
- This JAR file contains tools for:
checking configuration files; checking for missing
serialVersionUID
fields; computing class dependencies;
providing HTTP service; generating message digests; generating HTTPMD URLs;
examining the run-time environment of a River component;
generating wrapper JAR files; and generating preferred lists.
When used as an executable JAR file, it runs the
ClassServer.
checkconfigurationfile.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs CheckConfigurationFile.
checkser.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs CheckSer.
classdep.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs ClassDep.
classserver.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs ClassServer.
computedigest.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs ComputeDigest.
computehttpmdcodebase.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs ComputeHttpmdCodebase.
envcheck.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs EnvCheck.
jarwrapper.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs JarWrapper.
preferredlistgen.jar
- A wrapper for
tools.jar
. When used as an executable JAR file, it runs PreferredListGen.
browser.jar
- This executable JAR file is used to run the example
Service
Browser.
browser-dl.jar
- The codebase JAR file for the Service Browser.
- Note that the Service Browser is an old example written before
the Java Memory Model JSR 133, it doesn't export
services safely. Do not copy this example. For a modern example
see
Dennis Reedy's apache-river-example on GitHub
Persistent Outrigger JAR files
outrigger-logstore.jar
- A secondary JAR file referenced by the
Class-Path
manifest
attribute of outrigger.jar
, containing classes for the default
storage implementation used by the persistent versions of Outrigger. In
practice you should not need to refer directly to this JAR file.
prebuilt-outrigger-logstore.jar
- A secondary JAR file containing specially postprocessed classes in
outrigger-logstore.jar
. This JAR file is never used at runtime,
it is only used if you attempt to rebuild the JGDMS release from sources and
do not have the necessary ObjectStore PSE Pro for Java postprocessor tool.
In practice you should not need to refer directly to this JAR file.
Note on the API documentation
The on-line API documentation (generated by the
Javadoc(TM) tool) provided in this release does not include
every class and interface in the org.apache.river
packages.
This omission was intentional; we only produced on-line API documentation
for the classes and interfaces that we think might be important or useful
to you. However, almost all of our classes and interfaces have
documentation comments, so if you wish, you can produce
API documentation for them yourself.
Release Notes - River 3.0.0
Sub-task
Release Notes - River - Version River_3.0.0
Sub-task
- [RIVER-319] - Change River Build Dist structure to support jtreg test automation
- [RIVER-344] - com.sun.jini.thread.TaskManager scalability and concurrency.
Bug
- [RIVER-19] - PreferredClassLoader doesn't implement preferred semantics for getResources(String)
- [RIVER-113] - JoinManager synchronization on each proxyReg should be reviewed, doc'd and fixed where appropriate
- [RIVER-145] - JoinManager synchronization on serviceItem should be reviewed, doc'd and fixed where appropriate
- [RIVER-148] - JoinManager.ProxyReg.fail synchronization may be wrong or may be able to simplify it
- [RIVER-265] - PreferredClassProvider performs 'unlucky' caching
- [RIVER-282] - Suspect exception cast
- [RIVER-335] - com.sun.jini.phoenix.ConstrainableAID missing from phoenix.jar
- [RIVER-337] - Attempted discard of unknown registrar kills LookupLocatorDiscovery thread
- [RIVER-345] - SDM LookupCache multi-LUS stale proxy/discard problems
- [RIVER-348] - Possible race condition in net.jini.lookup.ServiceDiscoveryManager addProxyReg
- [RIVER-367] - com.sun.jini.mahalo.TxnManagerImpl fails to abort a Transaction when notified of its lease expiration.
- [RIVER-387] - KerberosServerEndpoint calls com.sun.security methods, animal-sniffer warns
- [RIVER-395] - Ill-behaved DiscoveryListener can terminate discovery notifier threads
- [RIVER-402] - NullPointerException in LookupCacheImpl.notifyServiceMap
- [RIVER-418] - Service server implementations start threads before construction is complete allow "this" to escape
- [RIVER-420] - Export during construction.
- [RIVER-422] - Missing reference-collections and high-scale-lib in Manifest for jsk-platform
- [RIVER-431] - Java Memory Model Compliance
- [RIVER-433] - Test suite freeze while testing service discovery category
Improvement
- [RIVER-26] - Make UmbrellaGrantPermission work with DynamicPolicy
- [RIVER-107] - DynamicPolicyProvider could use finer grained locking
- [RIVER-123] - ConfigurationFile should support arithmetic operations
- [RIVER-140] - JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate
- [RIVER-193] - support declaring entries in a "common" configuration source for use in other configuration sources
- [RIVER-249] - DynamicPolicy providers do not support UmbrellaGrantPermission
- [RIVER-274] - Improve logging of diagnostic messages in ServiceDiscoveryManager
- [RIVER-343] - Private class extends java.lang.Thread, causing synchronization bottleneck.
- [RIVER-386] - Refactor of FastList inside of Outrigger
- [RIVER-401] - PreferredClassProvider using URL as key in map
- [RIVER-412] - rename com.sun.jini packages to org.apache.river.impl
- [RIVER-439] - River only builds on Sun's JVM, add support for other JVM's
New Feature
- [RIVER-313] - Provide mechanism to swap in alternatives to Java DSL for service configuration
- [RIVER-340] - Additional Dynamic Grants and Revokeable Permissions
Question
- [RIVER-365] - main build.xml contains remarks about deprecated (and to be removed) targets, needs clarification
TCK Challenge
- [RIVER-419] - ServiceDiscoveryManager lookup qa TCK tests need to be reviewed
Task
- [RIVER-261] - update com.sun.* namespace to org.apache.river.*
Test
Release Notes - River 2.2.0
Sub-task
Release Notes - River - Version River_2.2.0
Sub-task
- [RIVER-374] - Review how LookupLocator is used to provide host and port details for LookupLocatorDiscovery
Bug
- [RIVER-11] - LookupLocatorDiscovery ignores new LookupLocator instances for which only constraints differ
- [RIVER-170] - hello example ConfirmingILFactory assumes ClientHost.toString is useful
- [RIVER-183] - clarify meaning of "calls from the local host"
- [RIVER-287] - [PATCH] avoid race condition problems for taking snapshots
- [RIVER-296] - Mahalo implementation throws CannotAbortException from abort() on an expired transaction
- [RIVER-334] - jre 6 Policy issues
- [RIVER-353] - VM sometimes crashes during build when executing jarwrapper
- [RIVER-354] - TransactionManagerImpl.abort throws a NullPointerException when transaction is not found, where interface TransactionManager specifies an UnknownTransactionException to be thrown.
- [RIVER-391] - Outrigger failure under stress
- [RIVER-397] - Mux.start() can block indefinitely
- [RIVER-142] - concurrency problem in DGC lease expiration handling
Improvement
- [RIVER-92] - preferredlistgen warning messages during build are confusing
- [RIVER-346] - Logging for QA tests is set to FINEST for many loggers by default . This should be changed to INFO.
- [RIVER-349] - Setup separate Hudson job for QA testing
- [RIVER-396] - PreferredClassProvider classloader cache concurrency improvement
Task
- [RIVER-301] - Move the QA framework donated by Sun inside the jtsk trunk and integrate into build process
Test
Changes by Component, updated for v2.2.0
Services
Jeri
Loader
Normal
Other
Platform dependencies
This release depends on new features included in version 1.5 of
the Java(TM) 2 Platform,
Standard Edition. You should not expect to be able to use
the source code or JAR files from this release with earlier versions
of the Java platform. This requirement also extends to clients
that dynamically download code from the services provided in this release.
Notes of Interest 2.1.2
This second release from the Apache River project is based on the
contributions of Sun's Jini Technology Starter Kit (Starter Kit) v2.1
and Service UI from Artima. The release focuses on merging the
two contributions together, structuring separate src and bin releases,
and amending the source and documentation naming/versioning/etc
to the Apache River project.
Some points of note:
- NOTICE file and source license headers updated
- Source and documentation updated for release name ("Apache
River release") and version ("v2.1.2")
- Graphical installer (which was a 3rd party application in the
Starter Kit) is no longer available
- The combined source and binary release in the Starter Kit has
been separated into two releases: src and bin
- The "logstore" implementation of org.apache.river.outrigger.Store has
been removed
The persistent version of Outrigger relies on a pluggable persistence
layer, org.apache.river.outrigger.Store
. Previous releases
of the Starter Kit included two implementations of the Store interface,
logstore and snaplogstore. This release removes
logstore.
Logstore has been around in various forms since the 1.0 version of
Outrigger. Snapstore was introduced in v2.1 of the Starter Kit.
The v2.0.n releases of the Starter Kit used logstore as the default Store
implementation, this release has no default Store. In order to switch an
existing set of configuration files, security policy files, etc., from using
logstore to snaplogstore, you will need to change the
org.apache.river.outrigger.store
configuration entry (or add a
store configuration entry if you don't already have one) to yield a
org.apache.river.outrigger.snaplogstore.LogStore
object. You
will also need to ensure that outrigger-snaplogstore.jar
has
been granted sufficient permissions (see Outrigger's package documentation
for a sample security policy file.).
Note that depending on the nature of your application snaplogstore can
have a significantly different performance profile than logstore.
The storage formats used by snaplogstore and logstore are mutually
incompatible.
Upcoming Changes planned for the next version of JGDMS
All packages ouside of the net.jini namespace will be
renamed to org.apache.river.
Support for Java 5 language features
Support for Modular Frameworks conforming to the OSGi r4.2 core Specification
Changes made since Apache River v2.1.1
Bug
- [RIVER-5] -
HTTMPMD URLs can be considered equal while they are not
- [RIVER-8] -
org.apache.river.tool.ClassDep empty inside collection doesn't work
- [RIVER-17] -
Misleading logging message when discovery constraint checking is delayed
- [RIVER-18] -
Order of discovery providers not maintained
- [RIVER-22] -
NPE in net.jini.jeri.tcp.TcpEndpoint$ConnectionImpl.checkConnectPermission
- [RIVER-24] -
PreferredListGen can create illegal PREFERRED.LIST
- [RIVER-78] -
ClassDep generates duplicate output lines
- [RIVER-82] -
ClassDep generates duplicate output lines
- [RIVER-91] -
Uninstaller does not remove all items
- [RIVER-205] -
LookupDiscovery can give untrusted code access to privileged threads
- [RIVER-209] -
NullPointerException in SslConnection.checkConnectPermission()
- [RIVER-212] -
use of "enum" as a variable name
- [RIVER-213] -
(DOC) - JoinManger has typo in javadoc (missing </code> termination tag)
- [RIVER-215] -
LookupDiscovery throws NullPointerException on terminate
- [RIVER-216] -
ConfigurationFile should throw ExceptionInInitializerError if unable to read
prohibited methods
- [RIVER-217] -
Browser incorrectly assumes event source is ServiceRegistrar proxy
- [RIVER-223] -
test: jtreg/net/jini/jeri/tcp/connectTimeout/TestConnectTimeout fails on Linux
- [RIVER-224] -
Problem using browser to destroy service that supports DestroyAdmin but not
JoinAdmin
- [RIVER-225] -
NullPointerException in Reggie during destroy
- [RIVER-227] -
tools manpages command lines do not include line continuation characters
- [RIVER-230] -
(mux) SelectionManager catch Error block assumes getMessage() returns non-null
- [RIVER-232] -
JarWrapper and PreferredListGen uses jsk_install_dir and install_dir
- [RIVER-234] -
(DOC) Fiddler manpage directions for HTTP server should reference
classserver.jar, not tools.jar
- [RIVER-240] -
BasicInvocationDispatcher.dispatch could log more info for some exceptions
- [RIVER-241] -
Mercury spelling errore
- [RIVER-242] -
if a given ConnectionManager instance cannot create a reaper thread once,
it never will again
- [RIVER-245] -
Unicast discovery should close socket in case of connection exception.
- [RIVER-252] -
ComputeHttpmdCodebase NPE if resource bundle not found
- [RIVER-253] -
ComputeDigest NPE if resource bundle not found
- [RIVER-254] -
request initiation can block on I/O for inapplicable connection
- [RIVER-255] -
Outrigger DestroyThread does not catch exceptions from exporter.unexport
- [RIVER-284] -
[PATCH] fix bad ParticipantHandle.compareTo
- [RIVER-286] -
[PATCH] iterators on synchronized collections still need synchronization
- [RIVER-289] -
Fix for RIVER-247 introduced wrong license headers and references
- [RIVER-298] -
No JavaDocs generated for package "org.apache.river.reliableLog"
- [RIVER-302] -
ClassDep -newdirbehaviour option does not work
- [RIVER-305] -
qa/GetPermissions test still uses "enum" keyword
- [RIVER-320] -
Prebuilt hello example certificates have expired - need to provide new ones
- [RIVER-324] -
Under certain circumstances, the ServiceDiscoveryManager internal LookupCache
implementation can incorrectly process attribute change events before the
lookup snapshot is processed.
Improvement
- [RIVER-7] -
org.apache.river.tool.ClassDep should be smarter with outer classes
- [RIVER-9] -
PreferredClassLoader should try to avoid making a direct check against the
first URL
- [RIVER-25] -
Improve logging for JoinManager at INFO and WARNING level
- [RIVER-115] -
Multiple jar files with conflicting lists need facilities to map the chosen
preferred value
- [RIVER-116] -
Multiple jar files with conflicting lists need facilities to map the chosen
preferred value
- [RIVER-160] -
add TrustEquivalence to browser's list of uninterestingInterfaces
- [RIVER-201] -
Show interfaces rather than classes in browser's Matching Services pane.
- [RIVER-206] -
Change default load factors from 3 to 1
- [RIVER-210] -
Browser should cancel event lease on exit
- [RIVER-220] -
LookupLocatorDiscovery catch Throwable blocks should also catch Throwable
- [RIVER-226] -
LLD: consider delaying the queuing of a discovery request immediately after a
discard
- [RIVER-229] -
reduce number of Reaper threads created by ConnectionManager
- [RIVER-231] -
ComputeHttpmdCodebase man page could be clarified with respect to algorithm used
- [RIVER-233] -
ComputeDigest instructions reference sha and sha1
- [RIVER-243] -
JarWrapper javadoc could be clearer wrt to classpath manifests
- [RIVER-244] -
Text area below menu bar in ServiceBrowser should not be editable
- [RIVER-246] -
Consider adding shutdown hook so Reggie sends final multicast packet if its VM
is terminated
- [RIVER-247] -
Destroy processing should use configurable duration and interval for unexporting
- [RIVER-256] -
Outrigger catch Throwable blocks should also catch Throwable
- [RIVER-262] -
ServiceUI Specification
- [RIVER-270] -
tar tasks in release* ant targets fail due to 100-char limitation and are
disabled
- [RIVER-285] -
LookupDiscoveryManager has unused variable declarations
New Feature
- [RIVER-151] -
ClassDep should have a method to determine if problems occurred
- [RIVER-161] -
Coalesce jars from multiple source dirs while retain current Manifest Classpath
semantics
- [RIVER-163] -
ClassDep doesn't pick up annotation or type parameter dependencies
- [RIVER-292] -
The service browser should provide support for the ServiceUI support
- [RIVER-295] -
Support configurable option to prevent from popup windows that require a
confirmation by the user
Task
- [RIVER-294] -
Remove http://svn.apache.org/repos/asf/incubator/river/trunk/ from the SVN
repository
Test
- [RIVER-291] -
Cannot build QA tests using the supplied make files
Changes made since JTSK v2.1
Bug
- [RIVER-211] -
source files for ServiceItem, ServiceMatches, and ServiceTemplate do not match
binary distribution
- [RIVER-269] -
build reports problem with javadoc generation on Windows
Task
- [RIVER-263] -
Remove outrigger logstore sources and build support
- [RIVER-264] -
integrate serviceui sources into jtsk trunk
- [RIVER-266] -
update build and source code for name, version number, ...
- [RIVER-267] -
Documentation update in release
Release notes from the Jini Technology Starter Kit v2.1
Changes by Component, updated for River v2.1.2
Services
Utilities
Tools
Other
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.