Showing posts with label AOP. Show all posts
Showing posts with label AOP. Show all posts

Saturday, September 19, 2009

Eclipse 3.6 M2 is out - and includes Equinox Weaving

The second milestone of Eclipse 3.6 is available for download - and its the first milestone build that includes the Equinox Weaving feature as part of the Equinox 3.6 M2 downloads.

After graduating the Equinox Aspects work we renamed it to Equinox Weaving. The reason for this is: The design separates between the base mechanism of modifying bytecode at class loading time and the actual bytecode modification. The AspectJ-based aspect weaving for bundles is just one of many possible bytecode modifiers you can think of. Another one that we implemented (but is not yet part of the Equinox Weaving project) allows you to use Springs load-time weaving infrastructure on top of a OSGi runtime together with Spring Dynamic Modules. And the nice thing about it is: While you are free to choose whatever weaver you like, the caching mechanism of Equinox Weaving works independent from all those weavers.

We still need to update the Equinox web to reflect the graduation and design changes of Equinox Weaving, but please feel free to take a look at it. We are happy to answer questions on the newsgroup and the mailing list.

Enjoy!

Saturday, September 05, 2009

Eclipse Summit Europe 2009 Program Online

The technical program for Eclipse Summit Europe 2009 is now online and I am pretty happy to be part of it with two sessions:
  • Equinox Aspects - Bytecode Weaving for OSGi: This is some kind of an update talk on the Equinox Aspects (or better: Equinox Weaving) project. Will give some insights what has happened and what is planned for the future.
  • OSGi Best Practices: This is a joint talk with Jeff McAffer, Paul Vanderlei and Simon Archer where we will throw together our experiences from building apps on top of OSGi over the past years.
Don't forget to register for the event. Looking forward to seeing you all there!!!

Sunday, May 03, 2009

Equinox Aspects 1.0 M7a available for download

Because of a stupid bug in the caching area I put a fixed build of the milestone online. So if you tried M7 and observed performance problems with the caching, you should try this fixed milestone build instead from the Equinox Aspects download area.

Friday, May 01, 2009

Equinox Aspects 1.0 M7 available for download

The seventh milestone of Equinox Aspects is available for download from the Equinox Aspects download page. This milestone contains quite a large improvement for controlling the weaving of bundles. More details can be found in this comment on bug 255682. Take also a look at the New & Noteworthy list for 1.0M7 on the web to find out more.

Sunday, April 26, 2009

Load-Time Weaving for Spring-DM

Load-time weaving in an OSGi environment is different than in single-classpath-settings like you often have in Java. There you typically use a JVM agent or a specialized classloader that gets ClassFileTransformer components injected from your application. Those ClassFileTransformer components then to the real job of modifying bytecode at load-time. This is also used in the Spring framework to enable aspect weaving or JPA bytecode enhancements.
This gets different when you are working in an OSGi environment. Within OSGi you no longer have a single classpath application, you cannot (or at least should not) create specialized classloaders for yourself to do the magic, maybe the weaving should happen specifically for each bundle or the woven code gets additional dependencies woven into it. Using Spring in an OSGi environment doesn't make things easier. You can use Spring Dynamic Modules to implement really cool OSGi applications, but your Spring load-time weaving support remains broken to some degree (see all the related questions in the Spring-DM forum).
I often thought about using Equinox Aspects to solve these problems. Since Equinox Aspects is not tightly bound to AspectJ weaving only, you could re-use the base infrastructure to hook any kind of bytecode modifier into the Equinox runtime - and reuse the caching of Equinox Aspects at the same time.

Now I have a first sketch implemented that bridges between Spring-LTW and Equinox Aspects. The EquinoxAspectsLoadTimeWeaver class implements the LoadTimeWeaver interface of Spring and can therefore be used in your spring context as the load-time weaver component:

<context:spring-configured>
<context:annotation-config>
<context:load-time-weaver
class="org.eclipse.equinox.weaving.springweaver.EquinoxAspectsLoadTimeWeaver"/>

If you define this load-time weaver your bundle need to define an Import-Package on "org.eclipse.equinox.weaving.springweaver", of course.

To use this kind of load-time weaver definition to need to add "org.eclipse.equinox.weaving.hook" (from Equinox Aspects) to your target platform as well as "org.eclipse.equinox.weaving.springweaver":

When you launch your OSGi runtime you need to set the system property: (osgi.framework.extensions=org.eclipse.equinox.weaving.hook) and start the springweaver bundle right at startup. You can do this by adding it to the config.ini file (org.eclipse.equinox.weaving.springweaver@4:start). This is basically the same when using Equinox Aspects, except that you no longer start org.eclipse.equinox.weaving.aspectj but instead the springweaver bundle.

