Uploaded image for project: 'Celum DAM Connector '
  1. Celum DAM Connector
  2. CELUM-52

Migration from Java SDK to Rest API

    XMLWordPrintable

Details

    • Task
    • Resolution: Unresolved
    • Neutral
    • 2.0.0
    • 1.0.4
    • None

    Description

      Celum Java SDK will be sunset end of 2024, and we are already facing issues with recent version of Celum where it's not behaving properly anymore, getting errors like below:

      Exception in thread "main" com.celum.api.remote.json.SerializationException: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve subtype of [simple type, class com.celum.api.queries.sorters.AssetSorter]: missing type id property '_class' (for POJO property 'sorter')
       at [Source: (String)"{"query":{"_class":"com.celum.api.queries.AssetSearchQuery","credentials":{"userId":{"_class":"com.celum.api.identifiers.UserId","id":102,"isSystem":false}},"informationFieldIds":[],"loadAllInformationFields":true,"loadFileProperties":true,"filter":{"_class":"com.celum.api.serialization.filters.AssetsByNodeFilter","nodeIds":[{"_class":"com.celum.api.identifiers.NodeId","id":10051}],"recursive":true,"useAndOperator":true},"sorter":{"empty":true,"present":false}},"batchNumber":1,"batchSize":200}"; line: 1, column: 464] (through reference chain: com.celum.api.remote.query.RemoteIterableQueryMessage["query"]->com.celum.api.queries.AssetSearchQuery["sorter"])
      	at com.celum.api.remote.json.JsonHelper.fromJson(JsonHelper.java:60)
      	at com.celum.api.remote.vertx.ApiMessageHelper.createObjectFromPayload(ApiMessageHelper.java:19)
      	at com.celum.api.endpoint.RepositoryVerticle.lambda$handleMessage$14(RepositoryVerticle.java:166)
      	at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:313)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      	at java.lang.Thread.run(Thread.java:829) 

      We need to change the service layer by removing the current celum java remote api and introducing the new rest service provided by Celum.

       

      UPDATE on the above issue : can be fix by activating the backward compatibility on Celum server (Celum ticket PS-11136)

      this issue was fixed by enabling backward compatibility. See:

      https://community.celum.com/kb/display/CS/Fixed+and+Known+Issues+for+Release+22.9

      The fix is by default disabled. Please set the following property as JVM property in the setenv.sh file:

      compatibility.jackson.deserializer.enabled=true 

      and restart the appserver.

      It should fix the issue.

       

      So if the compatibility works it will let us more time to migrate to the new Rest API, especially considering that identified blockers below might prevent us to migrate.

       

      Resources:

      https://www.celum.com/en/blog/new-rest-api-reduces-complexity-and-cost-for-you/

      https://community.celum.com/kb/display/CS/CELUM+Content+REST+API

       

      Identified blockers:

      • Rest API doesn't seem to offer access to the public URLs of an asset (Celum ticket PS-11137)
        Feedback from support : 
        This function is not available yet in Rest API and it is planned in CH version 23.12
        Sadly, I do not have an exact date for when this version will be available.

       

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              rfalvo Raphael Falvo
              rfalvo Raphael Falvo
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Checklists

                  Task DoR