001    /**
002     * www.jcoverage.com
003     * Copyright (C)2003 jcoverage ltd.
004     *
005     * This file is part of jcoverage.
006     *
007     * jcoverage is free software; you can redistribute it and/or modify
008     * it under the terms of the GNU General Public License as published
009     * by the Free Software Foundation; either version 2 of the License,
010     * or (at your option) any later version.
011     *
012     * jcoverage is distributed in the hope that it will be useful, but
013     * WITHOUT ANY WARRANTY; without even the implied warranty of
014     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015     * General Public License for more details.
016     *
017     * You should have received a copy of the GNU General Public License
018     * along with jcoverage; if not, write to the Free Software
019     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
020     * USA
021     *
022     */
023    package com.jcoverage.tool.merge;
024    
025    import com.jcoverage.coverage.InstrumentationPersistence;
026    import com.jcoverage.coverage.Version;
027    
028    import gnu.getopt.Getopt;
029    import gnu.getopt.LongOpt;
030    
031    import java.io.File;
032    import java.io.FileInputStream;
033    import java.io.FileNotFoundException;
034    
035    import org.apache.log4j.Logger;
036    
037    
038    public class Main extends InstrumentationPersistence {
039      static final Logger logger=Logger.getLogger(Main.class);
040    
041      Main(String[] args) {
042        LongOpt[] longOpts=new LongOpt[2];
043        longOpts[0]=new LongOpt("instrumentation",LongOpt.REQUIRED_ARGUMENT,null,'i');
044        longOpts[1]=new LongOpt("output",LongOpt.REQUIRED_ARGUMENT,null,'o');
045    
046        Getopt g=new Getopt(getClass().getName(),args,":i:o:",longOpts);
047        int c;
048    
049        File destDir=new File(System.getProperty("user.dir"));
050    
051        while((c=g.getopt())!=-1) {
052          switch(c) {
053          case 'i':
054            System.out.println("jcoverage loading: "+g.getOptarg());
055            try {
056              merge(loadInstrumentation(new FileInputStream(g.getOptarg())));
057            } catch(FileNotFoundException ex) {
058              logger.warn(ex);
059            }
060            break;
061    
062          case 'o':
063            destDir=new File(g.getOptarg());
064            destDir.mkdirs();
065            break;
066          }
067        }
068    
069        saveInstrumentation(destDir);
070      }
071    
072    
073      public static void main(String[] args) {
074        System.out.println("jcoverage "+Version.VERSION_STRING+" copyright (c)2003 jcoverage ltd. http://jcoverage.com/");
075        System.out.println("jcoverage is licensed under the GNU General Public License");
076        System.out.println("jcoverage comes with ABSOLUTELY NO WARRANTY");
077        System.out.println("jcoverage instrumentation session merge tool");
078        new Main(args);
079      }
080    }