There are still some issues that need to be solved (see this comment in the spring forum for details), but I hope to can try it out and tell me what works fine and what needs some more work.

Feedback always welcome! Enjoy!

Tuesday, April 21, 2009

JAX 2009: What's New in Equinox Aspects

Today I gave an updated version of my EclipseCon short talk on What's New In Equinox Aspects at the Eclipse Forum Europe 2009, here in Mainz. Here are the slides:
Enjoy!

Thursday, April 16, 2009

Next version of Scala IDE for Eclipse uses Equinox Aspects

Today Miles Sabin posted details on the upcoming 2.7.4 release of the Scala IDE for Eclipse. I am pretty excited about the fact that it uses Equinox Aspects to implement deeper integration with JDT. It uses the same aspect bundle as AJDT called JDT weaving. Andrew Eisenberg gave a great talk on JDT weaving at EclipseCon 2009. Take a look at the slides if you would like to read more about JDT weaving using Equinox Aspects.

Tuesday, March 24, 2009

EclipseCon 2009: What's New in Equinox Aspects

Just a few minutes ago I finished my short talk on "What's New in Equinox Aspects" at EclipseCon 2009. The slides are online:
I am now looking forward to my talk tomorrow on "OSGi for Eclipse Developers" together with Chris and Bernd. Stay tuned!

Monday, February 02, 2009

Equinox Aspects 1.0 M5 available for download

The fifth milestone of Equinox Aspects is available for download from the Equinox Aspects download area. There are no new features, just a few bug fixes included in this milestone build.
Aside of that we discussed a few changes to the way Equinox Aspects can be used and are going to include some changes for the next milestone. The feedback from the AJDT team and their users is really useful to further improve the stability of Equinox Aspects and to ease the installation process. Special thanks to Andrew Eisenberg and Andy Clement for the feedback, discussions and contributions!

Wednesday, January 28, 2009

Short Talk on Using Equinox Aspects to Provide Language Developers with Deep Eclipse Integration

As you might now, the new version of AJDT uses Equinox Aspects to allow deeper integration of some AJDT features into the JDT. Andrew Eisenberg (from the AJDT team) will give a short talk about this at this years EclipseCon: "Aspects Everywhere: Using Equinox Aspects to Provide Language Developers with Deep Eclipse Integration". Aside of the fact that I am fascinated to see this usage of Equinox Aspects for AJDT (some kind of "eat your own dogfood"), I am excited about the design of this part of AJDT. It allows other language developers to reuse this part to achieve the same level of integration into JDT. Very cool stuff. I will definitely go to see Andrews talk to hear more about this!

Monday, January 26, 2009

Equinox Aspects and OSGi for Eclipse Developers at EclipseCon 2009

Just a few weeks from now the doors will open to a new EclipseCon in Santa Clara. I am very happy that I got a short and a long talk accepted this year!

The short talk "What's new in Equinox Aspects" will be an update on the Equinox Aspects project. We will briefly talk on the improvements and challenges during the past milestone builds.

The long talk "OSGi for Eclipse Developers" is an overview of those OSGi techniques and facets that are typically not very well known by people coming from the Eclipse world to OSGi. So obviously we will talk about using ImportPackage instead of RequireBundle, the concept of OSGi services and why they are extremely useful, and some more fun stuff.

I am looking forward to seeing you at EclipseCon!!!

Friday, December 12, 2008

Equinox Aspects 1.0 M4 available for download

The forth milestone build of Equinox Aspects is available for download. This build focuses on improving stability and reliability. Take a look at the 1.0 M4 New & Noteworthy page for more details and a list of fixed bugs.

Wednesday, December 03, 2008

Next version of AJDT uses Equinox Aspects

This morning I read this mailing list posting about using Equinox Aspects on the AJDT and AspectJ lists. Great to see that the AJDT team is going to use Equinox Aspects as supporting technology for the 1.6.2 release coming up at the end of this month. If you are interested you can find more details on this wiki page: JDT weaving features.

Friday, November 21, 2008

Slides and more from Eclipse Summit Europe 2008

I am back from the Eclipse Summit Europe 2008 in Ludwigsburg and found the time to put the slides from the talk on Equinox Aspects online (pdf). The slides are pretty much the same as from the previous talks I gave on aspect weaving for OSGi during the past weeks, so you won't find real new stuff in it. Nevertheless, giving this talk is just plain fun.

