We don't need sh/bat scripts. We can do this purely in Java by programmatically calling emma.
On Tue, Mar 20, 2012 at 11:19 AM, Afkham Azeez <[email protected]> wrote: > This Ruby script thing is too complicated & we can't expect all the people > who build our platform to install Ruby & gems and what not. So, let's get > rid of the Ruby script & replace it with a sh & bat file. I will look into > the sh file, someone on Windows please look into the bat file. > > > On Tue, Mar 20, 2012 at 11:04 AM, Supun Malinga <[email protected]> wrote: > >> >> >> On Tue, Mar 20, 2012 at 10:56 AM, Thilini Ishaka <[email protected]>wrote: >> >>> >>> >>> On Tue, Mar 20, 2012 at 10:50 AM, Chintana Wilamuna >>> <[email protected]>wrote: >>> >>>> Hi, >>>> >>>> Try doing a # gem install zip >>>> >>> Yes. >>> sudo apt-get install libzip-ruby1.8 >>> >> >> libzip-ruby1.9.1 is latest it seems. >> >> thanks, >> >>> >>> >>>> >>>> You need to have rubygems installed - >>>> http://rubygems.org/pages/download >>>> >>>> -Chintana >>>> >>>> >>>> On Tue, Mar 20, 2012 at 5:44 AM, Afkham Azeez <[email protected]> wrote: >>>> >>>>> How do you manually run this ruby script? >>>>> >>>>> ruby gen_emma_coverage.rb instrument >>>>> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home >>>>> >>>>> Above command did not work on Mac OS X. >>>>> >>>>> I got the following error. >>>>> >>>>> gen_emma_coverage.rb:3:in `require': no such file to load -- zip/zip >>>>> (LoadError) >>>>> from gen_emma_coverage.rb:3 >>>>> >>>>> >>>>> On Tue, Mar 20, 2012 at 9:59 AM, Charitha Kankanamge < >>>>> [email protected]> wrote: >>>>> >>>>>> *.em file (EMMA meta data holder) has been generated by "instr" >>>>>> command (xargs -n 1 $JAVA_HOME/jre/bin/java -cp emma.jar emma instr >>>>>> -m overwrite -cp < jarlist.txt), so this command execution did not happen >>>>>> correctly or failed. >>>>>> >>>>>> [1] http://emma.sourceforge.net/userguide/ar01s02s03.html >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Mar 20, 2012 at 9:12 AM, Afkham Azeez <[email protected]> wrote: >>>>>> >>>>>>> OK. I got the hang of it. But now it is failing with the following >>>>>>> error. >>>>>>> >>>>>>> Caused by: java.io.FileNotFoundException: Source >>>>>>> '/Users/azeez/projects/wso2/org/carbon/kernel/trunk/distribution/integration/tests/target/carbontmp1332214836127/wso2carbon-core-4.0.0-SNAPSHOT/coverage.em' >>>>>>> does not exist >>>>>>> at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:767) >>>>>>> at >>>>>>> org.apache.commons.io.FileUtils.copyFileToDirectory(FileUtils.java:706) >>>>>>> at >>>>>>> org.apache.commons.io.FileUtils.copyFileToDirectory(FileUtils.java:670) >>>>>>> at >>>>>>> org.wso2.carbon.integration.framework.utils.ServerUtils.instrumentJarsForEmma(ServerUtils.java:232) >>>>>>> at >>>>>>> org.wso2.carbon.integration.framework.utils.ServerUtils.startServerUsingCarbonHome(ServerUtils.java:55) >>>>>>> >>>>>>> >>>>>>> On Tue, Mar 20, 2012 at 8:44 AM, Afkham Azeez <[email protected]>wrote: >>>>>>> >>>>>>>> Can you please explain how that method works? >>>>>>>> >>>>>>>> 1. What does the following block do? >>>>>>>> >>>>>>>> for (File file : new File(emmaHome).listFiles()) { >>>>>>>> if >>>>>>>> (file.getName().startsWith("org.wso2.carbon.integration.core")) { >>>>>>>> ArchiveManipulator archiveManipulator = new >>>>>>>> ArchiveManipulator(); >>>>>>>> >>>>>>>> archiveManipulator.extract(file.getAbsolutePath(), emmaHome); >>>>>>>> } else if (file.getName().startsWith("emma")) { >>>>>>>> emmaJarName = file.getName(); >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> 2. What does the following block do? >>>>>>>> >>>>>>>> for (File file : new File[]{new File(carbonHome), emmaOutput}) { >>>>>>>> FileUtils.copyFileToDirectory(new File(carbonHome + >>>>>>>> File.separator + "lib" + >>>>>>>> File.separator + "emma.jar"), file); >>>>>>>> FileUtils.copyFileToDirectory(new File(emmaHome + >>>>>>>> "gen_emma_coverage.rb"), file); >>>>>>>> FileUtils.copyFileToDirectory(new File(jarList), >>>>>>>> file); >>>>>>>> } >>>>>>>> >>>>>>>> gen_emma_coverage.rb is inside the resources directory in the Maven >>>>>>>> module. How does it get picked? >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Mar 20, 2012 at 8:28 AM, Thilini Ishaka >>>>>>>> <[email protected]>wrote: >>>>>>>> >>>>>>>>> If I recall, we initially generated the coverage report manually >>>>>>>>> by using below set of steps. >>>>>>>>> Then the ServerUtils is used to handle that. >>>>>>>>> >>>>>>>>> 1. Create a jarlist.txt >>>>>>>>> eg:* find >>>>>>>>> /home/thilini/Desktop/wso2greg-3.6.0/repository/components/plugins/ >> >>>>>>>>> /home/thilini/Desktop/wso2greg-3.6.0/repository/components/plugins/jarlist.txt >>>>>>>>> * (jarlist.txt should contain absolute paths of jars. Remove >>>>>>>>> unwanted jars from the list. If not there will be issues when >>>>>>>>> starting the >>>>>>>>> server) >>>>>>>>> >>>>>>>>> 2. xargs -n 1 $JAVA_HOME/jre/bin/java -cp emma.jar emma instr -m >>>>>>>>> overwrite -cp < jarlist.txt >>>>>>>>> 3. ruby dynamicImportsPatcher.rb < jarlist.txt (Before running >>>>>>>>> this step need to install rubyzip. Use sudo apt-get install >>>>>>>>> libzip-ruby1.8) >>>>>>>>> 4. Copy emma.jar to */repository/components/plugins, >>>>>>>>> /repository/components/lib *and */lib *directories. >>>>>>>>> 4. Start Carbon Server >>>>>>>>> 5. Do the test >>>>>>>>> 6. Shutdown server >>>>>>>>> 7. cp wso2greg-3.6.0/coverage.ec . >>>>>>>>> 8. java -cp emma.jar emma report -r html -in coverage.em, >>>>>>>>> coverage.ec >>>>>>>>> >>>>>>>>> <http://coverage.ec/>Thanks >>>>>>>>> Thilini >>>>>>>>> >>>>>>>>> On Tue, Mar 20, 2012 at 8:02 AM, Afkham Azeez <[email protected]>wrote: >>>>>>>>> >>>>>>>>>> Emma has been disabled for the past few months, and inevitably, >>>>>>>>>> the code that does the instrumentation does not work. Can the person >>>>>>>>>> who >>>>>>>>>> wrote the following method please explain how it works? >>>>>>>>>> >>>>>>>>>> public synchronized static void instrumentJarsForEmma(String >>>>>>>>>> carbonHome) throws IOException { >>>>>>>>>> String workingDir = System.getProperty("user.dir"); >>>>>>>>>> try { >>>>>>>>>> System.setProperty("user.dir", carbonHome); >>>>>>>>>> String emmaHome = System.getProperty("emma.home"); >>>>>>>>>> if (emmaHome == null) { >>>>>>>>>> return; >>>>>>>>>> } else if (!emmaHome.endsWith(File.separator)) { >>>>>>>>>> emmaHome += File.separator; >>>>>>>>>> } >>>>>>>>>> File emmaOutput = new >>>>>>>>>> File(System.getProperty("emma.output")); >>>>>>>>>> if (!emmaOutput.exists()) { >>>>>>>>>> FileUtils.forceMkdir(emmaOutput); >>>>>>>>>> } >>>>>>>>>> String emmaJarName = null; >>>>>>>>>> for (File file : new File(emmaHome).listFiles()) { >>>>>>>>>> if >>>>>>>>>> (file.getName().startsWith("org.wso2.carbon.integration.core")) { >>>>>>>>>> ArchiveManipulator archiveManipulator = new >>>>>>>>>> ArchiveManipulator(); >>>>>>>>>> >>>>>>>>>> archiveManipulator.extract(file.getAbsolutePath(), emmaHome); >>>>>>>>>> } else if (file.getName().startsWith("emma")) { >>>>>>>>>> emmaJarName = file.getName(); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if (emmaJarName == null) { >>>>>>>>>> return; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> String jarList = System.getProperty("jar.list"); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> FileUtils.copyFile(new File(emmaHome + emmaJarName), >>>>>>>>>> new File(carbonHome + File.separator + >>>>>>>>>> "repository" + >>>>>>>>>> File.separator + "components" + >>>>>>>>>> File.separator + "plugins" + >>>>>>>>>> File.separator + "emma.jar")); >>>>>>>>>> FileUtils.copyFile(new File(emmaHome + emmaJarName), >>>>>>>>>> new File(carbonHome + File.separator + >>>>>>>>>> "repository" + >>>>>>>>>> File.separator + "components" + >>>>>>>>>> File.separator + "lib" + >>>>>>>>>> File.separator + "emma.jar")); >>>>>>>>>> FileUtils.copyFile(new File(emmaHome + emmaJarName), >>>>>>>>>> new File(carbonHome + File.separator + "lib" + >>>>>>>>>> File.separator + "emma.jar")); >>>>>>>>>> for (File file : new File[]{new File(carbonHome), >>>>>>>>>> emmaOutput}) { >>>>>>>>>> FileUtils.copyFileToDirectory(new File(carbonHome >>>>>>>>>> + File.separator + "lib" + >>>>>>>>>> File.separator + "emma.jar"), file); >>>>>>>>>> FileUtils.copyFileToDirectory(new File(emmaHome + >>>>>>>>>> "gen_emma_coverage.rb"), file); >>>>>>>>>> FileUtils.copyFileToDirectory(new File(jarList), >>>>>>>>>> file); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> String temp; >>>>>>>>>> Process process = Runtime.getRuntime().exec(new >>>>>>>>>> String[]{"ruby", >>>>>>>>>> "gen_emma_coverage.rb", "instrument", >>>>>>>>>> System.getenv("JAVA_HOME")}, null, >>>>>>>>>> new File(carbonHome)); >>>>>>>>>> BufferedReader reader = new BufferedReader( >>>>>>>>>> new >>>>>>>>>> InputStreamReader(process.getInputStream())); >>>>>>>>>> try { >>>>>>>>>> while ((temp = reader.readLine()) != null) { >>>>>>>>>> System.out.println(temp); >>>>>>>>>> } >>>>>>>>>> } catch (IOException ignored) { >>>>>>>>>> } >>>>>>>>>> FileUtils.copyFileToDirectory(new File(carbonHome + >>>>>>>>>> File.separator + "coverage.em"), >>>>>>>>>> emmaOutput); >>>>>>>>>> } finally { >>>>>>>>>> System.setProperty("user.dir", workingDir); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Afkham Azeez* >>>>>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>>>>>> * <http://www.apache.org/>** >>>>>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>>>>>> twitter: >>>>>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>>>>>> * >>>>>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>>>>>> * >>>>>>>>>> * >>>>>>>>>> *Lean . Enterprise . Middleware* >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Regards* >>>>>>>>> >>>>>>>>> *Thilini Ishaka* >>>>>>>>> *WSO2 Inc. http://wso2.com >>>>>>>>> * >>>>>>>>> *Mobile: +94 71 840 8171 * >>>>>>>>> * +94 77 211 8797* >>>>>>>>> *Bolg: thiliniishaka.blogspot.com* >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Afkham Azeez* >>>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>>>> * <http://www.apache.org/>** >>>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>>>> twitter: >>>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>>>> * >>>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>>>> * >>>>>>>> * >>>>>>>> *Lean . Enterprise . Middleware* >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Afkham Azeez* >>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>>> * <http://www.apache.org/>** >>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>>> twitter: >>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>>> * >>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>>> * >>>>>>> * >>>>>>> *Lean . Enterprise . Middleware* >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> [email protected] >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Afkham Azeez* >>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>> * <http://www.apache.org/>** >>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>> twitter: >>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>> * >>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>> * >>>>> * >>>>> *Lean . Enterprise . Middleware* >>>>> >>>>> >>>> >>>> >>>> -- >>>> Chintana Wilamuna >>>> Associate Technical Lead >>>> WSO2, Inc.; http://wso2.com >>>> lean.enterprise.middleware >>>> >>>> phone: +94 75 211 1106 >>>> blog: http://engwar.com/ >>>> photos: http://flickr.com/photos/chintana >>>> linkedin: http://www.linkedin.com/in/engwar >>>> twitter: twitter.com/std_err >>>> >>>> >>> >>> >>> -- >>> *Regards* >>> >>> *Thilini Ishaka* >>> *WSO2 Inc. http://wso2.com >>> * >>> *Mobile: +94 71 840 8171 * >>> * +94 77 211 8797* >>> *Bolg: thiliniishaka.blogspot.com* >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Supun Malinga, >> >> Software Engineer, >> WSO2 Inc. >> http://wso2.com >> http://wso2.org >> email - [email protected] <[email protected]> >> mobile - 071 56 91 321 >> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > *Afkham Azeez* > Director of Architecture; WSO2, Inc.; http://wso2.com > Member; Apache Software Foundation; http://www.apache.org/ > * <http://www.apache.org/>** > email: **[email protected]* <[email protected]>* cell: +94 77 3320919 > blog: **http://blog.afkham.org* <http://blog.afkham.org>* > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> > * > linked-in: **http://lk.linkedin.com/in/afkhamazeez* > * > * > *Lean . Enterprise . Middleware* > > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>** email: **[email protected]* <[email protected]>* cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org>* twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez* * * *Lean . Enterprise . Middleware*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
