OpenEdge Architect: multiple projects for same application

Posted by peggycole on 02-Jun-2015 10:24

Hi,

We are working with the OpenEdge Architect in 10.2 SP 7 HF 10 on Windows 7.

We have a "default" application that, depending on the propath, works for several customers. It is actually the order of the propath entries that vary in the propath for each customer. This means that for customer 1 the propath can be c:\myapp\prg,c:\myapp\dis,c:\myapp\crm and for customer 2 the propath can be c:\myapp\dis,c:\myapp\prg,c:\myapp\crm. I know this is not the way it should be, but it is the situation we are coping with (application is 20years+)...

The default location of the application is c:\myapp, all entries in the propath are subdirectories of that folder. In the OpenEdge Architect we want to see the content of the c:\myapp directory (and his subdirectories)

Now, we want to start using the OpenEdge Architect for this application (multiple developers). We thought that we could define 1 project for each propath (so 1 project for each customer) but we fail setting this up in the OpenEdge Architect.

Creating a project in the c:\myapp directory is not an option because the .propath-file is normally created in the application directory (i.c. c:\myapp) and that is not what we want because of the different propaths for each project.

So we tried to set the default location of the project to another folder (c:\myprojects\customer1) so the project files will be generated in this folder. Propath is set correctly but the content of the c:\myapp directory are not shown in the project explorer view. One of the many things we've already tried  is to change the @{app} variable to c:\myapp but that made no difference.

What are we missing or is what we want to establish not possible?

Kind regards,
Peggy

Posted by Matt Baker on 03-Jun-2015 09:05

Several of the source control plugins for eclipse have problems with linked resources (clearcase plugins throw NPE all over the place) or simply don't support them (SVN at one point didn't work at all...not sure if it has been fixed).  Your mileage will vary.

What it seems you need is is separate .r files for customers based on which include file is in the PROPATH.  PDSOE has no way to generate multiple r files for a single .p.  It runs a single code path per .p, and generates one only one .r per .p.  The only way around this is to turn off save of r-code on the compile (there is option in project preferences to do this) and use separate run configurations each with a separate PROPATH and let the AVM compile on the fly.  This is imperfect as you won't get a compile for each customer, but only the one mapped for the current PROPATH.

I believe RoundTable can handle something like this with separate branches for different customers and it takes care of the compile and run when the include file changes.

I would suggest you review your use of include files and make some effort to get away from this model.

Posted by peggycole on 04-Jun-2015 02:41

Working with the c:\myapp directory as linked folder is exactly what we needed! It was the magical trick we were missing :-).

Tnx for all the suggestions!

All Replies

Posted by Mike Fechner on 02-Jun-2015 10:43

Do you need different Propath for compile or run?



Von meinem Windows Phone gesendet

Von: peggycole
Gesendet: ‎02.‎06.‎2015 17:25
An: TU.OE.Development@community.progress.com
Betreff: [Technical Users - OE Development] OpenEdge Architect: multiple projects for same application

Thread created by peggycole

Hi,

We are working with the OpenEdge Architect in 10.2 SP 7 HF 10 on Windows 7.

We have a "default" application that, depending on the propath, works for several customers. It is actually the order of the propath entries that vary in the propath for each customer. This means that for customer 1 the propath can be c:\myapp\prg,c:\myapp\dis,c:\myapp\crm and for customer 2 the propath can be c:\myapp\dis,c:\myapp\prg,c:\myapp\crm. I know this is not the way it should be, but it is the situation we are coping with (application is 20years+)...

The default location of the application is c:\myapp, all entries in the propath are subdirectories of that folder. In the OpenEdge Architect we want to see the content of the c:\myapp directory (and his subdirectories)

Now, we want to start using the OpenEdge Architect for this application (multiple developers). We thought that we could define 1 project for each propath (so 1 project for each customer) but we fail setting this up in the OpenEdge Architect.

Creating a project in the c:\myapp directory is not an option because the .propath-file is normally created in the application directory (i.c. c:\myapp) and that is not what we want because of the different propaths for each project.

So we tried to set the default location of the project to another folder (c:\myprojects\customer1) so the project files will be generated in this folder. Propath is set correctly but the content of the c:\myapp directory are not shown in the project explorer view. One of the many things we've already tried  is to change the @{app} variable to c:\myapp but that made no difference.

What are we missing or is what we want to establish not possible?

Kind regards,
Peggy

Stop receiving emails on this subject.

Flag this post as spam/abuse.

Posted by Tim Kuehn on 02-Jun-2015 11:07

I've got something like that for a code base that has a common code base, and various deployment configurations. In my case, each code group has its own block of code, with propaths to map to the other projects as required. 

This'll do what you want: 

Create a project for c:\myapp 
Create a project for a customer1 in c:\customer1. 
In "customer1", map the project's PROPATHs to the c:\myapp (and subdirectories) project as required. 

This'll get you the behavior you're after, although from the sounds of what you wrote, all the work'll have to be done in the "c:\myapp" project, and the "run-as" configured to run as the customer1 project. 



[collapse]
On Tue, Jun 2, 2015 at 11:25 AM, peggycole <bounce-peggycole@community.progress.com> wrote:
Thread created by peggycole

Hi,

