Eclipse integration of master fails

Hi,

summary:

  • i was on holiday around 10 days and git pull from metasfresh/metasfresh and git push into my fork
  • i am confused about missing folder de.metas.endcustomer.mf15 after git clone
  • build from command line works with build successful result
  • after try to integrate into eclipse this folder apears… that confuses me extremely!
  • de.metas.endcustomer.mf15/de.metas.endcustomer.mf15:de.metas.endcustomer.mf15.ait pom references parent, but there is no pom.xml anymore in de.metas.endcustomer.mf15 and in eclipse i get:

a)
Project build error: Non-resolvable parent POM for de.metas.endcustomer.mf15:de.metas.endcustomer.mf15.ait:[unknown-version]: Failure to find de.metas.endcustomer.mf15:de.metas.endcustomer.mf15:pom:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and ‘parent.relativePath’ points at wrong local POM

b)
Project build error: Non-resolvable parent POM for de.metas.endcustomer.mf15:de.metas.endcustomer.mf15.serverRoot:[unknown-version]: Failure to find de.metas.endcustomer.mf15:de.metas.endcustomer.mf15:pom:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and ‘parent.relativePath’ points at wrong local POM

furthermore i am missing the following projectfolders in eclipse:
de.metas.endcustomer.mf15.swingui
de.metas.endcustomer.mf15.dist
de.metas.endcustomer.mf15.base
these folders are empty on my filesystem!

  1. merged master with latest commit f6debc9ad33ea964e400c73de1566d77fd509abf

  2. build from command line works without failure
    (although i get of something similar like of the following what consumes a lot of time during build if i delete de.metas* in my local .m2 before: [WARNING] The POM for de.metas.assemblies:de.metas.assemblies:jar:1.490 is missing, no dependency information available

  3. import into eclipse by import existing maven project resulst in 24 errors, update maven project does not help

  4. checked https://github.com/metasfresh/metasfresh/blob/release-2017-08/de.metas.endcustomer.mf15/pom.xml —> folder de.metas.endcustomer.mf15 exists there including the pom.xml

  5. reproduce with original master from metasfresh/metasfresh, also missing folder de.metas.endcustomer.mf15 after git clone

  6. after mvn install on command line there still is no folder de.metas.endcustomer.mf15

  7. import into eclipse by import existing maven project and now again i get:
    Project build error: Non-resolvable parent POM for de.metas.endcustomer.mf15:de.metas.endcustomer.mf15.ait:[unknown-version]: Failure to find de.metas.endcustomer.mf15:de.metas.endcustomer.mf15:pom:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and ‘parent.relativePath’ points at wrong local POM
    (but this time only 1 error instead of 24)

  8. i mark all project folders and perform a maven->update project with no success

  9. i did not delete de.metas* in my local .m2 before

after more than 6 hrs of try and error and building new and new and new, i give up now at this point as i am very sure that de.metas.endcustomer.mf15 with it submodules is missing, although i can not exclude that there is a mistake on my side.

the only fact i can see is that de.metas.endcustomer.mf15 was droped on master in the last 8-10 days.

please help

Kind regards
daveyx

hmm, found it now that de.metas.endcustomer.mf15 was moved to metasfresh-dist

hi,

as far as I know as it was moved outside to metasfresh-dist.

Check the readme: https://github.com/metasfresh/metasfresh-dist

cheers,
Norbert

Hi Norbert,

yes moved there, now all dependencies to the other modules must be fullfilled in order to be able to run the servers and clients. Before that was not neccessary.

Kind regards
David

Hi @daveyx,
a Hint: if you use de.metas.SwingUIApplication_mf15_with_embedded_server.launch to start mf from eclipse. To use this launch you have to change the dir of the props, see screenshot:

regards

Hi homebeaver,

thanks for reply, but i don’t understand the hint?
I was able to start the server without to change this property.
In my corresponding launch config i still have:
-DPropertyFile="${project_loc:de.metas.endcustomer.mf15}/metasfresh.properties"

Why one have to add “.swingui” there?
It runs without that change and i can not find that instruction in the docs.

Kind regards
David

If you checkout from scratch, there is no dir de.metas.endcustomer.mf15. Neither in repo metasfresh, nor in metasfresh-dist. Probably you have some not cleaned remains and it works. Good for you.

regards

Hi homebeaver,

thanks for clarification.

No, there is no not cleaned stuff and you are right, there is no de.metas.endcustomer.mf15 folder in my freshly cloned metasfresh-dist working copy on the file system.

But funnywise, i can see a de.metas.endcustomer.mf15 project in eclipse which has the root folder of my working copy as location.

This project contains the properties file. I am very sure it will be generated at first start of the de.metas.SwingUIApplication_mf15_with_embedded_server.launch according to the docs:
http://docs.metasfresh.org/developers_collection/en/getting_started_ide_en.html
Note that the server needs a preexisting metasfresh-properties file. In case it does not find such a file, it will fail. It is recommended to first run the client with embedded server.

With kind regards
daveyx

hi Daveyx,

did you see this page as well ?
http://docs.metasfresh.org/developers_collection/en/getting_started_clone_en.html

As I understood it lists the repos you need.

@metas-ts Would be nice to have your feedback on this.

cheers,
Norbert

Hi Norbert,

thanks for your reply, i know this page already, although i didn’t use it. I’ve just tried to build metasfresh-dist until it worked :slight_smile:

what was new for me in order to get the server running:

  1. must build de.metas.esb
  2. must build metasfresh-procurement-webui (although i don’t know yet for what it is good for…)

The repos listed there are correct from my point of view.

Kind regards
daveyx

Hi,
we extracted de.metas.endcustomer.mf15 out of the metasfresh repo into a dedicated repo called metasfresh-dist (dist for “distibution”) in the hopes to make the structure and build process less complicated. Turns out that it introduced problems for devs who just want to run the “main” stuff from eclipse.

Also note, that now we additionally have metasfresh-dist-orgs which creates distributatbles that are adapted to orgs/societies/federations rather than sales and production companies. The code is and will be the same, but there is some SQL in it to add/movify windows and in future there might also be special jasper files, e.g. to create membership badges.

  1. must build de.metas.esb
  2. must build metasfresh-procurement-webui (although i don’t know yet for what it is good for…)

those two are part of the "“overall” distribution, but most users might not need it.

metasfresh-procurement-webui is (as the repos description sais)
“A simple standalone mobile webui where a vendor can report a supply.”
The thing is that e.g. in metasfresh a user can make request for quotation, such as “will buy such and such carrots” and that quation then shows up on the farmers’ smartphones (if they log on to the web site provided by the procurement-webui) and then they can drive to their fields, look at theirs crops and make biddings like “next week i can deliver you 20tons of carrors for such and such price”). The bid is forwarded into metasfresh and the there a user can then decide and create turn bids into purchase orders.
The procurement-webui and metasfresh itself can run on different machines that can be connected by a shaky/unreliable internet link.

The esb bundles are intended to run in servicemix and can

  • convert EDI files and send them to metasfresh,
  • allow locally running stanalone printing clients to connect to metasfresh via http (kindof like google printing cloud).

Since you guys already sorted out the problems I didn’t really help, but I hope this provided a bit of the bigger picture :slight_smile:

Be the way, you had to build those two, because the pom.xml has every dependency with version 1.0.0. That version is not is not on repo.metasfresh, but actual current versions are.
In the jenkins build, we update the “1.0.0” to the respective latest versions.

If anyone is interested in checking out how jenkins does it, it’s in this Jenkinsfile …kindof getting interesting around line 146.

Hi @metas-ts

thanks for detailed clarification.

I wanna contact you around next week. I hope it is ok if i use the email address provided in the gitter chat.

Kind regards
daveyx