Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Maven extensions to build the sample application in one reactor run. #6

Merged
merged 8 commits into from Mar 28, 2018

Conversation

@lauritziu
Copy link

lauritziu commented Mar 8, 2018

The pullrequest contains the following highlevel changes:

  • provides a maven extension that makes it possible to package the p2 repository and the product in one maven module. There is no additional module necessary as in the sample at e4-efxclipse-maven-sample. This is done by deferring Tycho, which wants to verify the existence of the referenced generated p2-repo at a very early moment, where the repo was not yet genererated. Therefore the build fails. The extension enables tycho after the p2-repo was generated.
  • provides a maven extension, which is able to generate all the maven dependency definitions for the target platform feature pom. All the information are extracted from the official efxclipse update site which is configurable. At the moment there is a whitelist used to limit the maven dependencies to the ones originally referenced in the e4-efxclipse-maven-sample. We would need to understand how the list in the sample was produced.
  • minor changes in the original plugins to improve the stability for projects having pom dependencies and error output
  • all that is already in place and working in a patched sample (pullrequest will follow) forked e4-efxclipse-maven-sample

It would be great, if we could talk about the target platform generation and the necessary dependencies. Our goal is to just give the update site url from efxclipse and you have the target platform setup.

Thomas Fahrmeyer added 5 commits Dec 7, 2017
- just work in progress

- just work in progress
- deactivated tycho dependency because otherwise there are ClassCastException for the simple BuildEventSpy.

-minor changes

added gitignore

- IMPORTANT: set the tycho dependency to scope "provided" no let the parent classloader load Tycho classes

- introduced a new LifecycleParticipant which is executed before the tycho one. That will generate the repo.

- new module: maven-osgi-package-support to hold the business logic for creating a local p2-repo. This will be used from other extensions/plugins.
- product can be build in two steps.
- work in progress

- most is working but the P2ApplicationLauncher can not yet be used, because of Classloading issues. Raises a ClastCastException.

- works now, but looks like a hack

- optimized: activating a profile "create-repo" which should activated the packaging plugin
- use system property "tycho.mode=maven" to disable the Tycho lifecycle

- new working approach: switch off Tycho Lifecycle, wait for finishing the p2-package plugin, activate the tycho lifecycle with property, get the tycho lifecycle component and start the afterProjectsRead() phase
- package plugin can defined as normal and bound to pre-package phase

- cleanup

- cleanup
- removed module maven-osgi-package-support

- renaming of the module p2-repo-generator
- added comments

add build settings

- module renamings

LEH-14175: added comments

LEH-14175: added comments

LEH-14175: enhanced the Readme.md

LEH-14175: - improved logging if JAR dependency has no Manifest and is no OSGI Bundle

LEH-14175: - changed wording

LEH-14175: - improved logging for non OSGI bundles
- refactored code to check OSGI bundles and support ASCII colors in terminal windows

LEH-14175: - improved logging for non OSGI bundles
- refactored code to check OSGI bundles and support ASCII colors in terminal windows
- changed pom type to maven-plugin for the exec plugin

LEH-14591 fixed handling of none "jar" type artifact

LEH-14479 Write pathes to config.ini as an URI so that no backslashes will be used -> backslashes are a problem when reading the properties -> they are filtered out

LEH-14393 : Added new Project that reads the eclipse feature dependencies and adds it as a maven extension to a poms dependencies

LEH-14128: improved maven-osgi-plugins to ignore pom-Artifacts, that avoids errors
# This is the 1st commit message:

merged changes from master

# This is the commit message #2:

LEH-14640 Delete inject-dependencies-extension.
# This is the 1st commit message:

cleanup

# This is the commit message #2:

LEH-14640 Delete sample project files.
- added maven extension to generate the efxclipse target platform
dependencies
@tomsontom

This comment has been minimized.

Copy link
Member

tomsontom commented Mar 8, 2018

Very cool! I'll look at itm later on. Just from the process point of view. Do you by chance have a signed ECA (https://wiki.eclipse.org/ECA).

The reason I ask is that we maybe one day want to fold that work into e(fx)clipse (or some other Eclipse.org project) and it would make the process then easier because all contributions are coming from people who signed the ECA?

@@ -0,0 +1,346 @@
<settings>

This comment has been minimized.

Copy link
@tomsontom

tomsontom Mar 8, 2018

Member

I don't think this file should be in the pull request

This comment has been minimized.

Copy link
@lauritziu

lauritziu Mar 8, 2018

Author

Sure, I'll delete it.

This comment has been minimized.

Copy link
@lauritziu

This comment has been minimized.

Copy link
@lauritziu

lauritziu Mar 8, 2018

Author

I've just signed the ECA as user lauritziu_ii@yahoo.de. Is that enough. Do you need anything else?

Copy link
Member

tomsontom left a comment

Generally everything looks good (I only looked at the code and have not yet tested it).

I saw that the new code your introduced is living in the de.zeiss namespace. Is this on purpose?

private final static String END_SEQUENCE = "\u001B[0m";

private TerminalOutputStyling(String escSequenz) {
this.escSequenz = escSequenz;

This comment has been minimized.

Copy link
@tomsontom

tomsontom Mar 8, 2018

Member

Please use Sequence and not Sequenz

This comment has been minimized.

Copy link
@lauritziu

lauritziu Mar 8, 2018

Author

The namespace comes from the company I'm currently work for as freelancer. Would you like it to be at.bestsolution? I can even use my own namespace. No problem.

This comment has been minimized.

Copy link
@tomsontom

tomsontom Mar 15, 2018

Member

yes if that is ok with your the company - then I'd prefer at.bestsolution. On the ECA: Yes this is fine! Let's document that stuff on the issue itself.

*/
private final static String END_SEQUENCE = "\u001B[0m";

private TerminalOutputStyling(String escSequenz) {

This comment has been minimized.

Copy link
@tomsontom

tomsontom Mar 8, 2018

Member

Please use Sequence and not Sequenz

This comment has been minimized.

Copy link
@lauritziu

lauritziu Mar 8, 2018

Author

Changed the wording in the last commit.

@tomsontom tomsontom merged commit 0b74cc5 into BestSolution-at:master Mar 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.