Release Notes - openMDM(R) Application

Version 5.2.0M1

New Features:

  • Upload/download file attachments to FileAttachables and context attributes
  • Show/edit context data based on MDM templates
  • ATFxAdapter supports model mapping via ExtSystem
  • XY-Chartviewer to view measurement data
  • Introduce user roles on the webclient

Breaking changes

Changes to MDMRealm

Up to version 5.1.0 all Users had to be assigned the group MDM to use openMDM. Since 5.2.0M1 users need one of the following groups: Admin, DescriptiveDataAuthor, Guest. See org.eclipse.mdm.nuclues/readme.md#Configure LoginModule for more information.

Database schema changes

In this release openMDM 5 database schema was extended. If you have an existing installation make sure to apply the provided update script to your database. The script can be found in schema/update/{DATABASE}/5.2.0M1_update.sql.

API changes

REST-API:

  • Tests, teststeps and measurements have new subresource files to upload, download, and delete files.
  • Teststep and measurement contexts have new subresource to upload, download, and delete files at component attributes.
  • New user resource to get information about the currently logged in user and its roles.

org.eclipse.mdm.api.base:

  • New method: o.e.m.a.b.f.FileService#uploadSequential(Entity, Collection, ProgressListener)
  • New method: o.e.m.a.b.f.FileService#uploadParallel(Entity, Collection, ProgressListener)
  • New method: o.e.m.a.b.f.FileService#delete(Entity, Collection)
  • New method: o.e.m.a.b.f.FileService#delete(Entity, FileLink)
  • New method: o.e.m.a.b.f.FileLink#newLocal(InputStream, String, long, MimeType, String)
  • New method: o.e.m.a.b.m.FileLink#getLocalStream()
  • New method: o.e.m.a.b.m.FileLink#setLocalStream(InputStream)
  • Removed method: o.e.m.a.b.m.FileLink#getLocalPath()
  • Removed method: o.e.m.a.b.m.FileLink#setLocalPath(Path)

org.eclipse.mdm.api.default

  • New method: o.e.m.a.d.m.EntityFactory#createExtSystem(String)
  • New method: o.e.m.a.d.m.EntityFactory#createExtSystemAttribute(String, ExtSystem)
  • New method: o.e.m.a.d.m.EntityFactory#createMDMAttribute(String, ExtSystemAttribute)
  • New method: o.e.m.a.d.m.createTestStepWithOutContextRoots(Test, TemplateTestStep, Classification)
  • New method: o.e.m.a.d.m.createTestStepWithOutContextRoots(Test, TemplateTestStep)
  • New method: o.e.m.a.d.m.createTestStepWithOutContextRoots(Test, Status, TemplateTestStep)
  • New entity: o.e.m.a.d.m.ExtSystem
  • New entity: o.e.m.a.d.m.ExtSystemAttribute
  • New entity: o.e.m.a.d.m.MDMAttribute
  • New entity: o.e.m.a.d.m.SystemParameter
  • New entity: o.e.m.a.d.m.UserParameter

Changes

  • 552399 - Upload/download file attachments in webclient
  • 552400 - Show/edit context data based on MDM templates
  • 552401 - Model mapping in atfxadapter with ExtSystem
  • 552402 - Simple XY-Chartviewer
  • 552403 - Introduce user roles on the webclient
  • 562384 - Freetextindexer should only index once in clustered deployments

Version 5.1.0

Bugzilla Bugs fixed

  • 561163 - Possible NPE in OdsEntityManager#loadTemplate()
  • 553867 - Upload shopping basket should use xml format
  • 553699 - Provide a user friendly error message if unsupported business objects are exported to atfx.
  • 560003 - Relations in Response not shown correctly

Version 5.1.0RC1

New Features:

  • Support for Elasticsearch Version 7 or later

Changes

  • 520297 - Fulltextsearch should support Elastic Search Version 7

Version 5.1.0M8, 2020/02/03

New Features:

  • Add Quantity and Unit in Detail-View in WebClient
  • Support for Status using Classification

