Mibble Version Information
Version 2.5 (2004-10-26):
-
Added SNMPv2c & SNMPv3 to the MIB browser
The MIB browser application has been updated in a
variety of ways, adding support for SNMPv2c & SNMPv3,
command-line MIB loading and improved tree walking. The
graphical interface has also been totally reworked so it
should now both look better and provide more visual feedback.
The browser is now also available in the commercial version.
Bug #10732 & Bug #10748
-
Added support for multiple MIB modules in a single file
The library now supports loading multiple MIB modules
from a single file, as required per the ASN.1 standard. It
is still strongly recommended to place each MIB module in its
own file however. Thanks to Frank Fock for reporting this.
Bug #10261
-
Added new base class for SNMP macro types
Added a new SnmpType class as a new base
class for all the SNMP macro types. So far the API it
provides is rather minimal, but it makes it easier to
distinguish between ASN.1 types and SNMP macro types. Thanks
to Thomas Åhlén for suggesting this.
Bug #10731
-
Added new convenience methods to some classes
The MibValueSymbol,
ObjectIdentifierValue and SnmpAccess
classes in the Mibble API have been improved by the addition
of new methods. This will facilitate some searches or tests
that could previously be a bit cumbersome to write.
Bug #10634
-
Added OID tree printing to MibblePrinter
The MibblePrinter test application has been
extended to allow several input files and now also contains an
option to print the complete OID tree. Thanks to Thomas Åhlén
for the original idea. Bug #10651
-
Changed semantics of getDescription() method
The getDescription() method has been
changed to return a cleaner version of the description text.
All unneeded indentation is removed and tab characters are
now replaced with spaces. The old semantics is available from
the new getUnformattedDescription() method.
Bug #10790
-
Changed the location of the bundled MIB files
The MIB files bundled with Mibble have been moved to
a separate JAR-file. This makes it easier to replace, update
or remove them without modifying other parts of Mibble. As a
result of this, the parser JAR-file has also been renamed.
Bug #10648
-
Changed the bundled MIB file content
The MIB files bundled with Mibble have been updated.
Many new IANA and IETF MIB files have been added and quite a
few existing MIBs have been modified to the corresponding
latest version. Thanks to Thomas Åhlén for pointing this out.
Bug #10647
-
Fixed issue with OIDs not being merged properly
The OID tree was previously missing child components
(symbols) in some cases. This could occur when the same OID
was defined in two MIB files, something commonly used to
avoid circular imports. Now all the OIDs are properly merged
to any depth, making sure that none are ignored. Thanks to
Thomas Åhlén for finding this. Bug #9962
-
Fixed issue with MIBs being loaded as often as imported
Previously it was possible that some base MIBs, that
were used in several places, got loaded several times by the
MibLoader. This didn't affect the correctness of
the results, but wasted time and memory. The MibLoader has
now been corrected to avoid this and therefore loads many MIB
files faster. Bug #10673
-
Fixed OID searching in Mib.getSymbolByOid()
The Mib.getSymbolByOid() method handled OIDs with table
indices erroneously due to a conceptual error. This has now
been corrected, but has unfortunately led to a slight API
change, removing the exactMatch parameter in the method call.
Bug #10765
-
Fixed documentation terminology and feature list
Various pieces of documentation previously used the
wrong terminology for SMIv1 and SMIv2, which has now been
corrected. Also, the feature list has been updated to be a
bit more informative, although documentation will primarily
be added to the website from now on. Thanks to David T.
Perkins and Frank Fock for pointing out these shortcomings.
Bug #10170 & Bug #10262
Version 2.4 (2004-05-27):
-
Relicensed to GNU GPL
Most of the source code has been relicensed to GNU GPL,
removing the previous linking exception. As an alternative to
using the GNU GPL license, a non-exclusive commercial license
for Mibble can be purchased. A FAQ explaining the implications
of this is available on the Mibble web site.
-
Added simpler OID to symbol lookup
A new method getSymbolByOid has been added
to the Mib class to simplify the lookup of
symbols from OIDs. This method handles table row number inside
OIDs, that the getSymbolByValue method couldn't
handle. Bug #9117
-
Changed MIB loader to search inside files
If the MibLoader fails to locate a MIB file
based on its name, it will now resort to read the first few
lines from all files in the search path until a matching MIB
name is found. Opening many files may be a potential
performance bottleneck, so it is still recommended best
practice to name MIB files according to the MIB module name.
Bug #8862
-
Changed some symbol import errors to warnings
Missing imports for symbols where the other symbols are
imported from the right MIB is no longer an error. A recovery
mechanism has been added searching for an undefined symbol in
all imported MIB files, issuing a warning instead of an error
if the symbol was found. Bug #8863
-
Changed to a simpler Ant build file
The build.xml file for Apache Ant
distributed with Mibble has been simplified. It now also
contains some documentation to make it easier to use.
Bug #9097
Version 2.3 (2004-03-10):
-
Added graphical MIB browser
A graphical MIB browser has been added that allows for
easy viewing of a MIB contents, while also sending SNMP
requests for objects. Many thanks to Watsh Rajneesh and HP
India for contributing the code. Thanks also to Charles F.
Schatz for providing an alternate implementation.
Bug #4366
-
Added shell scripts for launching utilities
Shell scripts for Unix and Windows have been added
for launching the Mibble utility programs. The original
scripts were contributed by Watsh Rajneesh.
Bug #6961
-
Added API for loading MIBs from more sources
Added new addResourceDir() method to the
MibLoader class, allowing usage of the Java ClassLoader for
locating and loading MIB files. Also, new
load(URL) and load(Reader) methods
has been added to simplify loading MIBs from other sources.
The MibblePrinter and MibbleValidator programs have also been
extended to also support URLs. Thanks to Yun Freund for
suggesting this. Bug #7746
-
Added support for unloading MIBs
Added new unload() methods to the MibLoader
class. It is now possible to remove references to a single MIB
without losing the references to all MIBs.
Bug #7616
-
Added method for retrieving all OID children
Added new getAllChildren() method to the
ObjectIdentifierValue class. This makes it easier to retrieve
all OID children at once. Bug #8046
-
Modified the API for MibLoader.load() slightly
The various load() methods in the MibLoader
class have had their API slightly modified. They are now
declared to throw IOException instead of the previous
FileNotFoundException in order to accomodate the new
load(URL) and load(Reader) methods.
Bug #7746
-
Modified OID child ordering
The ObjectIdentifierValue child ordering has been
changed from undefined to numerical order. The new
implementation is actually faster than the previous one, due
to more clever object comparison than previously used.
Bug #8090
-
Fixed issue with not always finding loaded MIBs
Previously when loading named MIBs, the search path was
first used to locate the MIB file. If the MIB file couldn't be
found in the path, an exception is thrown. The MibLoader has
now been extended to first check the loaded MIB names, thereby
making it possible to manually load MIB files not adhering to
the MIB file naming standard. Thanks to Zemian Deng for
pointing this out. Bug #6959
-
Fixed problem loading MIBs from current directory
When loading MIB files from the current directory with
the MibblePrinter or MibbleValidator application, the
directory wasn't correctly added to the MibLoader path. This
has now been fixed, so MIB imports now works correctly even
for file names without a directory portion.
Bug #6528
Version 2.2 (2003-11-03):
-
Added support for ASN1.1 type tags
All primitive type now have default ASN.1 type tags and
these may also be overridden by tags in the MIB files. New
methods isPrimitive() and getTag()
has been added to MibType. Thanks to Sudhir
Khurana for pointing this out. Bug #5001 &
Bug #5003
-
Added validation of sequence elements
Sequence element names previously weren't validated
against the containing MIB. This has now been changed so
that sequence elements inside an OBJECT TYPE will be looked
up in the MIB. If no symbol with that name could be found,
a new default symbol is created. Thanks to Charles F. Schatz
for finding and reporting this. Bug #5904
-
Added access to referenced type and value symbols
When resolving type and value references, the
referenced symbol name was previously lost and only the type
or value information was extracted. This has been fixed and
new convenience methods isReferenceTo() in the
MibType and MibValue classes have been added. Thanks to
Charles F. Schatz for suggesting this.
Bug #6112
-
Added a number of missing accessor methods
Several primitive types lacked accessor methods for
retrieving the constraints, defined values and similar. The
MIB symbols lacked a getMib() method. These accessor methods
have now been added. Bug #5007
-
Changed the logging API
The logging API was simplified by removal of the log
printing classes. The same functionality is now present
directly in the MibLoaderLog class. A new method
entries() allows direct retrieval of all log
entries from the log, providing a more generic approach than
the previous one. Bug #6116
-
Improved Javadoc API documentation
The Javadoc API documentation has been generally
improved in various places. References to appropriate RFC
documents have been added along with initial package
overviews. Bug #6155
-
Updated to version 1.4 of Grammatica
The Grammatica library distributed with Mibble has been
updated to version 1.4 (from 1.3). The build file has been
simplified as a result of this. Bug #5000
-
Removed some previously public methods
A number of internal methods were previously public
although there was no need for them to be. This has been
fixed by making them private or package protected. Code that
called these methods should be modified to use the correct
public counterparts.
Version 2.1 (2003-08-22):
-
Corrected MIB symbol value search
Searching for MIB symbols by value never returned any
results in the previous version. Thanks to Nigel Mellor for
finding and fixing this. Bug #4893
-
Updated to version 1.3 of Grammatica
The Grammatica library distributed with Mibble has been
updated to version 1.3 (from 1.2). Minor changes have been
made to the parser to accomodate this.
Bug #4903
Version 2.0 (2003-07-19):
-
Complete rewrite with API and name change
The project has been renamed to Mibble, and the library
has been completely rewritten from scratch. The API:s have
also been replaced to correct a number of serious flaws in
the previous design.
-
Added complete support for SNMPv2 and SNMPv3
All types and constructs in SNMPv2 and SNMPv3 are now
supported.
-
Added a real MIB import mechanism
Symbol imports are now handled by reading and parsing
the MIB file. Standard IANA and IETF MIB files have been
added to the JAR library, in order to always have these
imports available.
-
Added full access to all type information
All of the type information can now be easily accessed
through methods in the type classes.
-
Added syntactical and semantical error recovery
The MIB parser now attempts to recover from errors in
the MIB file. All encountered errors are available after the
parsing is complete. This change was made available by using
Grammatica instead of JavaCC to generate the parser.
-
Added warnings for wrong identifier case
A warning is now issued if the first character in a
type identifier is lower-case, or if the first character in a
value identifier is upper-case.
-
Added HTML release notes
The release notes are now generated to both text and
HTML format from an XML representation.
-
Changed parser generator to Grammatica
The JavaCC parser generator has been replaced with
Grammatica. This was done as JavaCC isn't free software, and
Grammatica was chosen as it provides a simple grammar syntax,
a decent parsing and analysis framework, and very high
quality error handling.
-
Removed the old symbol tree model
The symbol tree model has been removed as it was not
compatible with the new API:s.
Version 1.2 (2003-03-27):
-
Relicensing to GPL + linking exception
Relicensed all the source code to GPL plus a linking
exception. See the new LICENSE.txt file for details.
-
Removed JavaCC requirement from Ant build file
Removed the strict dependency of JavaCC from Ant build
file (build.xml). The JavaCC parser generator will be replaced
in a future version of the library.
Version 1.1 (2003-01-06):
-
Updated MIB syntax to SNMPv2
The MIB file parser can now handle several new macros,
such as MODULE-IDENITY, OBJECT-IDENTITY, NOTIFICATION-TYPE,
OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE and the
improved OBJECT-TYPE macro (as of SNMPv2).
-
Updated MIB syntax with textual conventions
The MIB file parser can now handle the
TEXTUAL-CONVENTION macro type.
-
API changes breaking backwards compability
The MIB class was renamed to Mib and several new
methods were added to allow easy access to the information
in the MIB file. Some old methods were also renamed to better
match the new methods.
-
Improved code style
All the source code has been reindented to use four (4)
spaces, and various minor code style improvements have been
made in the source tree.
-
Improved API documentation
The API documentation has been somewhat improved by
adding package descriptions and improving the class
comments.
-
Added MIB example code
An example class has been added to demonstrate how the
library can be used.
-
Added initial test cases
Some initial test cases have been added, making
regression testing easier. Much work is still missing on the
test cases, though.
Version 1.0 (2002-08-14):
-
First public release
The first public release of this library.