Open source plagiarism?

PrimeFaces angered over copycat Icefaces code use

Chris Mayer

ICEfaces deceptive use of PrimeFaces code base for their latest version raises huge debate surrounding the fair usage of open code.

A row has erupted over the latest version of JavaServer Faces suite, ICEFaces 3.0.0 after competitor PrimeFaces exposed the Canadian company’s mimicry in developing their product, claiming that over 90% of the components had been duplicated.

PrimeFaces demonstrated in their developer blog that their rival had copied line by line the code for their Panel (code in the link), and stated that they were ‘shocked and disappointed’ by ICEFaces’ decision to effectively plagiarise a rival’s codebase for their own product.

The only slightly confusing detail is that ICEsoft used code from PrimeFaces 2 and not the latest version. Picking the inferior version seems rather odd and selling it to the community as ‘much improved’ leaves a bitter aftertaste.

PrimeFaces became aware of the deception after various PrimeFaces users contacted them. The leader of the PrimeFaces community, under the pseudonym ‘Optimus Prime’ commented on the whole sorry situation, saying:

We have looked in detail of all IceFaces Ace Components and more than 90% of IceFaces components are like Panel. They are copied line by line, only difference is the change of package names from prime to ice. This duplication applies to java renderers, components codes, javascripts and css files as well.

We don’t think there is a stealing here as the code is open and free to anyone. Incorporating OSS code in another OSS code is totally fine and result of OSS nature. However we think it is wrong and not cool when the two OSS products are competing and on the same line. There are various OSS projects that use PrimeFaces out there, all of them link to PrimeFaces and use the library, none of them actually copies the code and renames the packages like Ice does.

We’ll be happy if IceSoft updates their Ace component pages or release announcements to add the fact that, IceFaces Ace components are forked from PrimeFaces Codebase instead of advertising it as a home grown product. We don’t see a public reference or a credits in NOTICE file in icefaces jar at all.

Legally speaking, ICEFaces has done nothing wrong as the PrimeFaces source code is freely available to fork under the Apache License, but this surely reeks of dishonesty. The real issue here isn’t that ICEsoft took the code, more how they didn’t offer their own spin on things, despite being Apache licensed.

PrimeFaces points out that ICEsoft doesn’t publicise their input into the product, it is there . This isn’t exactly prominent, as it is within FAQs and not the jar file. Following on from this furore, ICEfaces has updated their reference documentation to denote which components are PrimeFaces technology – which is a step in the right direction at least.

PrimeFaces adds:

 …we are not aware of any “contribution”, we haven’t done any contribution to IceFaces or signed any contribution agreement just like a CLA (Contributor License Agreement). This “tiny” detail is hidden from public and marketing point of view. This also explains why IceFaces license is now Apache, because PrimeFaces is Apache.

Packaging such a large amount of a competitor’s work as your own strikes us firstly as brazen but also as a method of throwing in the towel to the better package. PrimeFaces has long been leading the battle for RIA and JSF2 supremacy and with a rival basically bowing to the competiiton, it can be seen as a positive thing in the power struggle. 

They do say imitation is the sincerest form of flattery after all.

What are your thoughts of ICEsoft’s behaviour? Do you think they were right to use their competitor’s code and package it as their own or is it well within their rights? Comment below…

Inline Feedbacks
View all comments