On Apr 2, 2012, at 5:25 PM, mehdi houshmand wrote: > > The only thing I have left to say is that the system just wasn't designed for > what we're asking it to do now. When FopFactory was written, clouds were in > the sky and SaaS was a typo. For better or worse though, that's where the > industry is putting its resources and if we want FOP to remain relevant, > we've got to keep up with it. I know I'm preaching to the choir here, but we > feel these changes are an improvement and they are a necessary part of the > task. > > When we push up the changes to the temp branch, hopefully you'll be much more > convinced that what we've done is a) an improvement and b) necessary. > > Mehdi
I believe that the term 'cloud' does not describe well the proposed API changes, although it describes well how you intend to use FOP. The mutability of the FopFactory is not necessarily related to whether FOP is executed on the cloud or not. You are actually proposing an improvement to FOP multi-threading support. Based on the number of concurrency issues in FOP 1.0, I consider myself one of the first people who used FOP in a real multi-threaded environment. By now we have more than 10 production installations using FOP in 2 up to 8 systems. Some systems have up to 64 cores stressed by about 100 threads. None of the issues that came up, was related to the mutable and more importantly not thread-safe FopFactory members. Of course, care should be taken during initialization and it is certainly easy to provoke such an issue. Having said that, I am very happy that I am seeing you moving there and I welcome the changes. A decision should be taken whether it is more important to keep a stable API or make it safer. Finally, as I wrote earlier, most users would expect breaking API changes when upgrading to a major version. But they would also expect new features and complex script support is more tangible than thread safety. It would be better to include them all in a single new release, assuming that there is not a lot of work there. Alex Giotis
