Home » tag » Developer

Java Blog » Olympische Winterspiele mit Moonlight 3 schauen

Adobe Ajax Android Anwendung Apache API C++ Community Developer Eclipse Eclipse Foundation Embedded English Enterprise Entwickler Equinox Galileo Google Handy IBM IDE Individual Java Member Microsoft Mobile Modeling NetBeans News Open …

FOSDEM 2010

Anfang Feburar zog das Free and Open Software European Developers Meeting (FOSDEM) die Community der europäischen Open-Source-Entwickler nach Brüssel – zum mittlerweile zehnten Mal.

Job: Java Fix Multithreading Developer – Contract – London

A Java Fix Developer with multithreading, Unix, TCP/IP, and a strong understanding of the data structures and algorithms. This role is for a highly technical developer with a minimum of 5- 7 years in the …

Hasan Ceylan: Is JavaEE overrated?

In a previous assignment we had a project more like an intranet application where you manage document, make applications (which flow through a complex 400+ step BPM), integration with a SOA engine, task, inbox, etc… It was a large government project with 500 daily users.

We chose the RAP [RCP], Databinding, EMF, Teneo, hibernate, JTrecache, Equinox[OSGI] project stack. We also have written a simple editor to manipulate EMF model.

I must admit I enjoyed defining my models in ecore. With the help of teneo my DAO consisted only ~100 lines. Since the application security (this is including down to input element levels with hidden/read/write granularity) was so tight we also kept the security definitions in the ecore model.

We kept the database schema definitions along with the ecore classes, which helped BI developers and DB admins to get updates momentarily (In the early phase of the project there were weekly deployments).

I think one of the problems with java world is it has the J2EE definition. 90% times you make a project, you choose the Application server, JPA, Web model etc for the project. But people believe “If it is a commercial / corporate product it’s gotta be J2EE compliant”, which is a big bold and IMHO unnecessary binding. Most of the time, you do not WORE! Not to mention there is the saying “Write Once Debug Everywhere”.

Lately application server vendors started adopting OSGI and we’ll see where this will go. But to be honest (this might require a correction) without using equinox, you cannot use much of the eclipse technologies where  the base plugins require definitions via extension points. e4 with the new dependency injection stuff may make this comment deprecated. But with the  more and on-the-target adoption of OSGI, we’ll see more eclipse technologies used outside RCP and IDE domain.

On the project I mentioned, people were like ‘Are you crazy you are taking way more risks,  how are you gonna get support’, well, we used the SOA engine and DB of one of the largest provider provider, we have a support ticket still open for 6 months, where I had over 20 interactions with RAP, Teneo, EMF team all resolved within hours to days. Imagine if we were using the application server from that vendor.

In the end, the project was a big success and a breakthrough not in the country but at the global level. So I think developing enterprise application doesn’t mean you gotta go JavaEE. Putting together your own OSGI stack is much better. Plus while developing, you will get the joy of restarting the application in a matter of seconds rather then in minutes in comparison to application servers.

Share/Save

Doug Schaefer: It’s all about the App Developer

In case you missed the news, Symbian has achieved it’s goal of being a fully open source operating system. Before I start, I have to congratulate Lars Kurth (former CDT guy) and the gang at the Symbian Foundation. It’s an incredible effort to take a commercial product and clean it up to be consumable under an open source license. To finish ahead of schedule is a tribute to the passion and dedication the Symbian guys have for this new direction. Very cool.

But as much as I appreciate the work they did, I do worry how well it’ll succeed. Yes, I’m open source guy and am a huge fan of open source projects and working with diverse communities coming together for a common goal. But at times, I don’t think it’s enough in order to be successful, especially if you are in the platform business.

Funny enough, while I was calling people “Apple Fanboys”, someone called me a “Microsoft Fanboy” (I didn’t even know it was possible for someone to be a Microsoft fanboy). But yeah, I appreciated how Microsoft built up their app developer ecosystem. Even though it’s all closed, Windows is still massively successful, thanks mainly to the apps people build for it. The same is true for Apple, obviously. There’s a reason why 150,000 iPhone apps headlines their marketing material.

The important difference I’m starting to realize is that open source platforms appeal to platform developers, the guys that port the platforms to new devices. Having an open source platform helps get you on to more and more devices as the barrier to entry is much lower, or at least the run-time royalties are much lower.

But it’s applications that drive device sales and application developers are a different bunch. You need a great set of tools and a great set of APIs and a great ecosystem with promises of riches to appeal to application developers. And that’s independent from how open your platform is I’m afraid.

With all these mobile platforms entering the mainstream, it’s a big fight for app developer mindshare right now. And that’s a much bigger fight than for platform developers. Either way, it’s a great day to be software developer!

Herman Lintvelt: South Africa Eclipse Expert Group

Eclipse technologies are not that widely used in South Africa (except for the Eclipse IDE). As a result, there are not many (if any) companies concentrating on building skills in that area. However, an increasing number of local companies are using especially Eclipse RCP to build rich applications with, or introducing OSGi in their architecture (and to code Eclipse properly, one needs to know OSGi).
The Vision
My company recently had the vision to create THE leading Eclipse technologies expert group in Southern Africa. We have been spending more and more time supporting other companies in their use of Eclipse technologies, as well as increasing our portfolio of Eclipse-based projects.
And we’re running out of skilled people.
We now started to grow a team of Java developers to become a team of experts on Eclipse technologies, including RCP, RAP, GEF, EclipseLink and OSGi.
The Mission
Our mission for the Eclipse Expert Group can be stated as:
  • become experts in Eclipse technologies
  • deliver quality software using Eclipse technologies
  • provide expert advise and support to other companies that need it
  • increase the local Eclipse skills by providing training and mentoring
  • contribute to the Eclipse community by participating in open-source projects
For me this is a very exciting vision.
To the wider Eclipse community out there (of whom very few are based in South Africa) : I want to invite you to provide me with tips, input and advise on growing this team; maybe even come and visit us as part of your next Africa safari, or supply opportunities to do work for you. One never knows, maybe in a few years we’ll have some international Eclipse conferences down here :-)
PS: We started on the open-source road by making the commercial version of RCP Toolbox open-source.

