Sunday, August 5, 2012

Termination of JCR Management

You might have noticed that Eclipse JCRM is inactive since some years. The reason is basically that it takes too much time to complete the concept of an M2M transformation layer between Java Content Repositories and EMF. Writing good working transformations in both directions and configuring the frontend to be usable still needs some effort to be useful for others. I noticed that after completing the last JCRM milestone. As a result I experimented to create a simple JCR frontend by using web based technologies (Apache Sling and JSTree) instead. See my project at GitHub. It didn't take much time and is already usable and useful. As this is very promising, I will continue to work in this direction.
At the other hand it does not have the advantages of a compatibility layer between JCR's and EMF. Which allows to use EMF projects and tools on top of JCRs. The JCR model is fix as it is specified in the JCP and the EMF model doesn't change a lot (if at all). This means that the M2M transformations will basically not change anymore at one point and you can adopt new EMF projects as they grow from the Eclipse ecosystem garden without changing the transformations.
As you can see at the wiki page many things are already there and I would be happy if someone likes to continue the project. I personally had a good time with JCRM. I learned interesting related technologies, found the architecture and specific solutions, met really nice people and got to know the way the Eclipse foundation works. If somebody continues the project I'm sure he will have the same good experience. With my work as a basis the time to release a minimum marketable product and to bring in the harvest might be not too far away for people who are excited by a new start and like to integrate their own ideas.

Best regards,


Wednesday, March 25, 2009

It's getting suspenseful again - JCR Management (JCRM) dives into the Eclipse Legal Process

Eclipse needs every required dependency of a project to go through the Eclipse Legal Process. As JCRM requires a JCR server I have to get that server through this process. This means all server libraries and source code have to be submitted to the internal Eclipse IPZilla system as a Contribution Questionnaire (CQ). The Eclipse team will then check it's complete license pedigree and it's source code extensively. If something is wrong there I don't get the approval for the libraries and Eclipse JCRM probably failed. A way to work on JCRM licensing issues would be to try solving them together with the authors of the libraries but I don't think that this will work very well as they don't have a big reason to choose a more relaxed license. Regardless of wether it will be successful or not - the high bar of IP-cleanliness that Eclipse set will sure be quite some work for the Eclipse team and me. But there are some interesting aspects for me as I can learn more about licenses and in the end I think it gives the user a very good protection against licensing trouble.

Sunday, February 22, 2009

0.9.4 Release of the JCR Browser

The JCR Browser is the older brother of JCR Management. It is mature since quite a while and you can use it to discover a repository. I'm excited about the latest release as it's got an RCP client, a new way to connect to a Jackrabbit repository and a few other features. You can follow this link to see the complete release notes. It cannot be used to change things in a repository. But using Eclipse JCR Management you are able to do that. I did not include this feature into the JCR Browser as it needs a good architectural basis. Right now I'm working on that e.g. by integrating EMF's feature map into JCRM.



Thursday, December 25, 2008

Eclipse Summit Europe 2008

I know it's a bit late, but I think might still be interesting for some people. At least to know what the outcome of the ESE 2008 was for JCRM.

++ The Preperation ++
I had two talks scheduled for the ESE. One at the symposium at tuesday and one at the usual conference at wednesday. I knew it was a tough plan but I could only start to prepare the talks in the week before the conference. The idea was to demo all the JCRM tools. While playing around with them to structure the demo the first nested Eclipse instance crashed. I thought this might be sheer coincidence. But also the second nested instance crashed a few times with an OutOfMemoryError and it started to make me nervous. Of course these kind of things don't happen when developing the tools. They only show up when preparing the talk and there is not much time for fixes. Finding the memory configuration for Eclipse on Mac isn't obvious as it's in a hidden directory. So searching for it didn't make me more relaxed. But in the end I found a memory setting that worked without a problem and I needed to skip some tool demos anyway in fovour of showing the basic concepts of JCRM. That way the people can judge these concepts or influence JCRM along the lines of it. Finally at 10 pm on monday I finished the preperation of the talk for the conference and could start to prepare the talk for the symposium. I finished it at 1am on tuesday.

