Setting up dev env in Eclipse, Windows 10

Hi Team,

I’m trying to setting dev env for Metasfresh in Windows 10. I use eclipse as the IDE.

I’ve followed the dev guide to import the repos, config maven and build the projects from maven cli.
http://docs.metasfresh.org/pages/developers/index_en
There were some failing tests in few projects. But I was successful in building the artifacts by skipping the tests (-DSkipTests)

http://docs.metasfresh.org/developers_collection/en/getting_started_ide_en.html
Following the steps to getting started in eclipse, I’ve imported the projects in the eclipse.
But, I’m not able to find the .launch files specified in the guide.

Can someone please help me understand how to run and debug the application from eclipse?

Regards,
Roopesh.

Hi @RoopeshKumarH

my apologies, these docs were a bit outdated. The locations of your screenshot’s .launch config files have changed a bit. I just updated documentation, I hope it now serves better.

Anyways, when in doubt, you can identify all launch configs within eclipse using Ctrl-Shift-R and then filtering for *.launch.

Best regards
Tobias

Thanks @metas-ts for updating the document.

Would recommend any tips for debugging the app in eclipse?

Regards,
Roopesh.

Hi @RoopeshKumarH

no, nothing in particular besides the usual eclipse-debugging tips&tricks

Hi @metas-ts

Thanks for your inputs. I was able to setup the dev env, with the dev-DB, as guided in the developers index. But the, I’ve landed into issues. Please help me to sort these out. This is going to be a long post! Please bear with me.

I’m trying to work on the issue 5010.
I was successful in getting both SwingUI and WebUI-Frountend up and running, connected to local DB. Looks like the dev-DB does not seem to have the necessary schemas required for ‘Purchase Requisition’. I was not able to find the screens related to ‘Purchase Requisition’. (Also, the SwingUI showed most of the stuff in German, which I couldn’t comprehend)

Hence, I thought to switch to a remote DB (95.216.200.191:5432), where the test application (asc.mykloudz.ae) is already running. I just deleted the ‘metasfresh.properties’ file, so the I can provide new connection details.
When I connect to the remote DB, I got errors everywhere. (Sharing errors in drive, since I couldn’t upload more than one image!)
Errors in remote DB

Since I got errors, I thought of returning back to local dev-DB. I tried again after deleting the ‘metasfresh.properties’ file. But now, I’m getting errors in connecting to dev-DB as well!
Errors in Local DB

Now, neither I’m able to connect to remote DB nor able to work with local DB. Please help me resolve these issues.

Along with all the above issue, I also get error with MQ connection. There was no mention about setting up a MQ in the developers index. What is MQ used for? Is there any documentation about it? Or, is there way I can disable the use of MQ?

Thank you very much for your patience. Hope to see a response from you soon. :slight_smile:

Warm Regards,
Roopesh Kumar.

Hello @metas-ts,

I’m sure you are very busy. But, please spare some time to help me.

I’m stuck with the below errors.

I get this error when I run ServerRoot ot SwingUI.

2019-03-23 12:39:19.515 ERROR 13472 — [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘MSV3ServerRequestsRabbitMQListener’: Unsatisfied dependency expressed through field ‘stockAvailabilityService’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘MSV3StockAvailabilityService’ defined in file [C:\developement\repos\metasfresh\de.metas.vertical.pharma.msv3.server-peer-metasfresh\target\classes\de\metas\vertical\pharma\msv3\server\peer\metasfresh\services\MSV3StockAvailabilityService.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [de.metas.vertical.pharma.msv3.server.peer.metasfresh.services.MSV3StockAvailabilityService]: Constructor threw exception; nested exception is org.adempiere.exceptions.AdempiereException: Assumption failure: adSequence not null

When I run Webui-API, I get following erro.

org.adempiere.exceptions.DBException: ERROR: relation “ad_element_trl_effective_v” does not exist
Position: 337
SQL: SELECT e.ColumnName, e.Name, e.PO_Name, e.PrintName, e.PO_PrintName, e.Description, e.PO_Description, t.AD_Language, t.Name as TRL_Name, t.PO_Name as TRL_PO_Name, t.PrintName as TRL_PrintName, t.PO_PrintName as TRL_PO_PrintName, t.Description as TRL_Description, t.PO_Description as TRL_PO_Description FROM AD_Element e LEFT OUTER JOIN AD_Element_Trl_Effective_v t ON (t.AD_Element_ID=e.AD_Element_ID) WHERE UPPER(e.ColumnName)=UPPER(?)

Thanks,
Roopesh.

Hi @RoopeshKumarH
at least the second problem

org.adempiere.exceptions.DBException: ERROR: relation “ad_element_trl_effective_v” does not exist
Position: 337

Seems to hint at a database that’s not as resent as your code.
Did you already have a look at http://docs.metasfresh.org/developers_collection/en/getting_started_db_en.html, particularly the part about " Update the database from the master branch" ?

Thanks @metas-ts.

Yes, the issue was with the DB, it was not in the latest version.
There was a problem with applying the scripts. I modified two queries in the scripts and was able to upgrade the DB to latest version.

Also, I’ve installed RabbitMQ and set it up based on some config files.
Now I’m able to run the application.

I’ve some more questions for you.

  1. Is there a docker for the dev env? Like a container with eclipse, maven and other stuff pre configured.
  2. When I run the app using the launch files, if I make changes to code, will it be hot swapped immediately? or, should I build and re-launch the app?
  3. To Run the metasfresh-webapp-frontend, we need metasfresh-webapp-api. The ServerRoot is not mandatory. Then, for what purpose is this ServerRoot used?
  4. Is there a way, I can disable MQ and elastic in the dev env, just to reduce the resources consumed and increase the start-up time?
  5. Is there a way, to disable/remove some modules which I won’t be needing during development? Like the pharmacy vertical is probably not required for me.

Some of these questions might be silly, but please spare some time to reply.

Best Regards,
Roopesh Kumar.