1 package dynaop.bsh; 2 3 import java.io.IOException ; 4 import java.io.InputStreamReader ; 5 import java.io.Reader ; 6 import java.net.URL ; 7 8 import bsh.Interpreter; 9 10 import dynaop.Aspects; 11 import dynaop.ConfigurationException; 12 import dynaop.Pointcuts; 13 import dynaop.util.Classes; 14 import dynaop.util.NestedException; 15 16 78 public class BshAspects extends Aspects { 79 80 public BshAspects(URL url) { 81 if (url == null) 82 throw new ConfigurationException(getDefaultConfigurationFile() + 83 " not found."); 84 85 Reader reader = null; 86 try { 87 Interpreter interpreter = new Interpreter(); 88 89 BshHelper helper = new BshHelper(this); 90 91 interpreter.set("$_dynaop_helper", helper); 92 interpreter.eval("importObject($_dynaop_helper);"); 93 interpreter.eval("import dynaop.*;"); 94 interpreter.eval("static import " + 95 Pointcuts.class.getName() + ".*;"); 96 97 reader = new InputStreamReader (url.openStream()); 98 interpreter.eval(reader); 99 } 100 catch (Exception e) { 101 throw NestedException.wrap(e); 102 } 103 finally { 104 try { 105 if (reader != null) 106 reader.close(); 107 } 108 catch (IOException e) {} 109 } 110 } 111 112 public BshAspects() { 113 this(Classes.getClassLoader().getResource( 114 getDefaultConfigurationFile())); 115 } 116 117 static String getDefaultConfigurationFile() { 118 return System.getProperty("dynaop.bsh", "dynaop.bsh"); 119 } 120 } 121 | Popular Tags |