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*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to