Peter Kriens: OSGi & Cloud Computing

The Eclipse Foundation and the OSGi Alliance are holding a Cloud workshop during the OSGi DevCon/EclipseCon developer conference in Santa Clara, Thursday March 25.

They key question we want to answer in this workshop: what role can OSGi play in the cloud? Offerings like the ones from Amazon (aws.amazon.com) are agnostic of any application model and OSGi can play in their EC2 offering like anybody else because it is based on generic x86 machines. However, a model like the Google App Engine so severely knee-capped Java that it is doubt full that OSGi can run on it. Many cloud computing providers have free plans to get you started, or at least make the cost trivial. However, the costly part is your own investment in the software you develop for the cloud. On the desktop and on the server we’ve had a lot of advantage of standards that abstracted us from the vendors. This portability allows us to move our code to different app servers (well mostly). Though most of the lessons we learned in the past still apply to the cloud, the current vendors of cloud computing have very specific offerings that easily create portability problems. How to access the storage? How to discover and handle multiple instances of the application in the cloud? How to handle storage? How to share domain specific services? Standardizing interfaces for these aspects of cloud computing could provide a lot of portability. And portability is not only in the interest of the clients, also vendors gain by having a much larger market.

Perusing the different offerings for cloud computing I can clearly see that the OSGi bundle model would work very well in this area. Applications can easily be managed remotely because remote management is inside OSGi’s genes. This always has made OSGi easy to use in clusters and much of those benefits apply equally to cloud computing. However, the advantages of the OSGi service model seems to be even more clear. A cloud computing environment is by definition a dynamic environment. Adding instances, removing instances, and instances that fail will likely influence the other instances. This means that the application will need to handle the dynamicity of the services that these computing instances provide. There will be also be dependencies that must be managed. OSGi services shine in these areas, making it relatively simple to correctly model these dynamic dependencies.

So overall the combination of cloud computing and OSGi is clearly an interesting one. With the workshop we want to bring together cloud people and OSGi people and see where there are areas where OSGi standards could help. This first workshop is by invitation only because for this first time we want to learn; we need people with experience in the area of cloud computing and that see OSGi as a potential standards player in this area; creating a discussion between cloud experts and OSGi experts. So if you’re heavily into cloud computing and you want to attend, send me or Ian Skerret from the Eclipse Foundation a mail. Amazon? Google? Microsoft? You?

Peter Kriens

Elias Volanakis: My thoughts on eclipse e5 by Elias Volanakis

Let’s assume for the moment, that in an alternate reality I can travel back in time to 2008. Once there, I meet a bright bunch of people that work on something called e5 (executive summary.odp). My summary:

“the runtime platform that is simple and appealing to _____ application developers”

Here’s what I would say to them:

e5 should take risks

When I became interested in Eclipse it was cool and disruptive. A real game changer. It is now the established tooling platform and understandably locked into perpetual refinement mode (Entrenched Player’s Dilemma). Make sure that e5 is equally game changing. Otherwise we are setting ourselves up to be disrupted.

At the EclipseCon 2008 we committed a “strategic sin”. We agreed that e4 would be compatible with 3.x. This limited the potential for e4 by forcing it to be something that is “in the box” vs. “outside the box”.

evolution vs revolution by kathy sierra.png My thoughts on eclipse e5

(taken from Death by risk-aversion by Kathy Sierra)

For e5 to be successful it needs to take risks. I don’t think that we need a better tooling platform. We already have a very good one with 3.x. And it’s still improving and not going away. Instead we need a runtime that provides something unique and remarkable. It must kick-ass in a new way.

e5 needs a driver

If you try to be everything to everybody, you will at best be mediocre at everything. e5 should be laser focused on being the best runtime for ___________ developers.

People tend to avoid specialization. It is perceived as a risk. However, if you ask a marketing person he / she will tell you that specialization is good. It’s your way to get noticed. It’s your foot in the door. You build a niche, become unbeatable and expand. Eclipse 3.x first became the tooling platform of choice, then client platform of choice for Java devs, then the modeling technology of choice for Java devs.

Unfortunately e4 lacks a driver that would help it specialize and focus. A driver, like the JDT was for the Platform. As far as I know, there is no major product build on top of e4. I believe that the current e4 (Feb 2010) is not yet appealing enough for web development or client development. It will not lure web-side Java developers away from Spring / J2EE / GWT. Or client-side Java developers away from RCP. Or Javascript folks away from jQuery / Prototype / Dojo. Or Rubyists away from Rails.

It is hard to pick the right driver. I don’t want to attempt providing an answer and limit your thinking. But feel free to share your thoughts in the comments.

e5 must be easy to learn & master

If you believe Eclipse 3.x is easy to get into, attend a beginner’s training. You will see how experienced Java developers struggle with the learning curve. And it’s not becoming easier with e4.

That is a problem, because it limits the mass appeal of Eclipse as a runtime solution. If you think it is a popular runtime, go to a Java User Group and see how few of the people who use Eclipse have written a plug-in for it.

It is in our human nature, that we tend to take the path that has the least resistance (read: easy) not the path that offers the most rewards (read: complex technology).

For e5 to be broadly successful it must kick-ass AND be easy to learn & master.

Looking forward to your comments,
Elias.

Rafael Chaves: UML may suck, but is there anything better?

UML has been getting a lot of criticism from all sides, even from the modeling community. Sure, it has its warts:

  • it is a huge language, that wants to be all things to all kinds of people (business analysts, designers, developers, users)
  • it has a specification that is lengthy, hard to navigate and often vague, incomplete or inconsistent
  • it is modular, but its composition mechanism (package merging) is esoteric and not well understood by most
  • it is extensible, but language extensions (profiles and stereotypes) are 2nd-class citizens
  • it lacks a reference implementation
  • its model interchange specification is so vague that often two valid implementations won’t work with each other
  • its committees work behind closed doors, there is no opportunity for non-members to provide feedback on specifications while they are in progress (membership is paid)
  • <add your own grudges here>

However, even though I see a lot of room for improvement, I still don’t think there is anything better out there. The more I become familiar with the UML specification, the more impressed I am about its completeness, and how issues I had never thought about before were dealt with by its designers. And it seems that the OMG recognizes some of the issues I raised above as shortcomings and is working towards addressing them. Unfortunately, some fundamental problems are likely to remain.

