SNMP4J-SMI-PRO CHANGES ====================== [2023-08-07] Version 1.10.0 (Requires SNMP4J 3.7.7 or later) * Fixed: SmiManager will prefer newer modules according to the LAST-UPDATED clause of the MODULE-INFO statement if for the same MIB module name there are several MIB files in the compilation list/path. OverwriteIfNewer now will prefer SMIv2 modules as newer over SMIv1 modules (without LAST-UPDATED clause) and SMIv1 modules will always be overwritten by newly compiled MIB modules. * Updated: The directory "mibrepository" now contains a completely updated set of compiled RFC MIB modules. If you have modified (i.e., added compiled MIB modules to a previous copy of this directory), then you will need to redo this operation(s) with the new directory, because MIB module IDs of the compiled modules might otherwise not be unique. * Updated: Dependency to SNMP4J 3.7.7. [2023-03-20] Version 1.9.17 (Requires SNMP4J 3.7.7 or later) * Updated: Dependency to SNMP4J 3.7.7. [2023-01-16] Version 1.9.16 (Requires SNMP4J 3.7.4 or later) * Updated: Dependency to SNMP4J 3.7.4. * Improved: Full release compatibility with Java 8 (e.g. when using this API with SNMP4J 2.8.14) [2022-05-16] Version 1.9.15 (Requires SNMP4J 3.7.0 or later) * Updated: Dependency to SNMP4J 3.7.0. * Updated: SnmpWalk example. [2021-11-20] Version 1.9.14 (Requires SNMP4J 3.6.1 or later) * Added: SmiManager.findSmiObjectType to find an OBJECT-TYPE definition for a specified instance OID like "ifAdminStatus.65000". * Fixed: Possible NPE when creating SmiManager with empty repository directory. * Improved: JavaDoc. * Updated SNMP4J dependency to 3.6.1 (or later). [2020-11-30] Version 1.9.13 (Requires SNMP4J 3.4.4 or later) * Updated SNMP4J dependency to 3.4.4. [2020-10-12] Version 1.9.12 (Requires SNMP4J 3.4.3 or later) * Updated SNMP4J dependency to 3.4.3. [2020-06-28] Version 1.9.11 (Requires SNMP4J 3.4.2 or later) * Updated SNMP4J dependency to 3.4.2. [2020-01-10] Version 1.9.10 (Requires SNMP4J 3.1.0 or later) * Fixed [SFJ-215]: NullPointerException is thrown by SmiManager$SmiNotificationTypeImpl.getObjectNames() if NOTIFICATION-TYPE (or TRAP-TYPE) has no objects. [2019-05-14] Version 1.9.9 (Requires SNMP4J 3.1.0 or later) * Fixed [SFJ-203]: SNMP4J-SMI-PRO does not correctly load MIB modules with compliance modules correctly when the MIB module was saved with SNMP4J-SMI-PRO 1.9.6 or earlier and if the Java runtime differs (version and/or platform). In the failing case, exception and conditional group clauses are 'null' or empty and do not provided the saved content. * Improved: Small performance improvements to SMI output. [2019-04-20] Version 1.9.8 (Requires SNMP4J 3.1.0 or later) * Bumped SNMP4J dependency to 3.0.1. * Changed: Compiled for Java 9. * Improved: JavaDoc [2018-09-24] Version 1.9.7 (Requires SNMP4J 3.0.1 or later) * Updated SNMP4J dependency to 3.0.1. [2018-01-22] Version 1.9.6 (Requires SNMP4J 2.5.11 or later) * Internal refactoring. [2018-01-19] Version 1.9.5 (Requires SNMP4J 2.5.11 or later) * Fixed [SFJ-163]: SmiManager.findSmiObject(String moduleName, SmiObjectFilter filter) does not use specified moduleName. * Added: SmiManager.SmiModule.getObjectIdentifiers(OIDOrder) returns all object identifiers of a loaded MIB module. * Added: OIDComparator class to compare OIDs in depth-first-or breadth-first-order. * Improved: SmiModule extends SmiObject interface. [2017-12-11] Version 1.9.4 (Requires SNMP4J 2.5.8 or later) * Added: SmiModule.getSmiModuleDefinition() returns the complete SMIv1/v2 specification text as a string. [2017-10-20] Version 1.9.3 (Requires SNMP4J 2.5.8 or later) * Improved: Simplified Maven dependencies. [2017-09-14] Version 1.9.2 (Requires SNMP4J 2.5.8 or later) * Fixed: Changed classifier of JAR with dependencies from 'jar-with-dep' to the standard classifier 'jar-with-dependencies'. [2017-08-12] Version 1.9.1 (Requires SNMP4J 2.5.6 or later) * Fixed [SFJ-144]: MIB compiler does not check if an object is accessible in NOTIFICATION-TYPE's OBJECTS clause. * Fixed [SFJ-146]: SNMP4J-SMI allows empty BITS construct in SYNTAX clauses although this is not allowed by RFC 2578. [2017-04-12] Version 1.9.0 (Requires SNMP4J 2.5.6 or later) * Added [SFJ-142]: Unloading MIB module including its dependencies otherwise unused with SmiManager.unloadModuleWithDependencies(..). * Added: SmiManager.getExplicitlyLoadedModules() to return a list of modules that have been loaded directly (and not indicrectly by resolving import dependencies. * Updated: SNMP4J to 2.5.6. [2016-05-07] Version 1.8.0 (Requires SNMP4J 2.5.0 or later) * Changed: Replaced SmiMaxAccess by MaxAccess from SNMP4J 2.5.0. * Added: SubIndexInfo dependency from SNMP4J 2.5.0. * Added: SmiErrorInfo interface to allow more flexible error reporting. * Added: Support for NameAndNumber OID format. * Added: Error checking for negative ranges for unsigned numeric values. * Fixed: Possible in rare cases: NPE when checking sequence constructs in the SMI parser (strict checking only). * Fixed: Possible in rare cases: NPE when checking import constructs in the SMI parser (strict checking only). [2015-07-07] Version 1.7.0 (Requires SNMP4J 2.3.3 or later) * Fixed [SFJ-111]: For trap and notification types the VARIABLES and OBJECTS clauses cannot be evaluated. A new interface SmiNotificationType has been added for that. * Added: SmiManager.findSmiObject by module and object name with (optionally) including imported MIB modules of the specified module in the search. * Added: Interfaces and implementations in SmiManager to access attributes of MODULE-COMPLIANCE and AGENT-CAPABILITIES statements. [2015-03-12] Version 1.6.0 (Requires SNMP4J 2.3.3 or later) * Fixed [SFJ-102]: BITS syntax cannot be used in SMIv1 as textual convention. * Added [SFJ-101]: SmiManager.findSmiObject by OID and provide filename of the MIB module an object belongs too. [2014-10-18] Version 1.5.2 (Requires SNMP4J 2.3.0 or later) * Fixed: Index object parsing from String of IpAddress values. * Added: Added SNMP-TLS-TM-MIB to mib repository. * Added: SmiManager.getIndexStringFromVariables(..) method. * Fixed: SmiObject.getParent did not return correct object type. * Fixed: SmiManager.getIndexVariables did not take the entry object (instead a column object). * Fixed: SmiTextualConvention.getDisplayHint returned display hint text enclosed in double quotes. * Improved: System.lineSeparator dependency (Java 6 SE is now supported too). [2014-08-05] Version 1.5.1 (Requires SNMP4J 2.3.0 or later) * Fixed: File handle leak when using the SmiManager.compile(File[]...) method. * Fixed: NPE in PIB module parsing. * Added: SmiCompiler.dryModeWithoutErrorLimit to get all errors of a MIB module regardless of any globally set limit. * Fixed: Duplicate module names in SmiManager.listModules if repository listener were not added/removed properly. [2014-07-26] Version 1.5.0 (Requires SNMP4J 2.3.0 or later) * Fixed: False error messages about missing imports or unresolved syntaxes could have been generated by the MIB compiler if a MIB file had several errors affecting the MIB structure. * Improved: Error location of DEFVAL and other unresolved references. * Added: Full SPPI PIB module checking now available with additional error messages 6001-6007. [2014-06-30] Version 1.4.2 (Requires SNMP4J 2.3.0 or later) * Fixed: If a MIB module had exactly one syntax error, an empty error list could have been returned to the caller of SmiManager.compile(..). [2014-06-23] Version 1.4.1 (Requires SNMP4J 2.3.0 or later) * Improved: Lenient mode parsing of SMIv2 MIB modules without mandatory MODULE-IDENTITY construct. [2014-06-19] Version 1.4.0 (Requires SNMP4J 2.3.0 or later) * Fixed: Lexical errors are reported with line, column and position (not only in line and column in message). * Added: End position and end row & column of an SmiError. * Fixed: Lenient compiler mode accepted too much errors in MIB files resulting in compiled MIB modules with missing MIB information (e.g., empty SYNTAX), causing NullPointerExceptions if accessed unchecked. * Added: Short error message support which does not include error number and location. * Improved: ZIP-File support for CompilationResult. * Added: New interface SmiCompiler and extended control about the compilation process and overwriting of MIB modules in the MIB repository. * Added: SmiObjectFilter.java and SmiManager.findSmiObject by filter method. [2014-05-18] Version 1.3.2 (Requires SNMP4J 2.3.0 or later) * Improved: Moved SmiSyntaxElementImpl and SmiSyntaxImpl outside SmiManager in order to be able to use SmiSyntax within JSF front end-code. * Fixed: Possible NPE in getMinValueLength and getMaxValueLength. * Added: SmiSyntaxType.java and resolved syntax support to seamlessly get syntax information from textual convention or SMIv1 type definitions. * Added: Method SmiObjectType.createNewVariable to create a new variable value for an object type. * Added: SmiObjectType.getDefaultValue and SmiObjectType.getDefaultVariable. [2014-03-27] Version 1.3.1 (Requires SNMP4J 2.2.5 or later) * Added: SmiObjectType.getMaxValueLength() and SmiObjectType.getMinValueLength() to determine the minimum and maximum length of a formatted value. * Fixed [SFJ-91]: Fixed SmiObjectType.getSmiSyntax() implementation returned wrong BER syntax identifier values. [2014-03-17] Version 1.3.0 (Requires SNMP4J 2.2.5 or later) * Added: Easy multi-language support for SmiError messages through ResourceBundles. See the sample ResourceBundle SampleSmiErrorResourceBundle.java in the examples directory of the * Added: SmiManager.setIncludeUnknownErrorsCause method to be able to forward exceptions in a custom RepositoryDriver to the caller of the compile methods as "unknown" SmiErrors. [2014-03-03] Version 1.2.4 (Requires SNMP4J 2.2.5) * Fixed: Race condition in SmiManager when accessing many different MIB modules concurrently from multiple threads. [2014-02-18] Version 1.2.3 (Requires SNMP4J 2.2.5) * Fixed: Regression in SmiManager.listModules which did not return a value if called on a SmiManager without a RepositoryDriver. * Improved: SmiObject.getChildren now returns a list of SmiObjects or its subclasses. This allows API users to wrap the SmiObject class in their own subclasses. [2014-02-14] Version 1.2.2 (Requires SNMP4J 2.2.5) * Fixed: NullPointerException when calling SmiManger.listModules with the MemRepositoryDriver. * Improved: The compile method now uses the lenient SMI compiler mode to determine module dependencies which improves sorting for MIB modules with syntax errors. [2014-02-11] Version 1.2.1 (Requires SNMP4J 2.2.5) * Initial SNMP4J-SMI-PRO release with four new (additional) SmiManager.find* methods which provide direct access to any SMIv1/v2 information (except compliance modules and agent-capabilities statements). The SNMP4J-SMI-PRO license is a site license in contrast to the user license SNMP4J-SMI. CHANGES since SNMP4J-SMI 1.1.2: * Fixed: NullPointerException in SmiManager.compile with some special syntax errors, for example if a lowercase name exceeds 64 characters. * Improved: Lenient parser mode now also accepts inconsistent syntax (i.e. between table entry and column definition) and the underscore ("_") character in lowercase names.