| 1 |
JCCL Release Notes |
|---|
| 2 |
------------------ |
|---|
| 3 |
|
|---|
| 4 |
For all versions: |
|---|
| 5 |
|
|---|
| 6 |
- See the ChangeLog for more system-level changes that do not directly |
|---|
| 7 |
affect applications. |
|---|
| 8 |
- See the Known Bugs page on the VR Juggler website (www.vrjuggler.org) |
|---|
| 9 |
for the current list of bugs. |
|---|
| 10 |
|
|---|
| 11 |
=============================================================================== |
|---|
| 12 |
|
|---|
| 13 |
Version: 1.0.0 |
|---|
| 14 |
Released: July 5, 2005 |
|---|
| 15 |
New in this release: |
|---|
| 16 |
* Support for Windows XP x64 Edition. |
|---|
| 17 |
|
|---|
| 18 |
Version: 1.0 Beta 3 |
|---|
| 19 |
Released: June 7, 2005 |
|---|
| 20 |
|
|---|
| 21 |
The methods jccl::ConfigDefinition::assertValid(), |
|---|
| 22 |
jccl::ConfigElement::assertValid(), and |
|---|
| 23 |
jccl::PropertyDefinition::assertValid() have been removed. |
|---|
| 24 |
|
|---|
| 25 |
Version: 0.18.0 |
|---|
| 26 |
Released: September 17, 2004 |
|---|
| 27 |
|
|---|
| 28 |
The config definition file format is now at version 3.1. To update |
|---|
| 29 |
from version 3.0, use the transform code in the file |
|---|
| 30 |
tools/xmlupdate/jdef_3.0-3.1.xsl. Updating to version 3.1 is required |
|---|
| 31 |
for .jdef files to be loaded by the C++ and the Java code. |
|---|
| 32 |
|
|---|
| 33 |
Version: 0.2.0 |
|---|
| 34 |
Released: May 23, 2002 |
|---|
| 35 |
|
|---|
| 36 |
Major refactoring and re-writing of file-handling code in both the Java |
|---|
| 37 |
and the C++ aspects of JCCL has occurred. The following describes the |
|---|
| 38 |
changes and explains what must be done to update from all previous |
|---|
| 39 |
versions. |
|---|
| 40 |
|
|---|
| 41 |
JCCL now uses CppDOM for C++ XML handling and JDOM for Java XML. There |
|---|
| 42 |
are several aspects to this major change to JCCL: |
|---|
| 43 |
|
|---|
| 44 |
1. Config file format update |
|---|
| 45 |
2. API change |
|---|
| 46 |
3. Code simplification |
|---|
| 47 |
4. VjControl internal semantic differences |
|---|
| 48 |
|
|---|
| 49 |
The build documentation in juggler/INSTALL.{txt,html} has been |
|---|
| 50 |
updated to explain the requirements and how to configure the build. |
|---|
| 51 |
|
|---|
| 52 |
Config File Format |
|---|
| 53 |
------------------ |
|---|
| 54 |
|
|---|
| 55 |
The config files now require *no* user-level parsing. This is an |
|---|
| 56 |
important change because it allows us to provide a much smoother |
|---|
| 57 |
upgrade path for future changes to the basic file format and to the |
|---|
| 58 |
structure of individual chunks. We can now use XSLT to transform |
|---|
| 59 |
config files with a stylesheet, thereby upgrading them. All of the |
|---|
| 60 |
sample configuration files have been updated to use the new format. |
|---|
| 61 |
|
|---|
| 62 |
Updating Existing XML Config Files |
|---|
| 63 |
---------------------------------- |
|---|
| 64 |
|
|---|
| 65 |
If you have custom XML-based config files that you want to update to |
|---|
| 66 |
the new changes, a Python script is available under tools/xmlupdate |
|---|
| 67 |
that will do the job. Please refer to the README.txt in that |
|---|
| 68 |
directory for details. At this time, the script only updates config |
|---|
| 69 |
chunk files, not chunk descriptions. |
|---|
| 70 |
|
|---|
| 71 |
Even after running the Python script and making hand modifications, it |
|---|
| 72 |
is recommended that config files be loaded and saved with the new |
|---|
| 73 |
VjControl. You'll need to open each chunk individually (including |
|---|
| 74 |
embedded chunks) and click the "OK" button to commit any in-memory |
|---|
| 75 |
modifications. The main reason this is necessary is because |
|---|
| 76 |
enumerations are not yet fully supported the way they had been. Right |
|---|
| 77 |
now, the enumeration value is written to the config file instead of the |
|---|
| 78 |
symbolic name. This will be fixed in the future. |
|---|
| 79 |
|
|---|
| 80 |
API Change |
|---|
| 81 |
---------- |
|---|
| 82 |
|
|---|
| 83 |
As part of this major change to JCCL, the jccl::ConfigChunk API has |
|---|
| 84 |
changed slightly. The deprecated method jccl::ConfigChunk::getType() |
|---|
| 85 |
has finally been removed in favor of jccl::ConfigChunk::getDescToken(). |
|---|
| 86 |
If you get a compile failure because getType() is undefined, change |
|---|
| 87 |
the code to use getDescToken(). |
|---|
| 88 |
|
|---|
| 89 |
A more interesting change it that the getProperty() method now takes a |
|---|
| 90 |
template parameter. For example, previous code would have looked like |
|---|
| 91 |
this: |
|---|
| 92 |
|
|---|
| 93 |
std::string prop_val = (std::string) chunk->getProperty("thingy"); |
|---|
| 94 |
|
|---|
| 95 |
OR |
|---|
| 96 |
|
|---|
| 97 |
std::string prop_val = static_cast<std::string>(chunk->getProperty("thingy")); |
|---|
| 98 |
|
|---|
| 99 |
The same functionality is now realized as: |
|---|
| 100 |
|
|---|
| 101 |
std::string prop_val = chunk->getProperty<std::string>("thingy"); |
|---|
| 102 |
|
|---|
| 103 |
The template parameter can be anything, but the most familiar types |
|---|
| 104 |
will be among the following: |
|---|
| 105 |
|
|---|
| 106 |
* int, unsigned int, long, short, etc. |
|---|
| 107 |
* bool |
|---|
| 108 |
* float |
|---|
| 109 |
* std::string |
|---|
| 110 |
* jccl::ConfigChunkPtr |
|---|
| 111 |
|
|---|
| 112 |
*** IMPORTANT NOTE: If you have any code that uses getProperty("name"), |
|---|
| 113 |
you must change it to use getName() instead. "name" has not a property |
|---|
| 114 |
of a chunk since the original conversion to XML. Code that uses |
|---|
| 115 |
getProperty("name") will cause an assertion failure. |
|---|
| 116 |
|
|---|
| 117 |
Version: 0.0.1 (dev build) |
|---|
| 118 |
Started: September 5, 2001 |
|---|
| 119 |
|
|---|
| 120 |
Separated JCCL (Juggler Configuration and Control Library) from the |
|---|
| 121 |
VR Juggler core. It includes the following basic features: |
|---|
| 122 |
|
|---|
| 123 |
* Configuration file system, using XML-based data files that are |
|---|
| 124 |
parsed into ConfigChunks and ChunkDescs. |
|---|
| 125 |
|
|---|
| 126 |
* The Jackal Server, which can be added to an appliation to provide |
|---|
| 127 |
network-based monitoring and reconfiguration. |
|---|
| 128 |
|
|---|
| 129 |
* VjControl, client application for the Jackal Server. VjControl is |
|---|
| 130 |
an extensible, componentized Java application. |
|---|
| 131 |
|
|---|
| 132 |
* Dynamic reconfiguration support code, imported from VR Juggler |
|---|
| 133 |
Kernel, which allows the Jackal Server to reconfigure a running |
|---|
| 134 |
application in response to commands from VjControl. |
|---|
| 135 |
|
|---|
| 136 |
* Performance measurement library, which allows applications to |
|---|
| 137 |
timestamp parts of their source code. The Jackal Server can |
|---|
| 138 |
write performance measurement information to a log file or send |
|---|
| 139 |
it across the network to VjControl. |
|---|
| 140 |
|
|---|
| 141 |
JCCL has the following external dependencies: |
|---|
| 142 |
|
|---|
| 143 |
* VPR (VR Juggler Portable Runtime) version 0.4. See |
|---|
| 144 |
www.vrjuggler.org for information. |
|---|
| 145 |
|
|---|
| 146 |
* CppDOM. See www.sourceforge.net/projects/xml-cppdom for |
|---|
| 147 |
information. |
|---|
| 148 |
|
|---|
| 149 |
* Java Development Kit 1.2 or better. See java.sun.com. |
|---|
| 150 |
|
|---|
| 151 |
* JDOM. See www.jdom.org |
|---|
| 152 |
|
|---|
| 153 |
=============================================================================== |
|---|