that sounds great Clement!

I will wait until next week to try it then since I do need Java 8 support

One small question though, can this run on top of equinox instead of
felix?

Alejandro Endo | Software Designer/Concepteur de logiciels





From:   Clement Escoffier <[email protected]>
To:     Apache Felix - Users Mailing List <[email protected]>,
Date:   2014-06-25 04:18 AM
Subject:        Re: iPojo workflow




Hi,

We are working on a new toolset to speed up the development of iPOJO
applications. So far, theses tools are developed for web applications, but
can be applied almost everywhere.

In the Wisdom Project (http://wisdom-framework.org), we developed a
?watch? mode based on Apache Maven. Why Maven ? Because it?s our
reference, and all our developers, our CI servers even our QA team uses
it. So, it avoids the uncanny valley feeling you have using IDE-centric
development.

With Wisdom, you launch Maven once, and it does its job on every file
change. Wisdom is based on Apache Felix and iPOJO meaning that Wisdom
artifacts are OSGi bundles that, if they contain iPOJO components, are
also manipulated.

So, what about the process with this tool:
- you create a project
- you import the project into intellij or eclipse as a Maven project or as
an Eclipse project (after having executed mvn eclipse:eclipse)
- you launch mvn wisdom:run - it launches a Felix framework with all the
Wisdom services (including iPOJO, Configuration Admin?)
- you are all set, happy coding

Then, every time you save a file from your project, it re-compiles,
rebuilds the bundle and redeploys it.

Notice that, the launched Felix framework contains all the bundles on
which your project depends on. So, if in your project?s pom file, you have
a dependency that is a bundle, it is deployed (by default, Wisdom also
deploy transitive dependencies).

Wisdom also provides testing support reproducing the configuration, deploy
your bundles and let you test your services, components and so on. If you
are developing web applications it also offers blackbox and
selenium/fluentlenium support.

The 0.6 version of Wisdom is going to be released on Friday. This new
version supports Java 8, and a basic support for multi-module projects.

The experiences, we are running in Wisdom, are going to be integrated in
iPOJO. In other words, the watch mode and ?distribution-based-development?
are on the iPOJO 2 roadmap.

Regards,

Clement

PS: Wisdom is not part of Apache Felix, but it?s open source and licensed
under the ASL 2.0.

On 23 juin 2014 at 21:29:38, [email protected]
([email protected]) wrote:

I was wondering what kind of workflow some of the people in the mailing
list use for developing with iPojo. Can some of you give me some details
of how the normal development cycle of changing code, building,
provisioning, running goes?

The one I was using before we needed Java 8 was:
1) Modify the code
2) The iPojo nature plugin did the bytecode manipulation in the .class.
All this automatically and within eclipse, just as soon as you did CTRL+S
3) The Tycho Configurator + maven-bundle-plugin did the manifest
generation including the IPOJO-Components, also within eclipse and as soon

as you did CTRL+S
4) I ran (by restarting the OSGi container every time) using PDE with
equinox by just setting the iPojo bundle as part of the target platform
and my bundles with the iPojo components ran from the workspace (i.e. as
exploded jars)

This was a pain to configure for new developers and you had to remember to

enable the iPojo nature in projects that had ipojo components since it was

not added automatically by m2e
Now that the iPojo Nature doesn't work well with iPojo 1.12 i'm thinking
of some better workflows. I am thinking of something like this

1) Modify the code
2) run mvn package to construct the jar already manipulated (via
maven-ipojo-plugin) and the bnd-ipojo-plugin to ipojo'ize the manifest
3) provision the jar to a running instance of equinox, maybe just moving
the jar to a file watched by felix file-install. This way i won't have to
restart the container every time

Some problems I foresee with the new workflow are. 1) you need to run
maven every time, which is slow, so maybe the whole chain will not be
triggered with just CTRL+S but with an explicit action to start the whole
pipeline when the developer is ready to test. 2) i need to find a way to
move the jar to the file-install folder, probably via some maven hack
(unless someone has an idea on how to provision directly to equinox via a
maven plugin or something?)

Any other workflow you guys can share will help me. I am looking for
maven-friendly workflows since at the end I need to be able to build the
production bundles in a central Jenkins build

Thank you

Alejandro Endo | Software Designer/Concepteur de logiciels


DISCLAIMER:
Privileged and/or Confidential information may be contained in this
message. If you are not the addressee of this message, you may not
copy, use or deliver this message to anyone. In such event, you
should destroy the message and kindly notify the sender by reply
e-mail. It is understood that opinions or conclusions that do not
relate to the official business of the company are neither given
nor endorsed by the company.
Thank You.


DISCLAIMER:
Privileged and/or Confidential information may be contained in this
message. If you are not the addressee of this message, you may not
copy, use or deliver this message to anyone. In such event, you
should destroy the message and kindly notify the sender by reply
e-mail. It is understood that opinions or conclusions that do not
relate to the official business of the company are neither given
nor endorsed by the company.
Thank You.

Reply via email to