Changelog nsx-runtime

Filter x

2022.3.0 (2022-08-30)

Added

  • Added nsx-runtime-libraries expansion-resource. This expansion-resource defines the libraries of nsx-runtime, which were previously defined in prime-data. With this setup, the nsx-runtime version can be updated directly in nsx-default-stack without the need to update prime-data.
  • Added method CrudsResult<T>.getValueOrElseGet(Supplier<T>) to get the value of the result in case of success or the result value of the provided supplier in case of an error.
  • Exception net.democritus.sys.NoValueOnErrorException, which is thrown when calling getValue() on a cruds error result.
  • Added hamcrest 2.2 as additional dependency alongside hamcrest 1.3 for nsx-shared-testing.

Changed

  • Updated SLF4J to version 2.0.0.
  • Updated Hamcrest to version 2.2 in nsx-shared-testing where the artifactId also changed from hamcrest-all to hamcrest.

Moved

The following classes have been moved to workflow-shared-common:

  • net.democritus.claims.BatchRequest
  • net.democritus.claims.ReleaseRequest
  • net.democritus.claims.ClaimCleaner
  • net.democritus.claims.ClaimCleanerFactory
  • net.democritus.claims.ClaimId
  • net.democritus.state.NOPStateRecoverer
  • net.democritus.state.StateRecoverer
  • net.democritus.state.StateRecovererFactory
  • net.democritus.state.StateTransitioner
  • net.democritus.state.StateTransitionerFactory
  • net.democritus.state.StateUpdate
  • net.democritus.state.StateViewer
  • net.democritus.state.StateViewerFactory
  • net.democritus.state.TaskInterruptStateRecoverer
  • net.democritus.state.TaskUpdate
  • net.democritus.sys.workflow.FlowParameterContext
  • net.democritus.sys.workflow.FlowProcessingContext
  • net.democritus.sys.workflow.RunId
  • net.democritus.sys.workflow.TaskParameterContext
  • net.democritus.sys.workflow.TaskProcessingContext
  • net.democritus.sys.FlowOrchestrator
  • net.democritus.sys.FlowResult
  • net.democritus.sys.TaskExecutor
  • net.democritus.sys.TaskPerformer
  • net.democritus.sys.TaskPerformerByDataRef
  • net.democritus.wfe.BatchProcessingContext
  • net.democritus.wfe.EngineServiceProcessingContext

In addition to this, 2 methods of the QueryParameter class have been moved to ClaimQueryParameter in workflow-shared-jpa:

  • static QueryParameter createClaimExistsParameter(@NotNull String claimQualifiedName, @NotNull ElementRef element, @NotNull ClaimId claimId)
  • static QueryParameter createClaimDoesNotExistParameter(@NotNull String claimQualifiedName, @NotNull ElementRef element, @NotNull ClaimId claimId)

Removed

These classes have been removed, since they were no longer used:

  • net.democritus.connector.ExternalRef
  • net.democritus.sys.AnchorResult
  • net.democritus.sys.BeanId

2022.2.0 (2022-08-18)

Reverted

  • Removed null-check in Options#some(value). This is to prevent unexpected issues in existing applications, but some(null) is not a valid use-case.

Changed

  • Marked classes as deprecated:
    • nsx-shared-common:
      • net.democritus.support.FinderSupport: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
      • net.democritus.support.Paging: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
      • net.democritus.sys.DataRefNode: No longer in use.
      • net.democritus.sys.IconRef: No longer in use.
      • net.democritus.sys.PageMask: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
      • net.democritus.sys.SearchDataRef: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
      • net.democritus.sys.SearchDef: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
      • net.democritus.sys.SearchMask: Used by old expanded code that is now only expandable using legacy.searchDataRefMethods.reenable.
  • Updated FinderSupport.getSearchKey to support transition away from java.util.Vector.

2022.1.0 (2022-07-28)

Changed

  • Updated 3rd party dependencies:
    • Libraries:
      • com.opencsv:opencsv: 4.6 -> 5.6
      • commons-cli: 1.4 -> 1.5.6
    • Maven plugins:
      • org.apache.maven.plugins:maven-compiler-plugin: 3.8.1 -> 3.10.1
      • org.apache.maven.plugins:maven-javadoc-plugin: 3.3.0 -> 3.4.0
      • org.apache.maven.plugins:maven-project-info-reports-plugin: 3.1.2 -> 3.4.0
      • org.apache.maven.plugins:maven-surefire-plugin: 2.22.2 -> 3.0.0-M7
      • org.apache.maven.plugins:maven-site-plugin: 3.9.1 -> 3.12.0
      • org.codehaus.mojo:flatten-maven-plugin: 1.1.0 -> 1.2.7
      • org.codehaus.mojo:versions-maven-plugin: 2.8.1 -> 2.11.0
      • org.jacoco:jacoco-maven-plugin: 0.8.2 -> 0.8.8
      • org.sonarsource.scanner.maven:jacoco-maven-plugin: 3.7.0.1746 -> 3.9.1.2184

