On Jan 4, 2012, at 19:10 PM, Richard S. Hall wrote: > On 1/4/12 13:06 , Marcel Offermans wrote: >> On Jan 4, 2012, at 15:13 PM, Richard S. Hall wrote: >>> On 1/4/12 07:44 , Felix Meschberger wrote: >>>> Am 04.01.2012 um 13:39 schrieb Marcel Offermans: >>>>> It would be nice to learn how they intend to solve this issue before we >>>>> do, because it probably makes sense to align our decision with theirs. >>>> They will create two builds. This would be my option (c). >>> I don't think that has been decided. >>> >>> From my understanding (and preference), they will maintain 1.4 source >>> compatibility by compiling against foundation, but target Java 5 in binary. >>> With this approach, the majority of people using modern JVMs will be able >>> to use the produced artifacts "as is", while people running on 1.4 will >>> need to recompile. You could do something similar. >> Then the question remains: do we provide more than one artifact, or do we >> tell everybody that still wants 1.4 compatibility to "compile it themselves"? > > Well, our binaries are only for convenience, right? We release source.
Agreed. However, you should also be able to create binaries from our source code without actually having to modify anything. To recompile for 1.4, you most likely need to make adjustments to the pom.xml, which in turn leads to an artifact in Maven that has the exact same name and version as the Java 5 one, but is different. So should you then also start using a different bundle symbolic name? And if you start doing that, how does that effect ripple through all your dependencies? > I would think that most people with special requirements (e.g., embedded > scenarios) are used to having to roll their own, so asking them to recompile > is not a major deal. We have limited resources, so we are better off > directing that effort at the majority of our users. Given the trouble we get into, trying to provide more than one binary, I tend to agree that we should not start doing that. However, I do feel for our users that need to start doing this themselves, as it might not be so straightforward to get this working. > However, in the end, it doesn't really matter to me. I don't think that one > way is clearly better than the other, I just think that producing a single > artifact is less effort on our part, so that's the way I'd go. Again, I tend to agree, I'm just exploring this a bit further so we can help out people that want to do something different. In hindsight, relying on some compiler magic to turn source code with generics into binary code without was probably a bad choice by the OSGi Alliance, but we cannot change that anymore. Maybe some of the companies that are also involved in OpenJDK can reintroduce that compiler option and properly fix this. If not, we will probably have a new and lengthy FAQ item on our website about this. :) Greetings, Marcel