API changes

  • REST-API has a new endpoints ProjectDomain, Status and Classification
  • Responses now contain relation information in property “relation”
  • New method: o.e.m.a.d.EntityManager#loadTemplate(Test)
  • New method: o.e.m.a.d.EntityManager#loadTemplate(TestStep)
  • New method: o.e.m.a.d.m.EntityFactory#createClassification(Domain, ProjectDomain, Status)
  • New method: o.e.m.a.d.m.EntityFactory#createTest(String, Pool, TemplateTest, Classification, boolean)
  • New method: o.e.m.a.d.m.EnttiyFactory#createTestStep(Test, TemplateTestStep, Classification)
  • New method: o.e.m.a.d.m.EnttiyFactory#createTestStep(String, Test, Classification)
  • New method: o.e.m.a.d.m.EntityFactory#createTestStep(String, Test, TemplateTestStep, Classification)
  • Renamed classes in org.eclipse.mdm.nucleus.api.copy
  • New method: o.e.m.a.b.q.Query#limit(int limit)

Changes

  • 553266 - Contributions of Peak Solution (2019/11)
  • 546639 - Use openMDM 5 API to create Classifications
  • 552484 - Add parameter to specify the hostname in addition to the interface name for CORBAFileServer
  • 552505 - Webclient: All URLs routed by Angular have to fallback to index.html
  • 553162 - Webclient: Add Quantity and Unit to DetailView
  • 553163 - Implement a session check / reconnect for Freetextindexer
  • 553164 - Improve template resolving in apicopy
  • 550002 - Add relation information to REST-API
  • 549844 - [REST] Add unit info on /channels response
  • 544850 - Allow to limit number of search results

Bugzilla Bugs fixed

  • 553369 - ATFX Import fails if multiple version of a Quantity exist
  • 559366 - [REST] Swagger Codegen leads to an error when using the provided openAPI files
  • 553266) - Contributions of Peak Solution (2019/11)
    • ATFX export now correctly includes Context Data
    • Fixed EntityService#satisfiesParameters
    • Fixed memory leak when explicitly closing an context in ConnectorService
    • Fixed: MeaQuantity name is set to DefMQName instead actual value on import/export
    • Do not log ServiceConfiguration on connection failure.
    • Remove odsadapter dependency from apicopy
    • Fixed shopping basket context menu

Version 5.1.0M7, 2019/11/08

New Features:

  • Support for reading and writing measurement data.
  • Support for reading preview measurement values.
  • Measurement data can be transferred as Protocol Buffers or JSON

API changes

  • REST-API has a new endpoints read (/mdm/environments/{SOURCENAME}/values/read) and write (/mdm/environments/{SOURCENAME}/values/write) measurement values.
  • REST-API has a new endpoint to request preview values (/mdm/environments/{SOURCENAME}/values/preview)
  • o.e.m.a.b.m.ReadRequestBuilder now additionally has methods ReadRequestBuilder.values(int requestSize) and ReadRequestBuilder.values(int startIndex, int requestSize) as terminal operations.

Changes

  • 548162 - Add support for reading/writing measurement data over REST API

Bugzilla Bugs fixed

  • 547141 - ReadRequestBuilder does not allow to create ReadRequests with startIndex or requestSize != 0
  • 547115 - ClassCastException in ReadRequestHandler#getODSColumns

Version 5.1.0M6, 2019/10/18

New Features:

  • Generate a openAPI definition file of the openMDM REST-API at build time.
  • Integrated Swagger UI into deployment for visualizing the API.

API changes

  • no

Changes

  • 537293 - Use swagger for rest api docu

Bugzilla Bugs fixed

  • 552188 - Context menu in shopping basket is not displayed correctly
  • 551950 - FreeTextIndexer cannot be deactivated

Version 5.1.0M5, 2019/08/27

New Features:

  • Support for reading FILE_LINK and FILE_LINK_SEQUENCE with REST-API

