On Tue, Oct 6, 2009 at 5:36 PM, Alin Dreghiciu <adreghi...@gmail.com> wrote: > Dave, > If you like we can get into a discussion on what you need and the reasons > behind. I have that feeling that Pax Runner infrastructure can satisfy your > requirements. For example, Pax Runner can be started in such a way that it > will give you back all you need to start a traget framework such as the > framework jar, configuration file that include all the necessary properties > to start up the framework + the bundles to be installed / started, setup > class path, java vm startup options and so on. > > Think about. You can start any framework, any version. And also, I can make > Pax Runner a separated eclipse plugin that can be shared between Pax Runner > Eclipse Plugin and Sigil. Did you had the time to look at pax runner eclipse > plugin?
I had a quick look it looks very useful and as you say being able to start any framework is a useful feature my only up front "concern" is that it reuses the PDE osgi framework widget for launch configuration. I can certainly understand why you do this as it saves reinventing code. However, this puts a dependency on the PDE concept of target platform (specifically having to manually create a directory that contains all the platform dependencies) In sigil I'm trying to get away from the explicit creation of a target platform and instead define the target as a dynamic set of bundles based on requirements which are resolved against available repositories...here I thought the use of a karaf or pax profile might be a more flexible way of defining the config. Instead a large gui widget in the launch config you just point the launcher at various config files from your workspace. > > More if you do not need the whole pax runner infra we can work on a setup > where you can use Pax Scanner outside the targeted framework process. > > lets get into a chat session and figure out what you will need ;) That sounds like a good idea, I'll ping you offlist with my contact details... Regards, Dave > > On Tue, Oct 6, 2009 at 1:31 PM, David Savage <david.sav...@paremus.com>wrote: > >> On Tue, Oct 6, 2009 at 10:27 AM, Alin Dreghiciu <adreghi...@gmail.com> >> wrote: >> > I do not want to compare the two formats so here fact about the "profile" >> >> Fair enough, yep I realized just after I sent my mail this could be >> asking for trouble - that is not my intention just to figure out what >> is the "best" way to achieve this. >> >> > format: * profile format is the format that can be scanned by a composite >> > scanner (scan-composite:). Here is some more documentation: >> > http://paxrunner.ops4j.org/display/paxrunner/Composite+provisioning >> > * it can include any other provisioning specs so you can scan from karaf >> > features, simple text files containing bundles urls, maven poms, >> directories >> > containing bundles, zips containing jars, any bundle referenced by url. >> > * it can include references to another composite scanners. >> > * there are a bunch of such files in Pax Runner repository: >> > http://paxrunner.ops4j.org/space/Pax+Runner+profiles+list ( >> > >> https://scm.ops4j.org/repos/ops4j/projects/pax/runner-repository/org/ops4j/pax/runner/profiles/ >> > ) >> > * the whole functionality about using this scanners is extracted out of >> pax >> > runner into pax scanner project >> >> Does the scanner run in the framework process? I think for isolation >> reasons it make sense to make the framework a very thin client with >> very few dependencies installed, this ensures that when you debug >> you're actually debugging your code and not some accidental collision >> with pre resolved bundles in the framework. Consider the case where >> you'd want to debug pax scanner for example? Or more likely some other >> application that happens to share dependencies with pax-scanner and >> you want to ensure you're debugging precisely your set of bundle >> dependencies. >> >> > >> > Now related to the part where you launch an osgi framework you may want >> to >> > take a look at pax runner eclipse plugin that allows you to start any OSS >> > framework / any version and we can discuss about any features you may >> need. >> >> I'll take a look, that's basically what I'm trying to write a gui for >> at the moment - but I would love not to have to reinvent this >> particular wheel as it involves a lot of GUI code that I can do but >> always feels a little like pulling teeth ;) >> >> > >> > About install/update/uninstall bundles in the external running framework >> you >> > may want to look at Pax Exam RBC (remote bundle context) that we use it >> to >> > allow the install/uninstall of bundles from outside of the process (RMI) >> + >> > allows to make calls to services in the remote process. Again, if any >> > special needs, let me know. >> >> That sounds similar to something I've started here too i.e. a launcher >> for Sigil that uses a socket based approach to control the framework >> remotely: >> >> >> http://svn.apache.org/viewvc/felix/trunk/sigil/common/runtime/src/org/apache/felix/sigil/common/runtime/Client.java?view=markup >> >> The point about using sockets was to again reduce the dependencies on >> the framework to a minimum. This does seem to have some overlap with >> the pax exam functionality. Maybe there's some mileage in coming up >> with a common model for this? >> >> > >> > About ivy is just a matter (I think) of implementing an url handler as we >> > did for maven. Actually we have an issue there to support it but yet >> there >> > was not requested. >> >> As per other comments - does this imply the url handler is installed >> in the remote framework? >> >> Thx for the info. >> >> Regards, >> >> Dave >> >> > >> > HTH >> > >> > On Tue, Oct 6, 2009 at 11:20 AM, David Savage <david.sav...@paremus.com >> >wrote: >> > >> >> Hi there, >> >> >> >> I'm currently looking into how to set up a launch configuration for >> >> Sigil development in the IDE and one idea that seems quite attractive >> >> is to reuse the Karaf features format to list the bundles that the >> >> user wishes to install in the framework. The use case I'm looking to >> >> solve is initial boot of an OSGi framework from the IDE with a pre >> >> configured set of bundles. Once the framework is running it will be >> >> possible to install and uninstall individual bundles via the IDE to >> >> allow for update of classes during debug. But this initial step allows >> >> us to boot a framework into a known state. >> >> >> >> Some areas that I'm a little hazy about... >> >> >> >> * Editor support for features files - is there any available plugins >> >> for Eclipse in this area? >> >> * Extensions to the karaf format to support sigil projects (ivy >> >> dependencies?) >> >> * Support for Karaf features from a remote process - how tied is the >> >> org/apache/felix/karaf/features/*.java code to a local framework? I >> >> think it makes sense drive this from an external process vs installing >> >> Karaf in the framework as this would allow us to debug Karaf. This >> >> would involve having a Karaf driver in the IDE that understands the >> >> Karaf features file format and uses it to make install and start >> >> commands into the external framework process. >> >> >> >> The other idea that sprang to mind was the pax runner profile format. >> >> Can anyone comment on the relative pros and cons of each format? >> >> >> >> Regards, >> >> >> >> Dave >> >> >> > >> > >> > >> > -- >> > Alin Dreghiciu >> > Software Developer >> > My profile: http://www.linkedin.com/in/alindreghiciu >> > My blog: http://adreghiciu.blogspot.com >> > http://www.ops4j.org - New Energy for OSS Communities - Open >> Participation >> > Software. >> > http://www.qi4j.org - New Energy for Java - Domain Driven Development. >> > >> > > > > -- > Alin Dreghiciu > Software Developer > My profile: http://www.linkedin.com/in/alindreghiciu > My blog: http://adreghiciu.blogspot.com > http://www.ops4j.org - New Energy for OSS Communities - Open Participation > Software. > http://www.qi4j.org - New Energy for Java - Domain Driven Development. >