I am working with a customer on a project based on Alfresco Process Services 1.9.0.3. We are struggling with the best way to track changes to the project and deploying the project across environments.
Right now, we have everything checked into GitHub Enterprise. We have a folder where we export the app and unzip its XML and JSON files.
Then we have a separate folder for the JAR part of the project where we use a standard Maven-based build.
The challenges are:
1. When downloading the app, the process model and form model files in JSON are on one line. We've started getting in the habit of prettifying the JSON prior to checking in to source code control so that sensible diffs can be done to see what's changed between commits.
2. Updating an existing app can be problematic. The import sometimes fails. Or, if the import succeeds, the publish fails. In some cases, we have to delete everything before deploying, which then changes the app ID among other things. It is rare that it "just works".
3. In cases where we have to "delete everything" it is a massive pain. That's because deleting the app does not delete the items associated with the app (processes, forms, etc.). So one must first delete the app, then delete the parent processes, then the sub-processes, and then the forms. This is VERY time-consuming when you have more than a handful of processes and forms.
4. The modified date changes when processes haven't actually been modified. For example, maybe you want to look at an embedded form. You open the process in the designer, then open the form in the form editor. Then you close the form without saving and then close the process without saving. Now the process shows an updated modified date even though nothing was changed.
5. We have attempted to use the activiti-admin app to define our clusters in our dev, staging, and prod environments so that we can use the "deploy app" button and just point it to the cluster we want to deploy it to. Unfortunately, this rarely works, so we have abandoned it completely.
Those are the top five pain points. I'm wondering what others are doing? How are you tracking changes to your app? How do you go from dev to staging to prod?
Is this use case even considered by the APS team? If so, it is hard to believe that the product got through QA in the state that it is in. (I'm not trying to be rude, and I know there are a lot of people working hard on the product. I'm just wondering if our desire to have repeatable builds and deployments of APS apps across environments is a typical use case).
Jeff
Hi Jeff,
have you tried to use APS SDK that I have released some weeks ago on my github account?
https://github.com/OpenPj/alfresco-process-services-project-sdk
This SDK includes all the enterprise services and dependencies of APS, you can implement your unit and integration test.
Finally you can take a look at the integration test example where you can see how to upload new applications programmatically.
It would be great receive contributions from the community
We could also fork this project on the Order Of The Bee github account.
PJ
Piergiorgio Lucidi
https://www.open4dev.com
Hi Piergiorgio, it is great to hear from you, old friend!
I have not seen that contribution, but I will take a look. It sounds like it might be very useful.
Jeff
Ask for and offer help to other Alfresco Process Services and Activiti Users and members of the Alfresco team.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.