API changes

  • Added REST endpoints test/files/{remotePath}, teststep/files/{remotePath} and measurement/files/{remotePath}
  • Attributes with datatype FILE_LINK/FILE_LINK_SEQUENCE will return JSON objects with properties remotePath, mimeType and description as value.

Changes

  • 546774 - Add support for reading FILE_LINK_SEQUENCE attributes

Bugzilla Bugs fixed

Version 5.1.0M4, 2019/08/09

New Features:

  • Eclipse Glassfish 5 Support

API changes

  • no

Changes

  • 548241 - Test nucleus with Eclipse Glassfish 5.1

Bugzilla Bugs fixed

  • 548347 - Advanced search with date attribute fails if time portion is omitted in input field
  • 547115 - ClassCastException in ReadRequestHandler#getODSColumns

Version 5.1.0M3, 2019/04/23

New Features:

  • Angular 7 support, updated from Angular 2
  • I18N support for web frontend, languages available: English, German.
    • For adding a new language see: org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/README_I18N.md
    • Files with translations: org.eclipse.mdm.nucleus/org.eclipse.mdm.application/src/main/webapp/src/assets/i18n/*.json

API changes

  • no

Changes

  • 544530 - Angular 7 Upgrade and I18N for Webfrontend

Bugzilla Bugs fixed

  • 544621 - Mixed line endings (LF and CRLF) and other formatting issues
  • 545400 - Apostroph ' (%27) in urls with filter parameters is blocked by proxy servers
  • 545591 - OdsSearchService creates invalid ODS Query
  • 544562 - Nucleus - navigator: Dropdown menu sources
  • 543525 - Dependency Cleanup

Version 5.1.0M2, 2019/02/28

New Features:

  • Read root configuration directory from system property (“org.eclipse.mdm.configPath”)
  • ATFX import/export
  • Support added for the Entity Role in the openMDM 5 Java API: load and persist the many-to-many relation between User and Role.
  • The business objects Project, Pool, Test, Teststep, Measurement are editable via the REST API. It is possible create, update and delete the listed business objects. Furthermore it is possible to edit the context data for Teststep and Measurement. CRUD operations for measured data are not part of this ticket.
  • Property lookups for parameters values in service.xml: The service.xml contains all information necessary for the Connector-Service to connect to the available datasources/adapter instances. Since this information includes secret information like passwords, it is possible to provide lookups, which gives you the possibility to specify tokens as references to properties defined elsewhere.

API changes

  • All Repos: added Source Jar to build
  • o.e.m.api.base (impl): TestStep#loadContexts returns cached values if present
  • o.e.m.api.base (impl): Added IndependentBuilder#independent(boolean)
  • o.e.m.api.base (impl): Added ReadRequest#getValuesMode()/setValuesMode(ValuesMode)
  • o.e.m.api.base (impl): Added ReadRequestBuilder#valuesMode(ValuesMode)
  • o.e.m.api.base (impl): Added WriteRequest#setIndependent(boolean)
  • o.e.m.api.base (impl): Extended MeasuredValues with SequenceRepresentation, Generation Parameters, Independent Flag and AxisType
  • o.e.m.api.base (API): Added Parameters to ScalarType#createmeasuredValues()
  • o.e.m.api.default (impl): EntityFactory#createTestStep(Test, TemplateTestStep) is now public
  • o.e.m.api.default (impl): Added EntityFactory#createTest(String, Pool)
  • o.e.m.api.odsadapter: Added possibility to provide EntityConfigRepository OdsModelManager
  • o.e.m.api.odsadapter: Added SequenceRepresentation etc. for LocalColumns
  • o.e.m.api.default (impl): EntityFactory#createContextRoot(List, TemplateRoot)
  • o.e.m.api.base: added o.e.m.a.b.BaseEntityManager.loadRelatedEntities
  • o.e.m.api.base: added o.e.m.a.b.a.Core.getNtoMStore
  • org.eclipse.mdm.api.default: added o.e.m.a.d.m.EntityFactory.createRole
  • org.eclipse.mdm.api.default:added Entity o.e.m.a.d.m.Role

Changes

Bugzilla Bugs fixed

  • 543675 - ODSContextFactory leaks ORB instances
  • 543440 - Configuration: Nodeprovider

Milestone 5.1.0M1, 2019/01/11

Changes

  • Support for Status was extended such that it can be attached to a Measurement / TestStep / Test class. Additional entities ProjectDomain Domain and Classification were added to the org.eclipse.mdm.api.default module
  • New system property “org.eclipse.mdm.api.odsadapter.filetransfer.interfaceName” to set a specific network interface name to be used

Bugzilla Bugs fixed

  • 540889 - Contribution for 5.1.0M1 bug/feature collection
  • 529729 - Status and MDMTag cannot be set on a test/testStep
  • 539983 - Corba File Server does not work on windows because of a path format problem
  • 539984 - Corba File Server always uses the first network interface
  • 541606 - InstallationGuide improvements
  • 542519 - Nullpointer exception in InsertStatement
  • 542658 - Nucleus markdown file - error in json “specifications”
  • 542656 - Nucleus markdown file - wrong documentation of valuelist values interface
  • 542094 - NotificationManager throws IllegalArgumentException: Incompatible value type

Release 5.0.0, 2018/11/07

Release Review and Graduation Review of the mdmbl Eclipse project succeeded.

Version 5.0.0M5, 2018/10/30

Changes

  • License switch from Eclipse Public License 1.0 to Eclipse Public License 2.0.

Bugzilla Bugs fixed

  • 540226 - Failed EJB lookup if using catcomps endpoint
  • 539716 - License switch EPL-1.0 to EPL-2.0

Version 5.0.0M4, 2018/09/26

This code brings along a change with the realm configuration. You can configure your realm now in a standardized way. In the readme.md in the org.eclipse.mdm.nucleus project is described how to setup and configure a file realm for local installations. You can also configure your LDAP, AD or others. See the glassfish documentation

Note: The component “org.eclipse.mdm.realms” is not used any longer.

Changes

  • 526883 - [REQU-109] - Integrate external distribution “Authentification and Authorization”

Bugzilla Bugs fixed

  • 535381 - Delegated roles and rights with backend connectors

Version 5.0.0M3, 2018/09/10

In this milestone new REST APIs were added for editing MDM business objects. The list of all REST APIs see the readme.md in the org.eclipse.mdm.nucleus project.

API changes

  • no

Changes

  • 526883 - [REQU-101] - The MDM business objects should be editable via openMDM5 RESTful API (CRUD operations)
  • REQU-102 - Deploy data model via RESTful API
  • REQU-110 - Integrate external distribtion “CRUD Operations for administrative objects”

Bugzilla Bugs fixed

  • no

Version 5.0.0M2, 2018/07/23

API changes

  • no

Changes

Bugzilla Bugs fixed

  • 534866 - Results incorrect if attribute search is combined with full text search yielding no results
  • 535606 - Attribute search is not case insensitive
  • 536840 - Avoid function calls from html template for translation
  • 530512 - Missing Information after change tabs
  • 526163 - Resolve unmet dependency error cause by ng2-dropdown-multiselect
  • 532425 - Update and rename ng2-bootstrap to ngx-bootstrap
  • 536229 - Provide a readable error message, if preference service throws an error

Version 5.0.0M1, 2018/05/18

Note: the system of version numbers has changed!

API changes

  • no

Changes

  • REQU-106 - Provide legal documentation, IP Checks, end user content
  • REQU-107 - Notification Service Implementation vis OMG Specs

Bugzilla Bugs fixed

  • 528033 - Web client does not quote entity IDs in filter strings
  • 532154 - Update libraries for IP check
  • 532167 - logging
  • 532343 - Configure Logging
  • 532165 - Java lib
  • 532170 - freetext.notificationType
  • 534643 - search-datepicker does not recognize model changes via input textbox

Version V0.10, 2018/02/23

API changes

An overview of the API changes made :
  • Shopping basket:
    • Added methods:
      • String org.eclipse.mdm.api.base.BaseApplicationContext.getAdapterType()
      • Map<Entity, String> org.eclipse.mdm.api.base.BaseEntityManager.getLinks(Collection)
    • file extensions: When downloading the contents of a shopping basket, a file with extension mdm is generated. The file extension can be changed by adding a preference with key shoppingbasket.fileextensions. For example the used extension can be set to mdm-xml by setting the value to { "default": "mdm-xml" }.

Changes

Bugzilla Bugs fixed

  • 521880 - Component with empty FileLink can not be updated
  • 526124 - OpenMDM web (nucleus) broken as of 10-16-2017 because of version ranges/tracking versions
  • 528261 - ODS EntityConfigRepository.find(EntityType) should throw IllegalArgumentException if requested entity type is not found 2018-01-11
  • 525848 - ODSConverter cannot parse 17 character dates
  • 529568 - Junit Tests have to run stand alone
  • 525980 - Remove version range in org.eclipse.mdm.api.base/build.gradle
  • 529629 - Query group and aggregate function are not working as expected
  • 526141 - Remove version range in org.eclipse.mdm.api.odsadapter/build.gradle
  • 529867 - Jenkins builds fail since 12.01.17
  • 526147 - wrong logic in org.eclipse.mdm.api.default/src/main/java/org/eclipse/mdm/api/dflt/model/EntityFactory
  • 529887 - FileUpload throws java.net.UnknownHostException
  • 526260 - Writing enumeration values
  • 530511 - Missing progress bar
  • 526763 - Issues in dynamic enumeration handling
  • 530775 - ODS adapter: getParameters exposes sensitive information
  • 527673 - ValueType.UNKNOWN.createValue() throws NPE due to ValueType.type not being set
  • 530791 - UpdateStatement is broken
  • 528149 - Search tab in web UI should accept attribute values even if no suggestions are present
  • 528193 - Autocomplete text box in search UI should accept custom values automatically
  • 528260 - ValueType.UNKNOWN should have Object rather than Void as representation type

Version V0.9, 2017/11/24

API changes

An overview of the API changes made :
  • service.xml:
  • Property entityManagerFactoryClass has to be changed to org.eclipse.mdm.api.odsadapter.ODSContextFactory for ODS Datasources.
  • Datasource specific parameters for NotificationService and the freetext search parameters are now supplied by service.xml not by global.properties.
  • org.eclipse.mdm.api.base:
  • New entry class BaseApplicationContextFactory instead of BaseEntityManagerFactory.
  • Services can now be retrieved from BaseApplicationContext instead of BaseEntityManager.
  • NotificationManagerFactory was removed; NotficationManager was renamed to NotificationService.
  • Query package was split into query and search.
  • Creation of Query (ModelManager#createQuery()) was moved from ModelManager to new QueryService class.
  • Moved ModelManager, EntityType, Core and similar to subpackage adapter
  • EntityStore and ChildrenStore are now top-level classes in the subpackage adapter
  • Moved FileService to subpackage file
  • Added methods:
    • ContextComponent#getContextRoot()
    • ContextSensor#getContextComponent()
  • Introduced new (protected) method BaseEntityFactory.createBaseEntity(Class, Core) for creating instances of classes derived from BaseEntity using an already existing Core instance. Must be overridden in derived classes to ensure the instances can be created via the (usually package-private) Constructor(Core) of the BaseEntity-derived class. If the constructor of the class passed to createBaseEntity is not accessible, the super class implementation is called to try if the constructor is accessible from there.
  • Introduced new (protected) method BaseEntityFactory.getCore(BaseEntity) to extract the Core object from a BaseEntity instance.
  • Modified the interface of BaseEntityManager: the get*Store methods have been defined as non final. With that, these methods can be overriden in the OdsAdpter and be used there to access the stores without resorting directly to the core. There also comments added in several places to improve the understandibility of the current implementation.
  • org.eclipse.mdm.api.default:
  • Introduced ApplicationContextFactory and ApplicationContext which extend their base counterparts. Should be unnecessary when merging api.base and api.default repositories.
  • org.eclipse.mdm.api.odsadapter:
  • Adapted to the changes from api.base and api.default
  • org.eclipse.mdm.nucleus:
  • Adapted to the changes from api.base and api.default
  • ConnectorService manages ApplicationContexts instead of EntityManagers
  • Datasource specific parameters for NotificationService are now supplied by service.xml not by global.properties.

Changes

Bugzilla Bugs fixed

  • 521880 - Component with empty FileLink can not be updatet
  • 526124 - OpenMDM web (nucleus) broken as of 10-16-2017 because of version ranges/t
  • 526763 - Issues in dynamic enumeration handling
  • 525980 - Remove version range in org.eclipse.mdm.api.base/build.gradle
  • 526260 - Writing enumeration values
  • 526141 - Remove version range in org.eclipse.mdm.api.odsadapter/build.gradle
  • 525848 - ODSConverter cannot parse 17 character dates
  • 526147 - wrong logic in org.eclipse.mdm.api.default/.../EntityFactory

Version V0.8, 2017/09/08

API changes

  • REQU-62 - Polyvalant variants
  • REQU-49 - Extensibility of Entity Classes
  • REQU-79 - Consistent relationships
  • REQU-97 - Change handling of enumerations

Changes

Bugzilla Bugs fixed

  • 520291 - Elastic Search :: ElasticSearch answered 400, error while performing some search
  • 521011 - EntityFactory.createContextSensor always throws an exception
  • 520330 - Improve development setup in Eclipse
  • 518063 - Nucleus: config-dir is missing in the build artefact mdm-web.zip
  • 518124 - Configure JIPP and Sonar for mdmbl projects
  • 518444 - Unify used gradle versions and update to latest stable
  • 518825 - Nucleus build: create a separate gradle task for npm build
  • 519212 - Enable production mode for client build
  • 519993 - Create Gradle composite build
  • 519453 - org.eclipse.mdm.openatfx build can't download dependency
  • 519995 - Setup Guide and avalon
  • 520248 - Build of org.eclipse.mdm.api.odsadapter only works with “gradle clean install”
  • 517057 - Add Repository Descriptions

Version V0.7, 2017/07/21

API changes

Changes

Bugzilla Bugs fixed

  • 519448 - Build of of freetextindexer in org.eclipse.mdm.nucleus fails
  • 518062 - ODSAdapter: Encoding issue when switching to UTF-8
  • 518060 - ODSAdapter - junit tests fail
  • 515748 - Unable to build org.eclipse.mdm.nucleus
  • 518335 - Set executable flag for gradlew in git repo

Version V0.6, 2017/06/07

Changes

  • REQU-2 - Display a tree view for navigation
  • REQU-3 - Display icons in the tree view
  • REQU-4 - Display different ODS data sources in the tree view
  • REQU-5 - Expand serveral nodes of the tree view simultaneously
  • REQU-6 - Display a scroll bar in the tree vie
  • REQU-7 - Web Client GUI Adjustment
  • REQU-9 - Display tabs on Detail view
  • REQU-10 - Update Detail View
  • REQU-12 - Select data source for attribute-based search
  • REQU-13 - Definition or selection of a search query
  • REQU-14 - Limit search to a certain result type
  • REQU-15 - Display attributes of the selected data source(s)
  • REQU-16 - Set search attribute values
  • REQU-18 - Select data source for fulltext search
  • REQU-22 - Create and store a view for search results
  • REQU-23 - Select a view to display search results
  • REQU-24 - Filter fulltext search results
  • REQU-25 - Display actions for search results
  • REQU-27 - Select data objects for shoppping basket
  • REQU-28 - Store a shopping basket
  • REQU-29 - Select a shopping basket
  • REQU-30 - Export shopping basket
  • REQU-31 - Load an exported shopping basket
  • REQU-32 - Display actions for shopping basket
  • REQU-85 - Seach type date
  • REQU-86 - Search across multiple data sources
  • REQU-95 - Backend configuration