in activemq-protobuf/src/main/java/org/apache/activemq/protobuf/compiler/AltJavaGenerator.java [157:185]
private void loadImports(ProtoDescriptor proto, File protoDir) {
LinkedHashMap<String,ProtoDescriptor> children = new LinkedHashMap<String,ProtoDescriptor>();
for (String imp : proto.getImports()) {
File file = new File(protoDir, imp);
for (int i = 0; i < path.length && !file.exists(); i++) {
file = new File(path[i], imp);
}
if ( !file.exists() ) {
errors.add("Cannot load import: "+imp);
}
FileInputStream is=null;
try {
is = new FileInputStream(file);
ProtoParser parser = new ProtoParser(is);
ProtoDescriptor child = parser.ProtoDescriptor();
child.setName(file.getName());
loadImports(child, file.getParentFile());
children.put(imp, child);
} catch (ParseException e) {
errors.add("Failed to parse: "+file.getPath()+":"+e.getMessage());
} catch (FileNotFoundException e) {
errors.add("Failed to open: "+file.getPath()+":"+e.getMessage());
} finally {
try { is.close(); } catch (Throwable ignore){}
}
}
proto.setImportProtoDescriptors(children);
}