In my opinion (hey, this is my blog!), for a modeling language to beat UML:

  • it must be general purpose, not tailored to a specific architecture or style of software
  • it must not be tailored to an implementation language
  • it must be based on or compatible with the object paradigm
  • it must not be limited to one of the dominant aspects of software (state, structure, behavior)
  • it must be focused on executability/code generation (and thus suitable for MDD) as opposed to documentation/communication
  • it must be modular, and user extensions should be 1st class citizens
  • its specification should follow an open process
  • it must not be owned/controlled by a single company
  • it must not require royalties for adoption/implementation

My suspicion is that the next modeling language that will beat the UML as we know today is the future major release of UML. Honestly, I would rather see a new modeling language built from scratch, focused on building systems, that didn’t carry all that requirement/communication/documentation-oriented crap^H^H^H^Hbaggage that UML has (yes, I am talking about you, use case, sequence, instance and collaboration diagrams!), and developed in a more open and agile process than the OMG can possibly do. But I am not hopeful. The current divide between general purpose and domain specific modeling communities is not helping either.

So, what is your opinion? Do you think there are any better alternatives that address the shortcomings of UML without imposing any significant caveats of their own? Have your say.

Job: Senior Java Developer FX

Beschreibung. Senior Java Developer FX. For a major bank in Zurich we are looking for a. Senior Java Developer. Responsibilities: Support Business requirements for a variety of stakeholders. Working on new strategic systems builds …

Job: Java J2SE Server-Side Developer

Beschreibung. Java J2SE Server-Side Developer. For a major bank in Zurich we are looking for a. Senior Java J2SE server-side Developer. Responsibilities: You work from requirements specifications to implant solutions fit for intended …

David Green: Good Things Come In Threes

Hundreds of developers at Eclipse.org are on the cusp of something great. After lamenting the pains of the dark ages and thinking it wouldn’t end, Eclipse’s focus on best practices has resulted in a decision to move to Git. With tooling integration being such a key factor, it’s no surprise that everyone’s eyes are on the EGit project. I figured it was time to give it a spin after a recent call for project trials. This is how my adventures with GitHub, EGit and Mylyn began.

To kick it off, reading the progit book helped with the Git basics, and Lars Vogel’s excellent EGit tutorial got me up to speed with EGit. Knowing the only way to learn is to do it, I created an account on GitHub and kicked off a new project for the purpose.

Keeping focused on the issue at hand is key, so naturally I use Mylyn — but wait! There’s even a GitHub connector for Mylyn! To my disappointment after installing it, I realized that the connector was missing some key features, such as being able to edit and close tasks from within the Eclipse IDE. Time to get hacking! This is where the power of Git really kicked in.

Within moments I cloned the GitHub Mylyn connector project and got to work. Luckily the code was in great shape before I started, and within a few hours I had implemented a functional Mylyn task editor for GitHub. It’s trivial for the connector project committers to pull my contributions back into their project.

Though Git itself is not simple to use, it eliminates many barriers and eases community collaboration. EGit integrates first-class support for Git into Eclipse, overcoming much of the complexity of using Git.

Eclipse’s ability to collaborate within its project teams and with its wide user community will step into high gear this year. A continued focus on best practices and adoption of enabling technologies such as Git and EGit will make it happen.

Holger Voormann: A big plus for Newcomers

Recently I have seen a couple of improvements making Eclipse a more welcome place, especially for newcomers, but also for everyone else. Here is my personal New and Noteworthy of the category Easy Access:

Get Involved!

It’s amazing that Eclipse has existed for so long without a Get involved web site which lists different possibilities of how to contribute. I’m very happy with it, especially since I’m one of the authors and my proposal for the header image was chosen (maybe because nobody spotted my bank’s proposal): ;-)

Add comments to bug 280730: something missing?, wording, design, etc.

Marketplace

At the end of last year the new Marketplace replaced the Eclipse Plug-in Central. Marketplace looks nice and I also like the new transparent voting system. Maybe we could find a better logo for it. And what about the feature “People who viewed this plug-in also have viewed these plug-ins: …”?

Xtext – New web site design

Xtext was the first project to use the new Nova template. Both newcomers and developers are addressed by for example a one minute intro movie and also a commits statistics. I’m looking forward for more projects adapting Nova.

Continuous integration with Hudson

A continuous integration server for example runs all JUnit or computes some metrics. I’m happy that my favorite one, Hudson, works for me at Eclipse. If you do not know it or want to know more about Hudson and you understand German and live near Stuttgart you should attend Dr. Simon Wiest’s talk show about Hudson next Thursday (see slides from last year but you have to see him live).

Mylyn Connector discovery

Since Mylyn 3.2 it has been possible to install a new connector within the New Repository Query dialog. This feature will become a generic P2 function (see bug 295273). That’s really cool!

Eclipse Labs

Eclipse Labs has been announced to become a kind of Forge where Eclipse-based projects will be hosted without the need to be a real Eclipse project (so why not call it Eclipse Forge instead of Eclipse Labs?). Sad to hear Oracle is going to stop Kenai. Sun with Netbeans is a great competitor and hopefully will not be weakened by business decisions.

Distributed revision control

Since two weeks EGit builds have been available and the first writeable GIT repositories have been set up. I have tested Mercurial which is just another distributed revision control system with HgEclipse. If you believe the network must slow down all your version control actions then you will have to change your mind like me. Great that there are already open source Eclipse plug-ins available for both GIT and Mercurial.

The next big improvement of the category Easy Access may hopefully be bug 243582: Importing bundles into the workspace gets a 4th option, “Import with Source from Repository”.

The future is bright. The obstacles are lowered. Come in and explore the Eclipse universe:

Chris Aniszczyk: Eclipse Rich Ajax Platform (RAP) 1.3 M5 Released by Chris Aniszczyk

The RAP team just announced the availability of RAP 1.3 M5!

If you’re interested in single-sourcing Eclipse-based applications, please give it a try.

Maildemo Design Eclipse Rich Ajax Platform (RAP) 1.3 M5 Released