2022.0.2 (2022-05-03)

Fixed

  • Made ClaimId serializable
  • Added error log when recovery state transitioning failed

2022.0.1 (2022-04-27)

Reverted

  • Reverted deprecation of JPAQueryBuilder#setUseIdInSort(), since it was used in several projects for performance

Added

  • Implemented toString() method of ElementOption

2022.0.0 (2022-02-17)

Added

  • Added QueryParameter implementation for IN operator with DataRefs
  • ProcessRunner: added shutdownHook to attempt to auto-terminate launched processes

Removed

  • Internal cleanup
    • Removed classes: FileInserter, ReportFile, SimpleHtmlFormat (for removed ReportExpander)
    • Old cocoon artifacts (TreeNode)
    • Deprecated JndiProperties and removed its behavior as it pertains only to obsoleted external RMI invocation
    • Deprecated net.democritus.mapping.Base64 in favor of java.util.Base64

2021.3.4 (2021-12-14)

Added

  • [NSX-161] SearchDetails.getAllowCaching() and SearchDetails.setAllowCaching() to instruct the search operation to use a caching mechanism if available.

2021.3.3 (2021-11-25)

Added

  • Added DotVersion as any-number-of-dots alternative to semver Version
  • Added basic setup for maven site documentation

Changed

  • ProcessRunner’s stdout and stderr can now be redirected independently

Fixed

  • Fixed ZipArchive not preserving timestamps on unzipping

2021.3.2 (2021-09-23)

Fixed

  • Fixed Result class returning a null value on error. Instead, it now throws an exception if the getValue() is called on an error result. Implementations should always check the isError() or isSuccess() method first.

2021.3.1 (2021-08-23)

Changed

  • Changed Context.getContext() typing to allow parameterized context groups

2021.3.0 (2021-08-12)

Added

  • [process] Added net.democritus:nsx-shared-process-experimental to simplify external command and shell invocations
    • experimental, API subject to change
  • [zip] Added net.democritus:nsx-shared-zip-experimental for routine Zip archive operations
    • experimental, API subject to change

2021.2.3 (2021-08-11)

Added

  • Added Serializable interface to the CompositeProjection and TreeProjection interfaces. Since Composites and Trees already implemented Serializable, this only has effect on polymorphic fields.

2021.2.2 (2021-07-09)

Reverted

  • QueryParameter#create* methods now return again QueryParameter instead of QueryConditionalExpression
    • if assigning the result, it should always be cast to QueryConditionalExpression
  • Reverted JPAQueryBuilder hiding its private methods and deprecated them for public use instead
    • the public API is the QueryBuilder interface

Fixed

  • SortField re-added no-arg constructor as it already has an arg-constructor

2021.2.1 (2021-07-08)

Reverted

  • Partially reverted DataRef#equals due to comparison issues in tests
    • do not use this method directly
    • return true only for the same identities, or when both id and name are equal
  • Reverted ApplicationMenuResolver#getApplicationMenu() signature (originally changed in v2021.0.0)
    • Marked the method as deprecated
  • Reverted QueryParameter not acting as a superclass anymore (originally changed in 2021.2.0), and deprecated its overridable methods
    • Instead of subclassing QueryParameter, implement QueryConditionalExpression directly.

2021.2.0 (2021-07-05)

Added

  • [jpa] Added support for null/not-null field operator pairs via QueryParameter#createIsNullParameter and QueryParameter#createIsNotNullParameter
  • [jpa] Providing empty list to createValueParameter will exclude the parameter (same as providing null or an empty string)
  • [presentation-struts2] Finders with noViewLayer are now excluded in UI 1.x (excluded from GetFindersForDataElementAction response)

Changed

  • [jpa] Refactoring of nsx-shared-jpa module
    • If a custom code was subclassing QueryParameter, it must be changed to directly implement QueryConditionalExpression interface
    • Deprecated JPAQueryBuilder#setUseIdInSort due to a lack of a clear use case

Fixed

  • Fixed AcyclicSubGraphFinder prematurely pruning branches [NSX-167]

2021.1.1 (2021-06-15)

Changed

  • DataRef#equals now compares by object identity, instead of attributes equality on fields and metadata
    • Do not use DataRef#equals for comparing different DataRefs.
    • Use DataRefValidation#equalsById for DataRef comparison.

2021.1.0 (2021-06-09)

Added

  • Added Options.Option#asOptional() to convert to java.util.Optional

Changed

  • Changed nsx-runtime target version to Java 8
    • for Java 7 legacy projects, use nsx-runtime v2020.x or older
  • Moved DataRef, DataRefValidation, and DataRefWithFunctionalKey to a new nsx-shared-ref module
    • nsx-shared-common now depends on this module
  • Moved @Nullable and @NotNull annotations to nsx-contract-annotations module