We are working with the OpenEdge Architect in 10.2 SP 7 HF 10 on Windows 7.

We have a "default" application that, depending on the propath, works for several customers. It is actually the order of the propath entries that vary in the propath for each customer. This means that for customer 1 the propath can be c:\myapp\prg,c:\myapp\dis,c:\myapp\crm and for customer 2 the propath can be c:\myapp\dis,c:\myapp\prg,c:\myapp\crm. I know this is not the way it should be, but it is the situation we are coping with (application is 20years+)...

The default location of the application is c:\myapp, all entries in the propath are subdirectories of that folder. In the OpenEdge Architect we want to see the content of the c:\myapp directory (and his subdirectories)

Now, we want to start using the OpenEdge Architect for this application (multiple developers). We thought that we could define 1 project for each propath (so 1 project for each customer) but we fail setting this up in the OpenEdge Architect.

Creating a project in the c:\myapp directory is not an option because the .propath-file is normally created in the application directory (i.c. c:\myapp) and that is not what we want because of the different propaths for each project.

So we tried to set the default location of the project to another folder (c:\myprojects\customer1) so the project files will be generated in this folder. Propath is set correctly but the content of the c:\myapp directory are not shown in the project explorer view. One of the many things we've already tried  is to change the @{app} variable to c:\myapp but that made no difference.

What are we missing or is what we want to establish not possible?

Kind regards,
Peggy

Stop receiving emails on this subject.

Flag this post as spam/abuse.




--
Tim Kuehn:  Senior Consultant  - TDK Consulting Services
President - Ontario PUG 
Program Committee Chair - PUG Challenge Americas, 
Course Instructor: Intro to OO Concepts for Procedural Programmers

Skype: timothy.kuehn
Ph: 519-576-8100
Cell: 519-781-0081
[/collapse]

Posted by peggycole on 02-Jun-2015 13:26

I need it for running

I'll try Tim's suggestion tomorrow, sounds like my solution :-)

Posted by Mike Fechner on 02-Jun-2015 13:29

For running, just go with multiple „Run configurations”. Drop down the “Run” button in OEA and create or duplicate any number of run configurations.

Posted by peggycole on 03-Jun-2015 05:32

It is not for running but for developing. Some includes exists in different sub folders (= customer folders) and depending on the propath the compiler take other includes. So we need different projects for the same main folder...

I tried Tim's suggestion but in the customer-project the content op c:\myapp is not shown. Do we miss something here?

Is it possible to have a project where the project-property-files (.propath and others) are in a different folder then the folder where the application is in?

Posted by Tim Kuehn on 03-Jun-2015 06:31

Projects are, by definition, organizations of the code beneath them. 

For the structure I posited, the "common" project would have the code, the "customer" project would not - it would only have propath entries.

[collapse]
On Wed, Jun 3, 2015 at 6:32 AM, peggycole <bounce-peggycole@community.progress.com> wrote:
Reply by peggycole

It is not for running but for developing. Some includes exists in different sub folders (= customer folders) and depending on the propath the compiler take other includes. So we need different projects for the same main folder...

I tried Tim's suggestion but in the customer-project the content op c:\myapp is not shown. Do we miss something here?

Is it possible to have a project where the project-property-files (.propath and others) are in a different folder then the folder where the application is in?

Stop receiving emails on this subject.

Flag this post as spam/abuse.




--
Tim Kuehn:  Senior Consultant  - TDK Consulting Services
President - Ontario PUG 
Program Committee Chair - PUG Challenge Americas, 
Course Instructor: Intro to OO Concepts for Procedural Programmers

Skype: timothy.kuehn
Ph: 519-576-8100
Cell: 519-781-0081
[/collapse]

Posted by Swathi Yellavaram on 03-Jun-2015 08:28

You can try using linked folders and files. Keep all project files and folders in one place. Create project in workspace location only and under project create linked folder to the source. This way all files will be listed in project explorer. Same way you can have linked folders in other project also.

Please try and let us know if linked folders and files solves your problem.

Thanks,

Swathi.

Posted by James Palmer on 03-Jun-2015 08:30

I was going to suggest linked folders, but i've had some awful performance issues surrounding this in the past.

Posted by Matt Baker on 03-Jun-2015 09:05

Several of the source control plugins for eclipse have problems with linked resources (clearcase plugins throw NPE all over the place) or simply don't support them (SVN at one point didn't work at all...not sure if it has been fixed).  Your mileage will vary.

What it seems you need is is separate .r files for customers based on which include file is in the PROPATH.  PDSOE has no way to generate multiple r files for a single .p.  It runs a single code path per .p, and generates one only one .r per .p.  The only way around this is to turn off save of r-code on the compile (there is option in project preferences to do this) and use separate run configurations each with a separate PROPATH and let the AVM compile on the fly.  This is imperfect as you won't get a compile for each customer, but only the one mapped for the current PROPATH.

I believe RoundTable can handle something like this with separate branches for different customers and it takes care of the compile and run when the include file changes.

I would suggest you review your use of include files and make some effort to get away from this model.

Posted by peggycole on 04-Jun-2015 02:41

Working with the c:\myapp directory as linked folder is exactly what we needed! It was the magical trick we were missing :-).

Tnx for all the suggestions!

This thread is closed