In the 1.3 M5 release, the RAP team added more SWT API to make single sourcing existing applications easier:

  • Composite#layout( Control[], int )
  • MouseEvent#stateMask
  • Widget#reskin( int ) and SWT.Skin event
  • ImageData
  • ImageLoader
  • ImageLoaderEvent

The team also added IApplication support which simply translates into one less extension point you have to use to create a RAP application. In the past, RAP had its own entrypoint extension point which performed a similar role to what the application support does in Equinox already.  This should make RAP even easier for RCP developers to get into.

RAP is also taking advantage of the Equinox extension registry is able to handle multiple locales.

So please give RAP a try if you’re interested in bringing your RCP application to the web.

Jonathan Musset: Tooling to help you starting a code generator from an example – To go Further…

Few weeks ago Cedric Brun announced a new way to create in a few minutes a pragmatic code generator with Acceleo. He said that Acceleo provides a specific tooling to help you starting a code generator from an example :
  • the new file wizard with the option to initialize it with an existing file content
  • the search & replace smart completion to quickly transform the example to a real template we can apply on a model
  • the “for” closing brace completion auto-magically find a coherent place
Since his message, we have added several menu items to go further :
  • “Refactor > Extract As Template…” to create a new template with the selected text
  • “Source > As Protected Area…” to define a protected area where we can regenerate target files without losing any modification
  • “Quickfix” when an operation call doesn’t compile, you can create a new template or a new query that make the compilation work

Elias Volanakis: Is e4 a lemon? by Elias Volanakis

e4 lemon Is e4 a lemon?

Image credit: So gesehen@flicker, CC BY-SA 2.0.

I have been playing around with e4 (M3+Integration) today and so far I’m not impressed. I’m keeping an open mind, and may change my opinion at a later time.

At the moment however, I would dare to say that e4 might be the “Windows Vista” moment for Eclipse. High hopes, but at the end of the day not groundbreaking enough to be interesting for a wide audience of developers (=regular java devs, web devs)

There are some things I like a lot and would like to see in 3.x, such as:

  • CSS theming
  • trident animations
  • getting rid of the *Advisors

The biggest drawbacks in my opinion:

#1 NOT simpler, just different

From my POV app development is still too complex for the avarage developer. Here is why:

  • Using dependency injection via annotations instead of having interfaces / abstract classes makes it very hard for beginners to figure out how to write classes. It is not obvious what annotations are available at any given point (@Inject, @PreDestroy, etc). The type hierarchy does not help for finding similar implementations – since there is no hierarchy
  • The e4 workbench designer for the workbench model (.e4xmi) is nice, but unstable (failed to load my simple example). Editing the .e4xmi by hand or a tree-like emf editor is cryptic and less user friendly than the plugin.xml editor
  • The plugin.xml is still necessary. So with the .e4xmi file we now have two .xml files that are relevant. I would like to see just one or none.
  • Still too many technologies to master: Extension Points, OSGi, Workbench Model, EMF, Annotations, SWT, JFace.

e4 annotations Is e4 a lemon?

“Simplify the programming model” is stated as e4’s first objective (e4-summary.odp), but I don’t think this is true at present.

#2 Still big and intimidating

I often hear the Eclipse is big, bulky and intimidating. The Eclipse e4 download packs 230 MB and all the UI clutter we are used to – but many newbies find confusing.

#3 No killer feature

If a customer asked me about migrating to e4 for a product that launches in Q4 2010, I couldn’t really recommend it. At this point I don’t see any “must have features yet — especially for the folks that have 3.x apps up and running.

This is bad and a bit of a catch-22 situation:

  • Without some “must have” features people are going to stay with what they already know (3.x) instead taking the risk of using something new
  • The longer people wait to use e4 the longer it will take to reach critical mass and a high level of maturity (i.e. most bugs found)

Looking forward to your opinions – especially if you disagree.

Kind regards,
Elias.

Programmer's Heaven – Ruby, .NET, C#, C++, PHP, Python, Java

NET, C#, C++, PHP, Python, Java – It’s all here! Resources for developers in C, C++, C#, .Net, Visual Basic, Java, Ruby, PHP, Perl, Python and more. Featuring forums, tens of thousands of resources, blogs, jobs and more! …

EclipseLive: Oracle Enterprise Pack for Eclipse 11gR1 (11.1.1.4)

Greg Stachnick (Oracle), Pieter Humphrey (Oracle)
 
Abstract:

Oracle is announcing the release of Oracle Enterprise Pack for Eclipse 11g (11.1.1.4). Join us for a 15 minute webinar that introduces this major new release of the free Eclipse Plug-in.

Get it for free at the update site for Galileo:
http://download.oracle.com/otn_software/oepe/galileo

This certified set of Eclipse plug-ins is designed to help develop, deploy and debug applications for Oracle WebLogic Server. It installs as a plug-in to your existing Eclipse, or will install Eclipse for you, and supports your favorite server or servlet engine.

Oracle Enterprise Pack for Eclipse (OEPE) 11g (11.1.1.4) combines the best Java EE development features of Oracle Workshop for WebLogic and Oracle’s independent contributions to the Eclipse platform. Eclipse developers targeting WebLogic, Java SE, Java EE, Web Services, XML, the Spring Framework, Database Development can simply use the update site to access these free tools.

Resources:
OTN Download Site
OTN Homepage

The core components of set of plug-ins to Eclipse are defined by the following functional areas:

  • Oracle WebLogic Server Development
  • AppXRay design time dependency analysis and visualization
  • Java Web Applications (JSF, JSTL, JSP, CSS, HTML)
  • Oracle WebLogic Server JAX-WS Web Service development and testing tools
  • Object – Relational Mapping Workbench for EclipseLink and other persistence providers
  • Enhanced Spring IDE Project bundle and Spring code generation wizards
  • DTP plug-in for Oracle Database


delicious delicious | digg digg | dzone dzone

Alex Blewitt: Eclipse-Brazil-Luiscm should be removed from PlanetEclipse

I noted recently that http:eclipse-brazil-luiscm.blogspot.com
is nicking content wholesale and then reposting them. Planet Eclipse should not be including such spam content.

  • http:eclipse-brazil-luiscm.blogspot.com/2010/02/eclipse-36m5-released_03.html has taken the content from my write-up at http://www.infoq.com/news/2010/02/eclipse-36M5-released, which clearly states Copyright (c) © InfoQ.
  • http:eclipse-brazil-luiscm.blogspot.com/2009/12/eclipse-rcp.html clearly took all of its content from the 2006 post at http://tclsoftware.blogspot.com/2006/09/eclipse-rcp.html
  • Almost every post in January 2010 is merely a pointer to another post, often completely randomly, with no additional content.
    • Martin Heller elaborates further on how he sees 2010 as the year of AJAX and REST services
      http://www.javaworld.com/javaworld/jw-01-2010/100106-rest-cloud-ajax.html
    • But SpringSource, developer of the Spring Framework, is not backing the effort
      http://www.javaworld.com/javaworld/jw-01-2010/100112-spring-genuitec.html
    • http://www.eclipse.org/rap/buzz.php#articles
    • JavaScript Object Notation is increasingly being considered as an alternative to XML

      Link http://soa.sys-con.com/node/1250088

    • http://www.ibm.com/developerworks/opensource/library/os-eclipse-facebook/
    • http://www.excelsior-usa.com/protect-eclipse-rcp-applications.html?gclid=CIT2uaP8p58CFVw55QodcEOw1Q
    • http://leepoint.net/notes-java/GUI/layouts/nulllayout.html
    • http://adtmag.com/articles/2010/01/13/springsource-offers-dm-server-to-eclipse.aspx
    • http://adtmag.com/articles/2009/12/01/springsource-oracle-eclipse-modular-java-gemini.aspx
    • Link http://java.sys-con.com/node/1230460
  • Ironically, probably the only post that was written by the author was the one that got it added into PlanetEclipse in the first place: http:eclipse-brazil-luiscm.blogspot.com/2010/01/i-thank-people-below.html

    Lynn Gayowski, Wayne Beaton, Chris Aniszczyk,
    Rüdiger Herrmann and Benjamin Muskalla.

    On the other note, I would like to welcome everyone at Eclipse Planet. It’s a pleasure to be here.

We don’t need this kind of plagiarism on PlanetEclipse. I’ve raised bug 301747 to track this.

Ian Skerrett: Top Marks for PDT

Congratulations to the Eclipse PDT team for their top score on the recent InfoWorld review of PHP IDE’s.  Out of 8 PHP IDE’s reviewed, PDT tied for top marks.    The other top IDE was  Zend Studio, of course based on Eclipse.

The PDT project team and Zend have done a fabulous job creating a world-class IDE for PHP developers.  Eclipse is clearly doing well in the PHP developer community thanks to their work.

Peter Kriens: OSGi DevCon 2010!

Time flies, it is more than 3 years ago that Bjorn Freeman-Benson, BJ Hargrave, and me sat down after the 2006 conference to discuss the possibilities to organize an OSGi DevCon in conjunction with EclipseCon. Today I am proud to announce the 4th OSGi DevCon in Santa Clara, March 22-25. The program is, as usual, staggering. It always impresses me how many people are willing to contribute to EclipseCon/OSGi DevCon. Overall there were more than 350 submissions and about 60 of those were for OSGi DevCon. Picking the most interesting program was even harder than previous years because there is less space; we therefore have less time for OSGi DevCon. However, the resulting program is probably of even higher quality.

First I would like to draw your attention to the fact that we will officially publish the OSGi Enterprise Specification during EclipseCon. The OSGi Alliance will host a BOF on Monday night. One of the co-chairs of the OSGi Enterprise Expert Group, Tim Diekmann, will give a presentation during this BOF of what is in this specification and why it is ground breaking.

We have three tutorials. The first tutorial is from the people that wrote the OSGi and Equinox: Creating Highly Modular Java Systems book. You will get a feel for Toast telematics! See Working with OSGi: The stuff you need to know.

The next tutorial is from Kirk Knoernschild and Neil Bartlett, both very experienced developers and excellent writers and presenters. This tutorial was actually chosen in the EclipseCon Program Commitee top 5. The subject is a very hot topic at the moment: modularity. We all learned the lessons about coupling and cohesion. However, applying those lessons in large developments is still hard. This tutorial will give you theoretical as well as practical insight in modularity and using OSGi to achieve it. See Modular Architecture from Top to Bottom.

The last tutorial is from Karl Pauls and Marcel Offermans. They are the lead developers of the Apache ACE project and have been developing with OSGi forever. Their subject is absolutely core for OSGi although not always that visible. OSGi is not a “Hello World” technology, such examples only work well when the scope is small. The scope of OSGi is, however, large scale technology. Size does matter for OSGi. A consequence of the scale is that systems have a large number of bundles. This number becomes so large that handling these bundles requires automation because it is just too much to do by hand. Karl and Marcel will teach how to manage installations that reach these problems. See Become a Certified Bundle Manager today.

The first long talk is a must for anyone using OSGi. One of the most exciting pieces of work inside the OSGi is the nested framework RFC. Nested frameworks bring back the initial philosophy of OSGi: the bundles are your application. Enterprise servers based on OSGi starting to deploy many applications inside a single framework. In such a constellation, your peer bundles and peer services might no longer be yours. Nested frameworks returns to this model, an application will be installed in a child framework, also called composite bundles. The lead developers of Eclipse Equinox as well as Apache Felix will present the proposed architecture and discuss merits, pitfalls, and problems that still need to be solved. So do not miss Composite Bundles – Isolating Applications in a Collaborative OSGi World.

OSGi is like a sharp knife. When used well, it is extremely useful, when used wrongly it hurts. Chris Aniszczyk, Jeff McAffer, Martin Lippert, and Paul Vanderlei have been working with OSGi for the better part of the noughties and therefore have lots of experiences and the bruises and cuts to prove it. Between them they cover almost any computing aspect that can be used in conjunction with OSGi. Jeff was the driver behind Eclipse’s adoption of OSGi, Chris is the lead developer of PDE, Martin has worked on Aspect Oriented Programming in Eclipse including the weaving issues and is an aficionado of OSGi as well, and Paul brings the experience from the embedded world. A must for anybody that wants to adopt OSGi. See OSGi Best and Worst Practices.

OSGi is at the foundation of RCP, obviously. However, you can use RCP and not see much of OSGi. David Orme has been contracting for J.P. Morgan where they created an internal platform based on RCP. In the last few years they re-architected this platform to take more advantage of OSGi. This is a very good experience report for anybody that has to develop software to be used inside large organizations. See OneBench Reloaded – Pushing the (OSGI) Modularity Story in an Enterprise-wide Rich Client Stack.

Looking at the size of this blog, I do not think I should loose more readers going through each of the 25 mins talks, even though I think they’re more than worth it. I therefore list them here as bullets:

  • Apache Aries: Enterprise OSGi in Action – A report from a new open source project that will bring us lots of enterprise components for OSGi. Graham Charters from IBM will present.
  • My Unmanned System is Eclipse Powered – Next time you see an unmanned vehicle, OSGi might be behind the wheel. Talk about cool OSGi apps! Tankut Koray will show you the role OSGi plays in their architecture.
  • Next Generation OSGi Shells – Traditionally shells run inside the OSGi framework, however, this shell works as launching tool, interacting with a Paremus’ Nimble to find the necessary bundles. Robert Dunne will tell you about these shells and show you how easy it is to deploy applications consisting of many bundles.
  • OSamI Tools for OSGi Application Developers – OSamI is a very large cross-european project to develop common technology for ambient intelligence, all based on OSGi. Naci Dai and Murat Yener from eteration A.S. will tell you more.
  • Managing OBR Repositories with Nexus – Maven is moving to OSGi and there is more and more collaboration. Sonatype has adopted OBR in their Nexus repository, allowing it to play with the advanced resolvers that appearing in the market. Jason van Zyl, the man behind Maven, will tell you about their strategy.
  • Using JPA in OSGi – Mike Keith and Timothy Ward are the lead authors of the OSGi JPA adaption, a part of the OSGi Enterprise Specification. See how you can simplify using persistence in OSGi bundles.
  • OSGi Enterprise for Java EE Developers – How do you go from Java EE to OSGi? Many patterns that are necessary in Java EE do not work well in a very modular environment. Timothy DeBoer will show you how to use Eclipse tools to ease the transition.
  • OSGi & Java EE in GlassFish – When Glassfish adopted OSGi a few years ago I was very excited to see how Java EE and OSGi can co-exist, each providing their strengths. Since then, the Glassfish team has more and more adopted OSGi, they even hired Richard Hall, the lead Apache Felix developer. Sahoo and Jerome Donchez are the lead architects and will report to you about the new cool features.
  • Realistic Remote Management of OSGi-based Residential Boxes – OSGi was made to be managed remotely. However, managing thousands of devices running OSGi somewhere out there remains a complex area. Dimiar Valtchev from ProSyst has a very long experience with this problem and will elucidate you on the issues and solutions.
  • Overcoming sticker shock: addressing the unexpected costs of moving to OSGi in the enterprise – Eric Johnson from TIBCO will explain you what you can expect when you move from a Java EE environment to OSGi, the rules and patterns that work are quite different. This will be an experience report but will also focus on how the community can work to ease this migration.
  • Making Dependency Injection work for you – Joep Rottinghuis and Parag Raval from eBay tell you how to use Spring DM to use Dependency Injection in bundles.
  • Logging in OSGi Enterprise Application – As a non-enterprise programmer I am always in awe when I see the avalanche of logging information coming out of enterprise programs. However, it seems important and OSGi puts some unique challenges in the way of traditional loggers because they often require global visibility and of course the OSGi Log Service. Ekkehard Gentz provides an overview and a demo of OSGi logging.
  • ScalaModules: OSGi the Easy Way with a Scala DSL – The last months I’ve tried to use Scala because it has features I know from my Smalltalk days and daily miss when using Java. Though any new programing language is painfull to learn (what takes you seconds in Java initially takes you minutes in Scala because you have to figure out how), Scala really looks very interesting. Roman Roelofsen and Neil Bartlett will report to you about Scala Modules, a way to bring modularity to the Scala Language.

On Valentine’s day the early registration price will end and you’ll have to pay the full amount. So be sure to register as soon as possible to take advantage of this discount. If you’re an OSGi member, you can get an additional discount if you register here with the email address you use on the OSGi members web site.

I am looking forward to see you again in this 4th OSGi DevCon, lets hope it will be the best ever!

Peter Kriens

OOP 2010: Prozesse statt Programmierung – Heise Newsticker

OOP 2010: Prozesse statt Programmierung
Heise Newsticker
Clojure ist ein Lisp-Dialekt, der Code für die Java Virtual Machine kompiliert und sich vor allem für die nebenläufige Programmierung eignet, und Microsofts

Bob Balfe: Book Review: IBM Lotus Notes and Domino 8.5.1

Book: IBM Lotus Notes and Domino 8.5.1, The Upgraders Guide.

I will start by saying this book is a good resource for anyone wanting to know what features are in Lotus Notes and Domino 8.5.1.  The book pretty much covers most areas you would expect in Lotus Notes and is a great overall summary with many examples.  I really love the format of the book, it was very easy to follow, very well written, and easy to read.  I loved the appendix!  The different chapters about add-on products was a great benefit. There were at times I felt like I read some things in one chapter and almost the same thing in another chapter with little value added.  I really wish there was more around development techniques and best practices and in general I would have preferred a little more depth in some areas.  For instance, there was a lot of material about Composite Applications but most of the information was based on 8.0.x stuff.

There is also a free chapter you can preview: Chapter 8 – which is an extracted Chapter that anyone can check out here, it covers a lot of information and should be quite useful for developers.

Ok, here is my constructive feedback.  I will first say that the product documentation is something that needs to be addressed and I can see why many of these areas were not covered, but if you follow the yellowverse you will see the many blogs from IBMer’s, partners, and customers talking about these topics.  Since this is an “upgraders guide” it was difficult for me to figure out how hard I should judge on some of the areas.  The book clearly hits end user, admins, and developers so I took the liberty to just throw it all out there!

End user and Administrative areas:

Managed Settings – using Domino policies you can push down Eclipse plug-in preferences.  They definitely should have mentioned this or walked through the policy screen like they did the Widget policies.

