Uploaded image for project: 'AppFormer'
  1. AppFormer
  2. AF-2253

Remove explicit dependency on nio2.jgit implementation

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Done
    • Icon: Major Major
    • None
    • 2.24.0.Final
    • VFS
    • 2019 Week 50-52 (from Dec 9), 2020 Week 01-03 (from Dec 30), 2020 Week 04-06 (from Jan 20), 2020 Week 07-09 (from Feb 10), 2020 Week 10-12 (from Mar 2), 2020 Week 13-15 (from Mar 23), 2020 Week 16-18 (from Apr 13), 2020 Week 19-21 (from May 4)
    • NEW
    • NEW

      There are occurrences in the code introduced an explicit dependency on nio2.jgit implementation. As a result, the nio2.jgit becomes a mandatory component for any Business Central to be able to boot up and run properly even if it can be replaced with other implementation, such as Business Central Monitoring.

      The following line of code with hard coded dependency blocks BC/BC-M booting up if nio2.jgit is not configured.
      https://github.com/kiegroup/appformer/blob/23d9b09b2729659a9e0fecb2c1d927af3cf80ae8/uberfire-backend/uberfire-backend-cdi/src/main/java/org/uberfire/backend/server/cdi/SystemConfigProducer.java#L410

      The following lines of code with hard coded dependency breaks the functionalities of BC/BC-M if nio2.jgit is not configured
      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/uberfire-showcase/uberfire-webapp/src/main/java/org/uberfire/backend/server/impl/ExperimentalEditorServiceImpl.java#L142
      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/uberfire-experimental/uberfire-experimental-backend/src/main/java/org/uberfire/experimental/service/storage/impl/AbstractExperimentalFeaturesStorage.java#L194

      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/uberfire-preferences/uberfire-preferences-backend/src/main/java/org/uberfire/preferences/backend/PreferenceStorageImpl.java#L97

      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/dashbuilder/dashbuilder-client/dashbuilder-cms-client/src/main/java/org/dashbuilder/client/cms/screen/transfer/DataTransferView.java#L96

      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/dashbuilder/dashbuilder-backend/dashbuilder-services/src/main/java/org/dashbuilder/transfer/DataTransferServicesImpl.java#L136
      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/dashbuilder/dashbuilder-backend/dashbuilder-services/src/main/java/org/dashbuilder/transfer/DataTransferServicesImpl.java#L153
      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/dashbuilder/dashbuilder-backend/dashbuilder-services/src/main/java/org/dashbuilder/transfer/DataTransferServicesImpl.java#L216
      https://github.com/kiegroup/appformer/blob/da01451141a32303470aa78a23c221d64569b59f/dashbuilder/dashbuilder-backend/dashbuilder-services/src/main/java/org/dashbuilder/transfer/DataTransferServicesImpl.java#L312

      These classes have explicit dependencies on JGit implementation which break the webapp startup process.
      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/dashbuilder/dashbuilder-backend/dashbuilder-services/src/main/java/org/dashbuilder/migration/DashbuilderDataMigration.java#L222

      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/uberfire-structure/uberfire-structure-backend/src/main/java/org/guvnor/structure/backend/organizationalunit/OrganizationalUnitServiceImpl.java#L579

      These classes have explicit dependencies on JGit implementation which may break the functionality if jgit is unplugged.
      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/uberfire-project/uberfire-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/utils/PathUtil.java#L69

      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/uberfire-project/uberfire-project-backend/src/main/java/org/guvnor/common/services/project/backend/server/WorkspaceProjectMigrationServiceImpl.java#L160

      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/uberfire-structure/uberfire-structure-backend/src/main/java/org/guvnor/structure/backend/FileSystemDeleteWorker.java#L162

      https://github.com/kiegroup/appformer/blob/3a6161f007520c10f99db8af2a03f480e261a81e/uberfire-structure/uberfire-structure-backend/src/main/java/org/guvnor/structure/backend/repositories/ChangeRequestServiceImpl.java#L1322

      The goal is to eliminate explicit dependencies which allows nio2.jgit to be plugged in as the Default FileSystemProvider or replaced by other FileSystem provider implementation, i.e. nio2.k8s.

              aparedes@redhat.com Adriel Paredes
              evan.zhang@redhat.com Evan Zhang (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: