Magic XPA 3.3 RIA deployment problem #ria #xpa


lehoczki@...
 

Dear Group Members,

I would like to use 2 separate applications on the same android phone or tablet. The account settings on the phone are different (ie.:server)
I can make 2 different files using interface builder to have 2 different file to be installed. In this case the problem is the following the server ip or hostname in the created file is fixed. And if anything changes inthe application I have to create a new one and deploy again to all phones and tablets.
Is there any other possibility to use 2 or more different magic applications? Servers, application settings and broker can vary. May be on one server magic uses mgrqcgi on the other mgrqispi.

Regards,

Viktor


Tim Downie
 

Hi -

My Phone has 3 different Android RIA apps all pointing to different servers when I build the APK i tell the it to create the txt flile  on the server.

Im not sure what you mean by if anything changes in the application you need to create a new build. you only need to create a new APK should u use java.classes and add a new one or you move host.
If you are just changing the magic logic then you just republish the ecf and restart broker.

or am I not understanding the question here?


From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of lehoczki.viktor via Groups.Io <lehoczki.viktor@...>
Sent: Monday, 11 November 2019 1:30 PM
To: main@magicu-l.groups.io <main@magicu-l.groups.io>
Subject: [magicu-l] Magic XPA 3.3 RIA deployment problem #xpa #ria
 
Dear Group Members,

I would like to use 2 separate applications on the same android phone or tablet. The account settings on the phone are different (ie.:server)
I can make 2 different files using interface builder to have 2 different file to be installed. In this case the problem is the following the server ip or hostname in the created file is fixed. And if anything changes inthe application I have to create a new one and deploy again to all phones and tablets.
Is there any other possibility to use 2 or more different magic applications? Servers, application settings and broker can vary. May be on one server magic uses mgrqcgi on the other mgrqispi.

Regards,

Viktor


lehoczki@...
 

Dear Tim,

Currently when I deploy the magicdev.apk only 1 icon appears on the screen of the phone and in android only 1 account setting can be set.
So I write into the setting only 192.x.x.x/MagicScripts/X.txt
X.txt contains the application properties.
I'd like to have 2 icons with 2 settings.
As far as I know it's only possible when I use Options/Interface builder/Rich Client Deployment.
In this menu I have to add the server ip or host name. So when I install the application in the install files the server and all the logic of the application is coded. Am I wrong?
Is the any other way? How can I deploy in another way? 

In this current situation yes I only stop the broker then copy the new ecf and start the broker.


Tim Downie
 

Im not really aure why you would want to do this have the same install twice but pointing to different servers?

Yes you can do this but its requires to diiferent published appplications and apks
From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of lehoczki.viktor via Groups.Io <lehoczki.viktor@...>
Sent: Tuesday, 12 November 2019 8:15:56 AM
To: main@magicu-l.groups.io <main@magicu-l.groups.io>
Subject: Re: [magicu-l] Magic XPA 3.3 RIA deployment problem #xpa #ria
 
Dear Tim,

Currently when I deploy the magicdev.apk only 1 icon appears on the screen of the phone and in android only 1 account setting can be set.
So I write into the setting only 192.x.x.x/MagicScripts/X.txt
X.txt contains the application properties.
I'd like to have 2 icons with 2 settings.
As far as I know it's only possible when I use Options/Interface builder/Rich Client Deployment.
In this menu I have to add the server ip or host name. So when I install the application in the install files the server and all the logic of the application is coded. Am I wrong?
Is the any other way? How can I deploy in another way? 

In this current situation yes I only stop the broker then copy the new ecf and start the broker.


Andreas Sedlmeier
 

On Tue, Nov 12, 2019 at 10:46 AM, Tim Downie wrote:
Im not really aure why you would want to do this have the same install twice but pointing to different servers?
Thats the whole point of CI/CD. The application I currently work on which is Angular on frontend and Java on backend is I think deployed to 20 or 30 different environments (for testing, feature branches, integration, whatever). Only production environment there's just one. That however is a cluster. Kubernetes actually.

