nsx-runtime
2022.5.1 (2022-11-30)
Changed
- Updated SLF4J to version
2.0.5
. - Updated OpenCSV to version
5.7.1
. (addressesCVE-2022-42889
)
2022.5.0 (2022-11-24)
Removed
- The library
nsx-presentation-struts2
was removed and all code was integrated into a new libraryapplication-shared-struts2
as part of the JEE Application expanders project.
2022.4.1 (2022-11-04)
Fixed
- Updated signature of
<X extends Throwable> CrudsResult<T>.getValueOrElseThrow(Supplier<? extends X>)
to<X extends Throwable> CrudsResult<T>.getValueOrElseThrow(Function<CrudsResult<T>, ? extends X>)
.
Added
- Added method
Result<T>.getValueOrElse(T)
to get the value of the result in case of success or the given default value in case of an error. - Added method
Result<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. - Added method
<X extends Throwable> Result<T>.getValueOrElseThrow(Function<Result<T>, ? extends X>)
to get the value of the result in case of success or throw an exception returned by the provided supplier in case of an error.
2022.4.0 (2022-10-26)
Moved
The following classes have been moved to metamodel-runtime
:
- net.democritus.projection.ElementOption
- net.democritus.projection.CompositeProjection
- net.democritus.projection.TreeProjection
Added
- Added method
<X extends Throwable> CrudsResult<T>.getValueOrElseThrow(Supplier<? extends X>)
to get the value of the
result in case of success or throw an exception returned by the provided supplier in case of an error.
Changed
- Updated signature of
CrudsResult<T>.getValueOrElseGet()
to allow suppliers which return objects of subclasses ofT
.
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 callinggetValue()
on a cruds error result. - Added hamcrest
2.2
as additional dependency alongside hamcrest1.3
fornsx-shared-testing
.
Changed
- Updated SLF4J to version
2.0.0
. - Updated Hamcrest to version
2.2
innsx-shared-testing
where the artifactId also changed fromhamcrest-all
tohamcrest
.
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, butsome(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 usinglegacy.searchDataRefMethods.reenable
.net.democritus.support.Paging
: Used by old expanded code that is now only expandable usinglegacy.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 usinglegacy.searchDataRefMethods.reenable
.net.democritus.sys.SearchDataRef
: Used by old expanded code that is now only expandable usinglegacy.searchDataRefMethods.reenable
.net.democritus.sys.SearchDef
: Used by old expanded code that is now only expandable usinglegacy.searchDataRefMethods.reenable
.net.democritus.sys.SearchMask
: Used by old expanded code that is now only expandable usinglegacy.searchDataRefMethods.reenable
.
- Updated
FinderSupport.getSearchKey
to support transition away fromjava.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
- Libraries:
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()
andSearchDetails.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 semverVersion
- 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 theisError()
orisSuccess()
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 againQueryParameter
instead ofQueryConditionalExpression
- if assigning the result, it should always be cast to
QueryConditionalExpression
- if assigning the result, it should always be cast to
- Reverted
JPAQueryBuilder
hiding its private methods and deprecated them for public use instead- the public API is the
QueryBuilder
interface
- the public API is the
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 bothid
andname
are equal
- Reverted
ApplicationMenuResolver#getApplicationMenu()
signature (originally changed inv2021.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
, implementQueryConditionalExpression
directly.
- Instead of subclassing
2021.2.0 (2021-07-05)
Added
- [jpa] Added support for null/not-null field operator pairs via
QueryParameter#createIsNullParameter
andQueryParameter#createIsNotNullParameter
- [jpa] Providing empty list to
createValueParameter
will exclude the parameter (same as providingnull
or an empty string) - [presentation-struts2] Finders with
noViewLayer
are now excluded in UI 1.x (excluded fromGetFindersForDataElementAction
response)
Changed
- [jpa] Refactoring of nsx-shared-jpa module
- If a custom code was subclassing
QueryParameter
, it must be changed to directly implementQueryConditionalExpression
interface - Deprecated
JPAQueryBuilder#setUseIdInSort
due to a lack of a clear use case
- If a custom code was subclassing
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.
- Do not use
2021.1.0 (2021-06-09)
Added
- Added
Options.Option#asOptional()
to convert tojava.util.Optional
Changed
- Changed nsx-runtime target version to Java 8
- for Java 7 legacy projects, use nsx-runtime
v2020.x
or older
- for Java 7 legacy projects, use nsx-runtime
- Moved
DataRef
,DataRefValidation
, andDataRefWithFunctionalKey
to a newnsx-shared-ref
modulensx-shared-common
now depends on this module
- Moved
@Nullable
and@NotNull
annotations tonsx-contract-annotations
module
Deprecated
- Deprecated direct
DataRef
constructors- prefer creation via
DataRef#withId(Long)
andDataRef#withIdAndName(Long, String)
- prefer creation via
- Deprecated for removal all
net.democritus.validation.IConverter
subclasses- use
IConverter
instead - Expanders will no longer use them (see Expanders changelog)
- use
- Deprecated majority of classes and methods in
nsx-common
- This includes most of
StringUtil
andDirUtil
(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
- This includes most of
Removed
- Removed unnecessary dependencies from
nsx-shared-cli
tonsx-common
andnsx-shared-common
- Removed module
nsx-common-java7
as it never ended up being used
Fixed
Fixed
Options#some
allowing null value to be represented asSome
instead of throwing an exception- use
Options#notNull
when the value can be null
- use
Fixed
DataRef#equals
when comparing null ids
2021.0.1 (2021-05-04)
Fixed
- Fixed
NullPointerException
inDataRef.getDataRefLink()
when themId
field in theDataRef
object isnull
. - 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
- added an extra
Fixed
- Fixed
DataRef#equals
comparing identity of boxed types instead of their values
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
andEngineServiceProcessingContext
2020.9.0 (2020-09-08)
Added
- Added http method enforcement to all ActionSupport actions
Changed
- [internal] Reformatted codebase
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.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.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>/...
fromjava:global/<deployment>/<component>/...