The RT symposium (I helped Heiko and Jeff a bit to organize it) on Tuesday morning was more or less an open discussion about topics around the RT project. We asked for answers to some questions upfront to the meeting and discussed those during the first part of the symposium. For sure some nice and interesting discussions came up during this. Nevertheless the second part of the symposium was a lot more lively and interesting from my point of view. We collected some topics, prioritized them and discussed them in the prioritized order (maybe something like "Open-Space Light"). There was a lot more discussion going on, more participation, sometimes even a bit controversal. Great. If I will participate in organizing such a symposium again sometime in the future, I will definitely vote for doing more (if not all) of the symposium that way.
A rough outline of the symposium can be found at the RT-Symposium-at-ESE-2008 wiki page. And I can recommand watching the video podcast that Ian Skerrett recorded together with Jeff about the RT symposium. Its fun watching... :-)

This was not the only video that Ian recorded at the event. He interviewed all the symposium organizers and published these great video podcast episodes (series 1, series 2). Thanks a lot, Ian, for these video podcasts. Absolutely great!!!

Wednesday, November 05, 2008

Slides from WJAX 2008 online

Still being at the WJAX conference in Munich I took the time to put the slides online from all the talks I am involved in: Enjoy!

Sunday, November 02, 2008

Equinox Aspects 1.0 M3 available for download

The third milestone build of Equinox Aspects is available for download. This build focuses on improving stability and reliability and implicates major enhancements to some internal implementation details of Equinox Aspects. Take a look at the 1.0 M3 New & Noteworthy page for more details and a list of fixed bugs.

Saturday, October 25, 2008

Looking forward to WJAX and Eclipse Summit Europe

Saying goodbye to OOPSLA I am already thinking about the next two conferences coming up on my schedule and which are highly promising to be very very interesting. In a bit more than one week there is the WJAX conference in Munich, Germany. The program is fully packed with interesting stuff and I am quite happy to talk about some cool stuff as well.

Starting on Monday I will participate in the Agile Day at WJAX where I will talk together with Norbert Grosz about experiences from introducing agile development to an insurance company.
Next is the OSGi Special Day on Tuesday. Together with my colleaque Matthias Lübken we will talk about moving existing applications towards using OSGi. Later that day I will give my fun talk about classloading and type visibility in OSGi - I still love classloading stuff. :-) Wednesday I have the pleasure to share my experiences from using and adapting "The Eclipse Way" (the famous development process of the Eclipse team) for general in-house projects. And finally on Friday, at the OSGi Experts Day, Heiko Seeberger and I are going to showcase Equinox Aspects to the attendees. This will be a real fun week in Munich!

Not far away from WJAX is the Eclipse Summit Europe, starting at Tuesday, November 18th, in Ludiwgsburg, Germany. Together with Jeff McAffer and Heiko Seeberger I am organizing the Runtime Symposium on Tuesday morning. Take care you don't miss this symposium to meet people who are also interested or involved in the runtime projects at Eclipse. In addition to that I will give (together with Heiko) a short talk on Equinox Aspects on Wednesday.

And last but not least I would be really happy to hear from you what you would like to know from the talk on classloading and type visibility in OSGi. If you have any questions you would like to get answered within that talk, please comment on this blog entry. I will try to incorporate them into the talk.

See you there!

Monday, August 04, 2008

Demo on Equinox Aspects at OOPSLA 2008

I am happy to announce that a demo on Equinox Aspects is accepted for presentation at the upcoming OOPSLA 2008 conference in Nashville, Tennessee (Oct 19th-23rd). So I would be very very happy to see you all there!!!

Sunday, July 27, 2008

News from Equinox Aspects

Some people might have noticed already that some changes are going on inside the Equinox Aspects incubator. Heiko posted the details to the mailing list: http://dev.eclipse.org/mhonarc/lists/equinox-dev/msg04653.html.

I am pretty exited that we are moving towards being a better citizen of the Eclipse world. We have re-arranged our development process and aligned it with the process of the other projects at Eclipse. Take a look at our milestone planning and details on what keeps us busy at the Equinox Aspects Plan wiki page.

The first milestone is targeted at the 8th of August, less than two weeks from now. And on the way from milestone to milestone you can watch and test the progress by using the development builds from our download page.

Friday, July 25, 2008

"Silver Medal" for Equinox Aspects Talk

The attendees session ranking from Java-Forum-Stuttgart 2008 is now online and I am more than happy to see that my talk about Equinox Aspects (slides, code examples) won the silver medal. How cool is that? And its great to see that more and more people are interested in Equinox Aspects. Wonderful...