LiveText, Toolbox, and Widgets – arguably one of the most popular areas of the 8.x release and I see a small mention of it in this book.  This probably deserves its own chapter considering the new options that were added in 8.5.1.  Creating your own recognizers is also a popular topic in the forums.

Serviceability - it would have been nice if the book included a chapter on serviceability.  For instance, what the directory structures are, where to find logs, how to look at and evaluate the output from the IBM support assistant.  In my experience this stuff is very valuable to companies and admins supporting a rich client.

Developer areas: being a developer myself I would have wanted to get some detailed information about the following areas.  It looks like the title of the book was changed from 8.5 to 8.5.1 because the developer chapter only talks about 8.5 and really the content is based on 8.0.  So I would update this chapter in a revision to include some of the 8.5.1 enhancements.

XPages - even though this could be an entire book on its own, I think it warranted at least its own chapter.  With the introduction to XPages on the client in 8.5.1 this should have been clearly highlighted! You will have to settle for the yellowverse, product documentation and the Designer Wiki.

Eclipse plug-in development – It would have been nice to have a chapter to primer the Eclipse/Java developers – or the want-to-be’s.  plugins, Java UI, extensions.  On Page 151, the screen shot not the CAE Palette in 8.5.1.  It looks like a palette from 8.0 with all of the views in the system loaded into it.

Composite applications – None of the following was mentioned in the book: Container framework, Containers (Document and View, HOD, Symphony, Web), NSF Update Site.NTF, Side bar control.  I recommend hitting the Composite Application Wiki, Lotus Expeditor Wiki, and Designer Wiki for these areas.

Lotus Symphony – even though Symphony could be its own book.  It would have been nice to see integration with Composite Applications or how to extend Symphony with Eclipse and the JUNO API’s.

Lotus Expeditor – it would have been nice if they mentioned how Portal can manage composite applications for role based application support and also explain the value-add over base Eclipse.

Lastly, for many of the areas I mention about Composite Applications you can get it from the CA Wiki: What’s new in Lotus Notes 8.5.1 & Expeditor 6.2.1.  The Domino Designer wiki is filled with XPage material – not too mention many of the business partner bloggers constantly write about XPages.

Also, this review and opinion is my own personal opinion and does not reflect the opinion of my employer or anyone else.

technorati tags: , , , ,

Wayne Beaton: Containers, Operating Projects, Oh my!

I’ve been wrestling with this one for a while… Just what is the role of a container project? I asked this question more formally in Bug 301065. I invite you to make your comments. The Eclipse Development Process is, after-all, your process.

Frankly, I think it’s time to do away with the notion of container projects. I think that we can move forward with a single notion of a project. Here’s what I’m thinking.

  • A project has exactly one group of committers that have write access to the various resources owned by that project. From the Webmaster’s point-of-view, this means that each project has exactly one UNIX group.
  • Projects manage access to their various parts using social convention (this is already happening today on most Eclipse projects)
  • A project has zero or one of each of the following resources: a source code repository, a website, some space on the downloads server, some space on the archive server, access to a build server, etc.
  • A project must have at least one project leader.
  • A project may have one or more subprojects. Subprojects have their own distinct group of committers, and resources. We may refer to the organization of projects using whatever language makes sense to the target audience and broader community (e.g. “parent project”, “child project”, “subproject”, …).
  • A project’s source repository should be separate and distinct from the source repository of its “parent” project.
  • There is no roll up of committers; the set of committers on a project is exactly that set of people who have been explicitly elected into that role for the project (i.e. being a committer on a “child” project does not give you any automatic rights on the “parent” project).
  • A project may choose to do roll up builds and provide roll up downloads of its subprojects
  • The entire leadership chain of a project must be consulted for approval of those things that require approval. A project must, for example, obtain approval from the PMC of its top-level project and the project leadership of any container project to do a release.
  • Nesting of projects is limited to a depth of “three”. i.e. top-level.parent.child
  • I think that the most controversial thing here is the notion that a project can have its own code repository and subprojects. For what it’s worth, this is already happening in some Eclipse projects. I’ve always found the limitation against this very artificial. The one part of this that bothers me is overlapping repositories. I don’t think that subprojects should exist within the source code repository of the parent project: this just leads to confusion with our Dash tooling and adopters (who have to sort out which parts of the repository belong to which project). Confusion leads to anger. Anger leads to pain. Pain leads to suffering. Of course, some projects are doing this today, so maybe I’m overstating the problem (we should be able to sort out any possible issues with Dash).

    Probably the second most controversial thing suggested here is the notion of a single group of committers for all of a project’s assets. Experience has shown us that managing fine-grain control to the various resources just doesn’t work well. Nobody seems to understand who should (and does) have access to what. For me, the responsibility that comes with being a committer includes the responsibility to know where you’re supposed to be working. On the Examples project, for example, committers working on the Toast example, just don’t commit on the Slideshow example. They just don’t. This, despite the fact that they have full access. Frankly, if you’re not sure that you can trust a developer to follow social conventions, then maybe you need to rethink nominating them as a committer.

    At least that’s what I think. What do you think?

    Mickael Istria: SWTBot: My New friend

    Preamble: This is the first post of the new Eclipse category of BonitaSoft’s community blog. As soon as we find something interesting to talk about when developing Bonita Studio, we will try to share what we learnt with our communities: BonitaSoft and Eclipse. We are also pleased to see this category aggregated to Planet Eclipse knowledge feed. We hope you’ll enjoy reading these posts!
    The Bonita Studio developers crew

     

    I found some time recently to take a look at SWTBot to check whether we should use it while developing Bonita Studio (part of Bonita Open Solution, based on Eclipse Gelileo 3.5.1). After a few minutes of reading wiki pages and trying it, I was convinced that SWTBot (and its GEF extension, that also works for GMF) is a must-use project for anyone who has ever it found difficult and time-consuming to write plugin tests.

    Only a few hours later our continuous integration build welcomed our first SWTBot based test!

    Here is the step-by-step of this awesome encounter:

    1. Install SWTBot on your development platform by installing SWTBot from updatesite: http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site
    2. Create a new plugin to host your test. Add these dependencies to your plugin.

      Dependencies for SWTBot test

    3. Write your test
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      package org.bonitasoft.diagram.test;
      import org.bonitasoft.studio.model.process.diagram.part.ProcessDiagramEditor;
      import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
      import org.eclipse.swtbot.eclipse.gef.finder.SWTBotGefTestCase;
      import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
      import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
      import org.eclipse.ui.IEditorPart;
      import org.junit.Assert;
      import org.junit.Test;
      import org.junit.runner.RunWith;

      /**
      * @author Mickael Istria
      *
      */

      @RunWith(SWTBotJunit4ClassRunner.class)
      public class DiagramTests extends SWTBotGefTestCase {

          @Test
          public void testDiagramTest() throws Exception {
              SWTBotMenu menu = bot.menu(“Process”);
              menu.menu(“New”).click(); // simulate a click on Process &gt; New menu entry
              SWTBotEditor botEditor = bot.activeEditor();
              IEditorPart editor = botEditor.getReference().getEditor(false);
              Assert.assertTrue(“New process should open a process editor”, editor instanceof ProcessDiagramEditor);
          }
      }

    4. Configure your test run
      swtbot-conf0

      1. Use JUnit4 as launcher, and don’t use UIThread (SWTBot tests won’t run in a UIThread)
        swtbot-conf1
      2. Set the product you want to test (leave default org.eclipse.platform.ide for “simple” plugins)
        swtbot-conf2
      3. Increase memory and set a language
        swtbot-conf3
    5. Run and enjoy the high code coverage that you get with so few lines of code!
    6. Ok, now let’s try the GEF extension of SWTBot to check some tricky behavior in a diagram editor. This test creates a new process and then activates a tool in the design palette to create a new step, and then does some checks (and all in about a dozen lines ;) :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      @RunWith(SWTBotJunit4ClassRunner.class)
      public class DiagramTests extends SWTBotGefTestCase {

          @Test
          public void testDiagramTest() throws ExecutionException {
              SWTBotMenu menu = bot.menu(“Process”);
              menu.menu(“New”).click();
              SWTBotEditor botEditor = bot.activeEditor();
              SWTBotGefEditor gmfEditor = bot.gefEditor(botEditor.getTitle());
              gmfEditor.activateTool(“Step”);
              gmfEditor.mouseMoveLeftClick(200, 200);
              menu.menu(“Save”).click();
              IGraphicalEditPart part = (IGraphicalEditPart)gmfEditor.mainEditPart().part();
              MainProcess model = (MainProcess)part.resolveSemanticElement();
              Pool pool = (Pool)model.getElements().get(0);
              Assert.assertEquals(“Pool should contain 3 nodes”, 3, pool.getElements().size());
          }
      }

    7. Run again, and enjoy even more: SWTBot for GEF provides a lot of very high-level Methods to manipulate your diagram. Without it, writing tests for a GMF based editor was quite difficult, and did not mimic user actions very well. With this, you can test real usage scenarios with very little code.
    8. The return on investment with SWTBot looks very good, so let’s adopt it and automate test execution in a continuous integration build, leveraging the SWTBot headless framework. The following requires you to be familiar with automated PDE or RCP build and testing.
      1. Install swtbot in the platform you use to build your plugins or your RCP app. For instance, you can use the P2 director commandline application to install it from updatesite:
        java -jar plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar -application org.eclipse.equinox.p2.director -artifactRepository http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site -metadataRepository http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site -installIU org.eclipse.swtbot.eclipse.feature.group -installIU org.eclipse.swtbot.eclipse.gef.feature.group -consoleLog
      2. Install SWTBot headless test framework in your build platform: Download it from SWTBot download page, and expand it in your build platform directory.
      3. Add the SWTBot runtime and headless plugins and your new test plugin to your test feature.
        swtbot-tests
        In our case, we prefered keeping only the org.eclipse.ant.optional.junit fragment and using new junit bundles to avoid conflicts between classes from org.junit and org.junit4 bundles. However, SWTBot provides some alternative fragments to support either junit3 or junit4 if you prefer.You can add the following entries in your map file for new junit bundles:

        !** Use newer JUnit as described in http://wiki.eclipse.org/Eclipse/Testing/JUnit4_Changes
        !** Should facilitate integration with SWTBot headless
        plugin@org.junit,4.8.1=GET,http://download.eclipse.org/tools/orbit/downloads/drops/S20100120144102/bundles/org.junit_4.8.1.v4_8_1_v20100114-1600.zip,unpack=true
        plugin@org.junit4=v20100104,:pserver:anonymous:@dev.eclipse.org:/cvsroot/eclipse,,org.junit4
        plugin@org.eclipse.jdt.junit.runtime=v20091201-0800,:pserver:anonymous:@dev.eclipse.org:/cvsroot/eclipse,,org.eclipse.jdt.junit.runtime
      4. In the piece of script that runs your test, add the following test invocation command:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        <echo>SWTBot test</echo>
        <java dir=“${eclipse.test.home}” fork=“true” output=“${eclipse.test.home}/output.txt” logError=“true”
        classname=“org.eclipse.core.launcher.Main” failonerror=“false”>
            <classpath>
                <fileset dir=“${eclipse.test.home}/plugins”>
                    <include name=“org.eclipse.equinox.launcher_*.jar”/>
                </fileset>
            </classpath>
            <arg line=“-application org.eclipse.swtbot.eclipse.junit4.headless.swtbottestapplication”/>
            <arg line=“-testPluginName org.bonitasoft.studio.diagram.test”/>
            <arg line=“-testApplication org.bonitasoft.studio.application.application”/>
            <arg line=“-className org.bonitasoft.studio.diagram.test.DiagramTests”/>
            <arg line=“formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,junit-results.xml”/>
            <arg line=“-nl fr”/>
            <arg line=“-consoleLog”/>
            <jvmarg line=“-Xms40m -Xmx348m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError”/>
            </java>
    9. At this point, when everything is working, you should be one of the happiest people in the world: You have not only reduced the difficulty and cost of writing tests, but also increased the coverage and the realism of your tests

    Congrats and thanks to SWTBot developers for making this possible! We love playing with it when developing Bonita Open Solution!

    If someone has a better solution for this integration, please tell me!