Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2212

Simplify development (experimental) apps build and deployment system

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      The current build system for the development apps renamed experimental apps) contains repeated code, which makes it hard to modify and understand.

      See: https://bitbucket.org/lorainelab/experimental-apps-for-igb for new git repository location.

      We wrote it this way in part because I imposed the requirement for enabling individual Apps and their unitary OBR index files to be deployed to the Bitbucket Downloads folder for the repository.

      However, upon taking a deeper look into this, it is clear we can get rid of this requirement.

      For proper testing, we should copy all the Apps and a shared OBR index file to the Downloads. This will enable a developer, tester, or ordinary user to simply add the Downloads folder to IGB as an App repository. If they do that, then all of the Apps will become visible in the IGB App Manager, where they can install them. Also, because the Apps are sharing a repository and a parent POM, we need to make sure that if one can build, all can build.

      By getting rid of this requirement, we can remove the App-specific profiles from the system, which will greatly simplify the setup.

      Making the setup simpler and easier to understand and modify will allow us to use it as part of our developer documentation to help developers get more familiar with IGB Apps and how they work.

      cc: Prutha Kulkarni

        Attachments

          Issue Links

            Activity

            Hide
            ann.loraine Ann Loraine added a comment -

            Made branch, merged into master, closed branch.
            New design puts plugin configurations in parent pom.
            Child pom in new module "obr" builds index file for all the Apps.

            Show
            ann.loraine Ann Loraine added a comment - Made branch, merged into master, closed branch. New design puts plugin configurations in parent pom. Child pom in new module "obr" builds index file for all the Apps.
            Hide
            ann.loraine Ann Loraine added a comment -

            Prutha Kulkarni - when you get back to Charlotte, please test.

            Test local configuration:

            • Clone the repo
            • Compile by running mvn install at top-level of project
            • Add obr/bundles as a local App Repository
            • Confirm that you can install the Apps

            Note: To confirm installation, check the Felix Web console. IGB Console reports bundles are getting installed even when they are not as per https://jira.transvar.org/browse/IGBF-2186.

            To test remote configuration:

            • Add Downloads of team repository as a new App repository.
            • Confirm that you can install the Apps from there as well.

            To test local configuration:

            • Run mvn install using the module POMs
            • An OBR index file and jar file should get copied into the modules target directory
            Show
            ann.loraine Ann Loraine added a comment - Prutha Kulkarni - when you get back to Charlotte, please test. Test local configuration: Clone the repo Compile by running mvn install at top-level of project Add obr/bundles as a local App Repository Confirm that you can install the Apps Note: To confirm installation, check the Felix Web console. IGB Console reports bundles are getting installed even when they are not as per https://jira.transvar.org/browse/IGBF-2186 . To test remote configuration: Add Downloads of team repository as a new App repository. Confirm that you can install the Apps from there as well. To test local configuration: Run mvn install using the module POMs An OBR index file and jar file should get copied into the modules target directory
            Hide
            ann.loraine Ann Loraine added a comment -

            Also, Prutha Kulkarni - please review the code. If you have questions, please add as new comments.
            It's important that the project structure and POMs be clear so that new developers can learn from them.

            Show
            ann.loraine Ann Loraine added a comment - Also, Prutha Kulkarni - please review the code. If you have questions, please add as new comments. It's important that the project structure and POMs be clear so that new developers can learn from them.
            Hide
            ann.loraine Ann Loraine added a comment -

            Found a problem with repository.xml created on Bitbucket and copied to Downloads. It does not list any Apps.

            Show
            ann.loraine Ann Loraine added a comment - Found a problem with repository.xml created on Bitbucket and copied to Downloads. It does not list any Apps.
            Hide
            ann.loraine Ann Loraine added a comment -

            Fixed problem. Copying task was failing due to misconfiguration of maven-antrun-plugin.
            Moved maven-antrun-plugin configuration and execution to obr module so that copying of jars into obr/bundles will only happen when trying to build an OBR with all the bundles.
            When working with a single module, we don't need to copy its bundle to obr/bundles since its target directory will be its OBR.

            Show
            ann.loraine Ann Loraine added a comment - Fixed problem. Copying task was failing due to misconfiguration of maven-antrun-plugin. Moved maven-antrun-plugin configuration and execution to obr module so that copying of jars into obr/bundles will only happen when trying to build an OBR with all the bundles. When working with a single module, we don't need to copy its bundle to obr/bundles since its target directory will be its OBR.
            Hide
            prutha Prutha Kulkarni (Inactive) added a comment -

            I have tested the experimental apps for both local as well as remote configuration. Followed the steps that are mentioned above. Also I checked in on the apache felix console whether the bundle is getting installed or not and I was able to see it on the console as well.
            I really liked the idea of creating a new obr folder in order to build the consolidated repository.xml file instead of maintaining profiles for each plugin. It is very easy to understand as well.

            Show
            prutha Prutha Kulkarni (Inactive) added a comment - I have tested the experimental apps for both local as well as remote configuration. Followed the steps that are mentioned above. Also I checked in on the apache felix console whether the bundle is getting installed or not and I was able to see it on the console as well. I really liked the idea of creating a new obr folder in order to build the consolidated repository.xml file instead of maintaining profiles for each plugin. It is very easy to understand as well.

              People

              • Assignee:
                ann.loraine Ann Loraine
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: