Hi Rajini, 2008/5/18 Rajini Sivaram <[EMAIL PROTECTED]>: > Graham, > > Is there any reason you didn't switch over to one-bundle-per-3rdparty jar? >
I couldn't get the itest/osgi-tuscany tests to pass and ran out of time :-( . I've tried with the latest and most are now passing, but I still have 6 or 7 failures (varies). > I have replaced the manifest.jar file in itest/osgi-tuscany with an > osgi-installer.jar which accepts both absolute and relative pathnames for > jar files. The tests generate and use absolute pathnames, avoiding jar > copying. If we add this to the distribution, we can continue to use relative > pathnames to make the file portable. > That's great, thanks! I'll take a look and give it a go with the Calculator sample. > Now itest/osgi-tuscany typically takes around 5.5 minutes to run on my T61, > and uses 50MB disk space for around 190 bundles. itest/osgi-tuscany > currently runs around 28 samples using OSGi bundle contributions for the > samples, and reruns 16 of these using non-OSGi contributions (ie, URL > classloaders for the contributions, OSGi classloaders for Tuscany). For the > calculator sample, I imagine the lowest that you can bring the time down to > may be around 30 seconds (down from 1 minute that you are currently able to > get). Apart from removing the manifest as Simon suggested (which will > improve both timing and disk usage), I am not sure it is worth putting too > much time into performance of the sample at this stage. You should be able > to use the osgi-installer from itest/osgi-tuscany as is, if you are happy to > use one-bundle-per-3rdparty jar. > I agree about the performance point. I think 1 minute is a small sacrifice. > BTW, I had switched itest/osgi-tuscany to running under Equinox by default a > few days ago since Felix performance was degrading too much as we added more > and more bundles. > I noticed you'd switched over. I'll try the same. > > On 5/16/08, Simon Nash <[EMAIL PROTECTED]> wrote: >> >> Graham Charters wrote: >> >>> Below are a couple of runs, one taking 2 mins 50s and the second >>> taking 1 min 8s. Both were done after mvn cleans so the difference is >>> maybe due to my machine being under spec and paging. >>> >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] Reactor Summary: >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] Apache Tuscany OSGi - Tuscany 3rdParty Manifest Bundle for >>> Calculator Sample SUCCESS [1:06.859s] >>> [INFO] Apache Tuscany OSGi - Tuscany Manifest Bundle for Calculator >>> Sample SUCCESS [31.297s] >>> [INFO] Calculator Sample Running in an OSGi Framework ........ SUCCESS >>> [1:07.594s] >>> [INFO] Calculator Sample Running in an OSGi Framework ........ SUCCESS >>> [4.687s] >>> [INFO] >>> ------------------------------------------------------------------------ >>> >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] Reactor Summary: >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] Apache Tuscany OSGi - Tuscany 3rdParty Manifest Bundle for >>> Calculator Sample SUCCESS [35.406s] >>> [INFO] Apache Tuscany OSGi - Tuscany Manifest Bundle for Calculator >>> Sample SUCCESS [7.281s] >>> [INFO] Calculator Sample Running in an OSGi Framework ........ SUCCESS >>> [24.172s] >>> [INFO] Calculator Sample Running in an OSGi Framework ........ SUCCESS >>> [0.969s] >>> [INFO] >>> ------------------------------------------------------------------------ >>> >>> From the above, it seems that the major time cost is the building of >> the manifest bundles. Graham's earlier note said that the third-party >> manifest bundle consumes 17.5MB of disk space. >> >> Could the time and space overheads be reduced by building virtual >> bundles (or a single virtual bundle) for the third-party libraries? >> As I understand it, this would save 17.5MB of disk space (as the >> third party libraries are already in my maven repo), and it would >> presumably take less time as nothing would need to be written to disk. >> >> Simon >> >> >>> 2008/5/16 Simon Laws <[EMAIL PROTECTED]>: >>> >>>> On Fri, May 16, 2008 at 1:05 PM, Simon Laws <[EMAIL PROTECTED]> >>>> wrote: >>>> >>>> >>>>> On Fri, May 16, 2008 at 12:44 PM, Graham Charters < >>>>> [EMAIL PROTECTED]> wrote: >>>>> >>>>> Hi, >>>>>> >>>>>> Regarding Mike's build breaking comment, one of the reasons for >>>>>> including this in the main build is to have it break to flag when new >>>>>> dependencies are being introduced. This will help us focus on >>>>>> improving Tuscany modularity, but also help us preserve the support >>>>>> for running in OSGi. It will also give us a place to focus on keeping >>>>>> the core small. >>>>>> >>>>>> I now have what I think is the smallest subset of modules, based on >>>>>> current dependencies. My previous attempt took the approach of >>>>>> cutting down a distribution, but the latest was created by adding to >>>>>> the dependencies of the basic Calculator. The net result is 47 >>>>>> bundles, 49MB (33MB felix cache and 16MB third-party jars) and takes >>>>>> about 2.5 mins to build and run which does not seem like a big delta >>>>>> over and above the time taken to do a full Tuscany build and run all >>>>>> the samples. >>>>>> >>>>>> The sca modules which are installed are: >>>>>> >>>>>> tuscany-assembly-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-assembly-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-assembly-xsd-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-binding-sca-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-impl-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-java-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-namespace-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-osgi-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-resource-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-contribution-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-core-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-core-spi-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-databinding-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-databinding-json-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-definitions-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-definitions-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-domain-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-domain-api-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-domain-impl-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-extensibility-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-host-embedded-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-host-http-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-implementation-java-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-implementation-java-runtime-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-implementation-java-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-java-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-java-jaxws-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-java-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-wsdl-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-wsdl-java2wsdl-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-interface-wsdl-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-monitor-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-node-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-node-api-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-node-impl-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-osgi-runtime-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-policy-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-policy-security-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-policy-security-ws-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-policy-xml-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-policy-xml-ws-2.0-incubating-SNAPSHOT.jar >>>>>> tuscany-sca-api-2.0-incubating-SNAPSHOT.jar >>>>>> >>>>>> The third-party jars (currently installed in a single bundle) are: >>>>>> >>>>>> activation-1.1.jar >>>>>> addressing-1.3.mar >>>>>> annogen-0.1.0.jar >>>>>> avalon-framework-4.1.3.jar >>>>>> axiom-api-1.2.5.jar >>>>>> axiom-dom-1.2.5.jar >>>>>> axiom-impl-1.2.5.jar >>>>>> axis2-adb-1.3.jar >>>>>> axis2-adb-codegen-1.3.jar >>>>>> axis2-codegen-1.3.jar >>>>>> axis2-java2wsdl-1.3.jar >>>>>> axis2-kernel-1.3.jar >>>>>> axis2-mtompolicy-1.3.jar >>>>>> backport-util-concurrent-2.2.jar >>>>>> bcprov-jdk15-132.jar >>>>>> cglib-nodep-2.1_3.jar >>>>>> commons-codec-1.3.jar >>>>>> commons-collections-3.1.jar >>>>>> commons-discovery-0.2.jar >>>>>> commons-fileupload-1.1.1.jar >>>>>> commons-httpclient-3.0.1.jar >>>>>> commons-io-1.2.jar >>>>>> commons-logging-1.1.jar >>>>>> geronimo-activation_1.1_spec-1.0-M1.jar >>>>>> geronimo-commonj_1.1_spec-1.0.jar >>>>>> geronimo-javamail_1.4_spec-1.0-M1.jar >>>>>> geronimo-jms_1.1_spec-1.1.jar >>>>>> httpcore-4.0-alpha5.jar >>>>>> httpcore-nio-4.0-alpha5.jar >>>>>> httpcore-niossl-4.0-alpha5.jar >>>>>> jaxb-api-2.1.jar >>>>>> jaxb-impl-2.1.6.jar >>>>>> jaxb2-reflection-2.1.4.jar >>>>>> jaxen-1.1-beta-9.jar >>>>>> jaxws-api-2.1.jar >>>>>> jettison-1.0.jar >>>>>> json-rpc-1.0.jar >>>>>> jsr181-api-1.0-MR1.jar >>>>>> jsr250-api-1.0.jar >>>>>> junit-4.2.jar >>>>>> log4j-1.2.12.jar >>>>>> logkit-1.0.1.jar >>>>>> mail-1.4.jar >>>>>> neethi-2.0.2.jar >>>>>> opensaml-1.1.jar >>>>>> org.apache.felix.bundlerepository-1.1.0-SNAPSHOT.jar >>>>>> org.apache.felix.framework-1.1.0-SNAPSHOT.jar >>>>>> org.apache.felix.main-1.1.0-SNAPSHOT.jar >>>>>> org.apache.felix.shell-1.1.0-SNAPSHOT.jar >>>>>> org.apache.felix.shell.tui-1.1.0-SNAPSHOT.jar >>>>>> org.osgi.core-1.0.0.jar >>>>>> rampart-core-1.3.jar >>>>>> rampart-policy-1.3.jar >>>>>> rampart-trust-1.3.jar >>>>>> saaj-api-1.3.jar >>>>>> servlet-api-2.4.jar >>>>>> stax-api-1.0-2.jar >>>>>> stax-api-1.0.1.jar >>>>>> woden-1.0-incubating-M7b.jar >>>>>> wsdl4j-1.6.2.jar >>>>>> wss4j-1.5.3.jar >>>>>> wstx-asl-3.2.1.jar >>>>>> xalan-2.7.0.jar >>>>>> xercesImpl-2.8.1.jar >>>>>> xml-apis-1.3.03.jar >>>>>> XmlSchema-1.3.2.jar >>>>>> xmlsec-1.4.0.jar >>>>>> >>>>>> Let me know what you think? >>>>>> >>>>>> Regards, >>>>>> >>>>>> Graham. >>>>>> >>>>>> >>>>>> 2008/5/15 Mike Edwards <[EMAIL PROTECTED]>: >>>>>> >>>>>>> Graham Charters wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I've been working on a small sample to act as an OSGi "sniff test" >>>>>>>> for >>>>>>>> Tuscany running in OSGi. It's basically a cut-down version of what >>>>>>>> Rajini has done in itest/osgi-tuscany and only runs the most basic >>>>>>>> Calculator sample. I still have some work to do to exclude all the >>>>>>>> things which aren't required and also perhaps move it to use the >>>>>>>> latest "1 manifest per 3rd party jar" approach. >>>>>>>> >>>>>>>> Currently the sample takes ~3 mins to build and run and uses 56MB. >>>>>>>> The main space usage is 17.5MB for the third-party dependencies and >>>>>>>> 35MB for the Felix bundle cache (61 bundles in total). The full >>>>>>>> Tuscany (itest/osgi-tuscany) using the same third-party library >>>>>>>> approach is 151 bundles and 133MB total. >>>>>>>> >>>>>>>> I'd like to understand whether people feel this would be useful and >>>>>>>> whether it is approaching the kind of overhead that would be >>>>>>>> acceptable for it to be included in the main build? >>>>>>>> >>>>>>>> Regards, Graham. >>>>>>>> >>>>>>>> +1 from me... >>>>>>> >>>>>>> The time and space bother me a lot less than whether it would cause >>>>>>> any >>>>>>> extra failures. What plagues me are build & test failures. They can >>>>>>> >>>>>> take >>>>>> >>>>>>> hours to sort out. >>>>>>> >>>>>>> >>>>>>> Yours, Mike. >>>>>>> >>>>>>> Hi Graham >>>>> >>>>> Any idea what the breakdown of that 2.5 mins is? >>>>> >>>>> Simon >>>>> >>>>> For me on my T60 this morning. >>>> >>>> Full build >>>> >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] BUILD SUCCESSFUL >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] Total time: 40 minutes 9 seconds >>>> [INFO] Finished at: Fri May 16 12:17:45 BST 2008 >>>> [INFO] Final Memory: 98M/170M >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> >>>> osgi-tuscany >>>> >>>> [INFO] BUILD SUCCESSFUL >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] Total time: 8 minutes 4 seconds >>>> [INFO] Finished at: Fri May 16 13:15:25 BST 2008 >>>> [INFO] Final Memory: 33M/99M >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> >>>> Simon >>>> >>>> >>> >> > > > -- > Thank you... > > Regards, > > Rajini >