It's however not what Victor wants as far as I understand it. He wants two different icons on his mobile device (Android) pointing to two different applications and for that you just have to create two Magic (RIA) applications. Server settings and such would be (could be) identical, it's only the appName which needs to differ because thats what the requester will use in order to find an application server (by asking the broker).

Since its the interface builder which generates the required Java sources it's not possible to build any Magic RIA application without and if there's a change where you are not absolutely sure that it has no impact on the client side, you need to run the Interface builder again. A way to automate this there's none as far as I know . There's however some promises from MSE to come up with a version which fits better in modern DevOps / GitOps - automated delivery pipelines, ... 

Best regards,

Andreas


Tim Downie
 

The only way i see right now is publish apk twice. Or as mamy times as you need - we do this for all our mobile apps - one for dev one for prod. This i dont see really as much of an issue
From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of Andreas Sedlmeier <sedlmeier@...>
Sent: Tuesday, 12 November 2019 11:46:31 AM
To: main@magicu-l.groups.io <main@magicu-l.groups.io>
Subject: Re: [magicu-l] Magic XPA 3.3 RIA deployment problem #xpa #ria
 
On Tue, Nov 12, 2019 at 10:46 AM, Tim Downie wrote:
Im not really aure why you would want to do this have the same install twice but pointing to different servers?
Thats the whole point of CI/CD. The application I currently work on which is Angular on frontend and Java on backend is I think deployed to 20 or 30 different environments (for testing, feature branches, integration, whatever). Only production environment there's just one. That however is a cluster. Kubernetes actually.

It's however not what Victor wants as far as I understand it. He wants two different icons on his mobile device (Android) pointing to two different applications and for that you just have to create two Magic (RIA) applications. Server settings and such would be (could be) identical, it's only the appName which needs to differ because thats what the requester will use in order to find an application server (by asking the broker).

Since its the interface builder which generates the required Java sources it's not possible to build any Magic RIA application without and if there's a change where you are not absolutely sure that it has no impact on the client side, you need to run the Interface builder again. A way to automate this there's none as far as I know . There's however some promises from MSE to come up with a version which fits better in modern DevOps / GitOps - automated delivery pipelines, ... 

Best regards,

Andreas


Andreas Sedlmeier
 
Edited

On Tue, Nov 12, 2019 at 07:48 PM, Tim Downie wrote:
The only way i see right now is publish apk twice. Or as mamy times as you need - we do this for all our mobile apps - one for dev one for prod. This i dont see really as much of an issue
And how do you actually do this ? The configuration file contains information about the backend and that gets compiled into the apk during build process. So either you work with different application properties (which is in terms of Magic Interface Builder) different applications or you replace the configuration file before build - or after build in the apk, If you dont do and you initially specified your production environment as backend your dev apk will access production and vice versa. Do I miss something here ?? Im not really familiar with RIA deployments.

P.S./Ediit: Its following file which gets generated by the Interface builder and from where the builder (mostly powershell a little gradle) will read the configuration information from:
https://github.com/asedl/XpaDemo/blob/master/Components/XpaTMobile/PublishedApplication/Android/XpaTMobile.txt
That needs to be replaced (changed) before the actual build starts. Otherwise this information will end up in apk 

Correct ?

Andreas


Tim Downie
 

We just build the apk twice into two different published folders using the interface builder....you end up with two apks in two different virtual iis folders with two different sets of properties defined in the properties.txt file inside the published foler.
From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of Andreas Sedlmeier <sedlmeier@...>
Sent: Wednesday, 13 November 2019 8:15:46 AM
To: main@magicu-l.groups.io <main@magicu-l.groups.io>
Subject: Re: [magicu-l] Magic XPA 3.3 RIA deployment problem #xpa #ria
 

[Edited Message Follows]

