001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package org.jboss.verifier;
023:
024: /*
025: * Class org.jboss.verifier.Main;
026: * Copyright (C) 2000 Juha Lindfors
027: *
028: * This library is free software; you can redistribute it and/or
029: * modify it under the terms of the GNU Lesser General Public
030: * License as published by the Free Software Foundation; either
031: * version 2 of the License, or (at your option) any later version
032: *
033: * This library is distributed in the hope that it will be useful,
034: * but WITHOUT ANY WARRANTY; without even the implied warranty of
035: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
036: * Lesser General Public License for more details.
037: *
038: * You should have received a copy of the GNU Lesser General Public
039: * License along with this library; if not, write to the Free Software
040: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
041: *
042: * This package and its source code is available at www.jboss.org
043: * $Id: Main.java 57209 2006-09-26 12:21:57Z dimitris@jboss.org $
044: *
045: * You can reach the author by sending email to jplindfo@helsinki.fi.
046: */
047:
048: // standard imports
049: import java.io.File;
050: import java.net.URL;
051: import java.net.URLClassLoader;
052:
053: // non-standard class dependencies
054: import org.jboss.verifier.event.VerificationListener;
055: import org.jboss.verifier.event.VerificationEvent;
056:
057: import org.jboss.metadata.XmlFileLoader;
058:
059: /**
060: * Main class for bean verifier.
061: *
062: * For more detailed documentation, refer to the
063: * <a href="http://www.ejboss.org">JBoss project</a>
064: *
065: * @author Juha Lindfors
066: * @version $Revision: 57209 $
067: * @since JDK 1.3
068: */
069: public class Main {
070: public final static int OK = 0;
071: public final static int WARNING = 1;
072:
073: static int returnCode = OK;
074:
075: /**
076: * Starts the application.
077: *
078: * @param args argument strings
079: */
080: public static void main(String[] args) {
081: try {
082: if (args.length < 1) {
083: throw new IllegalArgumentException(
084: "Usage: beanverifier mybeans.jar");
085: }
086:
087: URL url = new File(args[0]).toURL();
088: URLClassLoader cl = new URLClassLoader(new URL[] { url },
089: Thread.currentThread().getContextClassLoader());
090: XmlFileLoader xfl = new XmlFileLoader();
091: BeanVerifier verifier = new BeanVerifier();
092:
093: xfl.setClassLoader(cl);
094: verifier.addVerificationListener(new Listener());
095:
096: verifier.verify(url, xfl.load(null));
097: } catch (Exception e) {
098: System.err.println("Problem starting the application:");
099: System.err.println("Exception: " + e);
100: System.err.println("Message: " + e.getMessage());
101: e.printStackTrace();
102:
103: System.exit(-1);
104: }
105:
106: System.exit(returnCode);
107: }
108: }
109:
110: class Listener implements VerificationListener {
111: public void specViolation(VerificationEvent event) {
112: System.out.println(event.getVerbose());
113:
114: Main.returnCode = Main.WARNING;
115: }
116:
117: public void beanChecked(VerificationEvent event) {
118: System.out.println(event.getMessage());
119: }
120: }
121: /*
122: vim:ts=3:sw=3:et
123: */
|