felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alejandro.E...@miranda.com
Subject Re: iPojo workflow
Date Wed, 25 Jun 2014 15:45:00 GMT
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 <clement.escoffier@gmail.com>
To:     Apache Felix - Users Mailing List <users@felix.apache.org>, 
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, alejandro.endo@miranda.com 
(alejandro.endo@miranda.com) 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.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message