++ The Symposium ++
The symposium had a quite interesting start as I was chatting with Markus Völter about not having a wireless internet connection available. After a few minutes the maintenance guy who was working in the room and oviously heared us moaning gave us the underground password for the wireless internet connection and said we should not widely spread it as the connection would be overloaded otherwise.
To be hornest I'm quite intimidated by giving such a talk so I was glad to already be the second presenter. I think I could have made the goal of the talk - handling EMF models that don't fit into the memory - more clear. But except that I think it went ok. Many other presentations were about meta model evolution. Its great that there is progress in this area. Because using JCRM it should not be too hard to use the resulting tools for the refactoring JCR node types and that would certainly be very valuable for the JCR communities.
After the presentations the open space discussions were planned. First everybody could propose an issue to discuss about later on. Then everybody could vote three times to weight the importance of the proposals. After that the three least important proposals were skipped and the others were planned how they can run in parallel and how they fit into the available time. This is an interesting community driven format. I proposed to give information about the Java Content Repository and how it could be used also in other Eclipse use cases. When it was on me to vote I saw that there was only one vote for my proposal so far so I though: "There doesn't seem to be much interest in the JCR issue. But thats ok, I will just give it one of my votes and use the other two votes for other interesting issues.". Biiiig mistake. Later on a number of other people voted for my proposal and it turned out that if I would have used my other two votes for my proposal too it would not have been skipped. Lesson learned: I could be more patriotic.
During the symposium I had some interesting discussions about JCRM with Kenn Hussey and Cedrik Brun. To integrate JCR references into EMF Kenn gave me some information about references in EMF that were very useful. We also discussed about JCRM performance [1], if it's possible to collaborate with CDO and I showed him how versioning works in JCRM.

[1] - Bugzilla: Adding objects:
- Bugzilla: Searching objects:
- Bugzilla: traversing on EMF EStructuralFeatures
- Bugzilla: Repository Editor
- Bugzilla: update
- Bugzilla: delete

++ The conference ++
At the first day of the conference I was mainly at the booth of our company and visited just the keynote and a few talks like the MTL and the CDO talks.
After that it was on me to give my presentation. Interestingly I was less nervous than the day before and better concentrated. There were 15-20 people attending. I guess the majority of the people were at the E4 talk. But I was glad to find Ed and Kenn in the audience (and later I found out that also Rich was there) because they are part of the core modeling community. It is good when they know what JCRM is about because they can judge quite good what is valueable for the Eclipse modeling community and what's not.
Event though I made time consuming mistakes that probably nobody really recognized, I think the presentation generally went good because it made clear:
- how the JCR communities and the Eclipse community can benefit from each other using JCRM,
- how straight the JCR integration into EMF is,
- that its not hard to use JCRM in existing EMF applications
This presentation got good feedback like "JCRM is Cool!" and "JCRM has a lot of potential.", "JCRM generated quite a hype." If you did not attend my talk but you are curious about Eclipse JCRM you can download the slides from slideshare, have a look at the JCRM wiki or ask me in the newsgroup (and CC me with s(dot)boehme(at)inovex(dot)de )

The conference was not only exciting for me because of my talks but also because I had a lot of interesting chats with different people:
o Cedric hacked an example for me on how to compare two EObjects of a model. This will be very valueable for the Repository Editor (formerly called Node Editor or JCR Manager). Because this would make it possible to actually compare node objects with this editor.
o After it didn't work out at the last ESE I finally found Eike to talk with him. Interestingly it turned out that we solved the same problem the same way independend from each other. For models that are bigger than the available memory we both used the EMF EStore and the java.lang.ref.SoftReference to free unused model elements from the memory and reload them on demand. Just the day before at the Modeling Symposium I talked about that. To avoid solving the same problem twice and to better integrate our projects we agreed to do some screen sharing sessions. To be honest this is not too high on my priority list right now because I would like to focus on the Repository Editor instead but I still think it's important to work on that.
I also had an interesting discussion with the people from ikv about their project, a nice chat with Wolfgang Frank and Achim Baier and a good time during the breakfast and between the talks with Lars Schneider, Xavier and many other people.


"It's not the years in your life that counts. It's the life in your years."
These words of Abraham Lincoln pretty much describe my attitude to live. Thats why you can expect to read in this blog about the adventures I came across. You will mainly see short stories of what I experienced running the JCR Management component at Eclipse. But also other advantures that might be worth reading.
As it's always inspiring to discuss a controversy or to chat with likeminded people I'm very much looking foreward to your feedback.