Deprecated

  • Deprecated direct DataRef constructors
    • prefer creation via DataRef#withId(Long) and DataRef#withIdAndName(Long, String)
  • Deprecated for removal all net.democritus.validation.IConverter subclasses
    • use IConverter instead
    • Expanders will no longer use them (see Expanders changelog)
  • Deprecated majority of classes and methods in nsx-common
    • This includes most of StringUtil and DirUtil (see the method javadocs for alternatives)
    • all stream-like classes (IMapper, CollectionUtil, …)
    • Some methods can still be un-deprecated if they are deemed valuable
    • There is currently no plan to remove the deprecated methods

Removed

  • Removed unnecessary dependencies from nsx-shared-cli to nsx-common and nsx-shared-common
  • Removed module nsx-common-java7 as it never ended up being used

Fixed

  • Fixed Options#some allowing null value to be represented as Some instead of throwing an exception
    • use Options#notNull when the value can be null
  • Fixed DataRef#equals when comparing null ids

2021.0.1 (2021-05-04)

Fixed

  • Fixed NullPointerException in DataRef.getDataRefLink() when the mId field in the DataRef object is null.
  • Fixed file name in DownloadAction contentDisposition not being encoded when using non-ASCII characters

2021.0.0 (2021-01-29)

Added

  • Added skipCount field to SearchDetails
  • Added Path-based overloads for DocumentReader/DocumentWriter
  • Improved support around NavigationMenu
    • added an extra default-complete fallback profile support – this profile will be generated by expanders
    • added XSDs for applicationMenu & componentMenu
    • improved error reporting and removed some error suppression

Fixed

  • Fixed DataRef#equals comparing identity of boxed types instead of their values

2020.11.2 (2021-01-08)

Updated

  • Updated struts to v2.5.26

2020.11.1 (2020-10-21)

Fixed

  • Fixed SemVer Version validation of preRelease & build to match the spec.

2020.11.0 (2020-10-09)

Updated

  • nsx-parent 2019.5 -> 2020.9.1

Added

  • Added @Documented annotation on @NotNull/@Nullable annotations

Deprecated

  • Deprecated all nsx-common stream-like classes (IPredicate, CollectionUtil, …)
    • for Java 8, use native streams
    • for Java 7, use nsx-common-java7 module instead

Removed

  • Removed improper BufferedRandomAccessFile

2020.10.0 (2020-09-24)

  • Added BatchProcessingContext and EngineServiceProcessingContext

2020.9.0 (2020-09-08)

Added

  • Added http method enforcement to all ActionSupport actions

Changed

  • [internal] Reformatted codebase

2020.8.0 (2020-06-12)

Changed

  • Terminated experimental branch release (not part of 2020.9.0+)

2020.7.3 (2020-08-20)

Added

  • Added @NotNull and @Nullable annotations

2020.7.2 (2020-08-20)

Added

  • Extracted DocumentBuilder to a separate class and added DocumentBuilder.createDocument()
  • Added DocumentStream.attributes() to stream DOM Element attributes

Fixed

  • CliParser#printAndExitOnIssues now correctly returns non-zero exit code on error

2020.7.1 (2020-06-19)

Fixed

  • Fixed Version comparison for pre-release versions.

2020.7.0 (2020-05-28)

Added

  • Added nsx-shared-xml module
    • Added DocumentReader/DocumentWriter with disabled DTDs and any online resolution
    • Added DocumentStream for easier processing of DOM child elements

2020.6.0 (2020-04-10)

Added

  • Added SemVer implementation in net.democritus.versioning.Version

Changed

  • Target Java 7
  • Update commons-beanutils

2020.5.0 (2020-03-19)

Removed

  • Moved struts TranslateTextAction and LocalizedTextTranslator to struts-stack

2020.4.0 (2020-03-04)

Added

  • Added LocalizedTextTranslator as a replacement for struts 2.3 LocalizedTextUtil

2020.3.2 (2020-03-04)

Added

  • Added nsx-shared-tomee providing ResponseEncodingFilter to force UTF-8 server responses.
  • Added javadoc to jar

2020.3.1 (2020-02-26)

Changed

  • Readded localization overriding for TranslateTextAction struts action

2020.3.0 (2020-02-21)

Added

  • Added CliParser::getRemainingArguments

Changed

  • Merged nsx-libraries’ nsx-common and nsx-logging into nsx-runtime
  • Changed JAVAAEE6 JNDI local name to java:app/<component>/... from java:global/<deployment>/<component>/...

2020.2.0 (2020-02-07)

Changed

  • Migrated nsx-presentation-struts2 for struts 2.3 -> 2.5
  • Updated opencsv dependency 2.3 -> 4.6 (highest available for JDK7)

Removed

  • Dropped modules nsx-shared-jaxrs, nsx-shared-yaml

2020.1.0 (2020-01-22)

Added

  • Added clearer error message to ComponentJNDI failures

2019.7.1 (2019-12-03)

Added

  • Add constructors to FlowParameterContext and TaskParameterContext that allow the passing down of Context