On Tue, Nov 12, 2019 at 07:48 PM, Tim Downie wrote:
The only way i see right now is publish apk twice. Or as mamy times as you need - we do this for all our mobile apps - one for dev one for prod. This i dont see really as much of an issue
And how do you actually do this ? The configuration file contains information about the backend and that gets compiled into the apk during build process. So either you work with different application properties (which is in terms of Magic Interface Builder) different applications or you replace the configuration file before build - or after build in the apk, If you dont do and you initially specified your production environment as backend your dev apk will access production and vice versa. Do I miss something here ?? Im not really familiar with RIA deployments.

P.S./Ediit: Its following file which gets generated by the Interface builder and from where the builder (mostly powershell a little gradle) will read the configuration information from:
https://github.com/asedl/XpaDemo/blob/master/Components/XpaTMobile/PublishedApplication/Android/XpaTMobile.txt
That needs to be replaced (changed) before the actual build starts. Otherwise this information will end up in apk 

Correct ?

Andreas


Andreas Sedlmeier
 

On Wed, Nov 13, 2019 at 11:13 AM, Tim Downie wrote:
We just build the apk twice into two different published folders using the interface builder....you end up with two apks in two different virtual iis folders with two different sets of properties defined in the properties.txt file inside the published foler.
Ok, thanks for clarification, then it's clear. You in fact use the interface builder twice to create two different apks. "Publish apk twice" did sound to me as if you would use one apk for different environments.

Actually, in order to support as many environments as you want, you do not need to use the interface builder more then once because you can also start the build after replacing the configuration files or even change the configuration of the generated apk. At the end its a Java jar respectively a zipfile and actually it's a good idea to do it like that because then you can factor out errors during "interface building" and what you depoloy to production is actually what you did use in dev/test too.


lehoczki@...
 

Dear Andreas and Tim!

Thank you for your infos!
So, I have to do interface building as many times I need icon on my phone.
Yes, I want to do this because there're different applications for a company which runs on different servers.There's no possibility to use one magic broker. This is the same situation with testing and production environment.
Thank you very much!

Best regards,

Viktor


Andreas Sedlmeier
 

On Thu, Nov 14, 2019 at 08:32 AM, <lehoczki.viktor@...> wrote:
Thank you for your infos!
So, I have to do interface building as many times I need icon on my phone.
Yes, I want to do this because there're different applications for a company which runs on different servers.There's no possibility to use one magic broker. This is the same situation with testing and production environment.
Thank you very much!
If you have two different apps you have to run the Interface builder for each of this. Its different apps.

If you have ONE app which you want to deploy to multiple sites/environments you have to run the interface builder multiple times, and change settings there.

This is however error-prone, a lot of work and a never ending story

When you want to deploy an app to multiple environments (like you have to) you are much better off with a build pipline.

The Magic mousclick-based Interface building technology you can not change but once you did and the sources are generated you can run the build from script and exchange the configuration file to one which is needed for the environment you want to deploy to, This can be automated.

I would install me a gitlab to get git and gitlab-ci and deploy to Kubernetes which is nicely integrated there.
In Kubernetes you can separate your environments by namespaces and you can have as much as you want

Magic & Kubernetes is however a different issue ^^ https://www.nomadproject.io/ might fit better for Legacy applications.
I see if I can add what I described to XpaDemo . Its about deployment anyways.

Best regards,

Andreas









Tim Downie
 

You can start 10 engines on one broker if you want to , all servicing a different application....giveing you 10 icons on your android device. By having each with a different application name - this of course uses more licenses but is easy to setup
From: main@magicu-l.groups.io <main@magicu-l.groups.io> on behalf of lehoczki.viktor via Groups.Io <lehoczki.viktor@...>
Sent: Thursday, 14 November 2019 7:32:05 AM
To: main@magicu-l.groups.io <main@magicu-l.groups.io>
Subject: Re: [magicu-l] Magic XPA 3.3 RIA deployment problem #xpa #ria
 
Dear Andreas and Tim!

Thank you for your infos!
So, I have to do interface building as many times I need icon on my phone.
Yes, I want to do this because there're different applications for a company which runs on different servers.There's no possibility to use one magic broker. This is the same situation with testing and production environment.
Thank you very much!

Best regards,

Viktor