private void parseAndMergeInheritedMetadata(TypeRef ref, Clazz child) throws Exception { if (ref.isJava()) return; Clazz ec = reporter.findClass(ref); if (ec == null) { reporter.error("Missing inherited class for Metatype annotations: " + ref + " from " + child.getClassName()); } else { MetaTypeReader mtr = new MetaTypeReader(ec, reporter); mtr.setDesignate(designatePid, factory); mtr.finish(); for (Map.Entry<MethodDef,Meta.AD> entry : mtr.methods.entrySet()) addMethod(entry.getKey(), entry.getValue()); handleInheritedClasses(ec); } }
private void handleInheritedClasses(Clazz child) throws Exception { TypeRef[] ifaces = child.getInterfaces(); if (ifaces != null) { for (TypeRef ref : ifaces) { parseAndMergeInheritedMetadata(ref, child); } } TypeRef superClazz = child.getSuper(); if (superClazz != null) { parseAndMergeInheritedMetadata(superClazz, child); } }
/** * Create a Metatype and Designate record out of the given * configurations. * * @param name * @param config */ private boolean designate(String name, String config, boolean factory) { if (config == null) return false; for (String c : Processor.split(config)) { TypeRef ref = analyzer.getTypeRefFromFQN(c); Clazz clazz = analyzer.getClassspace().get(ref); if (clazz != null) { analyzer.referTo(ref); MetaTypeReader r = new MetaTypeReader(clazz, analyzer); r.setDesignate(name, factory); String rname = "OSGI-INF/metatype/" + name + ".xml"; analyzer.getJar().putResource(rname, r); } else { analyzer.error("Cannot find designated configuration class %s for component %s", c, name); } } return true; }
Meta.Type type = getType(rtype); optionValues = parseOptionValues(c);
addMethod(entry.getKey(), entry.getValue()); handleInheritedClasses(clazz);
String id = mangleMethodName(method.getName()); String name = Clazz.unCamel(id); Meta.Type type = getType(rtype); Meta.AD ad = a == null ? null : a.getAnnotation(Meta.AD.class); Clazz c = reporter.findClass(typeRef); if (c != null && c.isEnum()) { optionValues = parseOptionValues(c);
public void write(OutputStream out) throws IOException { try { finish(); } catch (Exception e) { throw new RuntimeException(e); } PrintWriter pw = new PrintWriter(new OutputStreamWriter(out, "UTF-8")); pw.println("<?xml version='1.0'?>"); metadata.print(0, pw); pw.flush(); }
public boolean analyzeJar(Analyzer analyzer) throws Exception { Map<String, Map<String, String>> map = analyzer.parseHeader(analyzer .getProperty(Constants.METATYPE)); Jar jar = analyzer.getJar(); for (String name : map.keySet()) { Collection<Clazz> metatypes = analyzer.getClasses("", QUERY.ANNOTATION.toString(), Meta.OCD.class.getName(), // QUERY.NAMED.toString(), name // ); for (Clazz c : metatypes) { jar.putResource("OSGI-INF/metatype/" + c.getFQN() + ".xml", new MetaTypeReader(c, analyzer)); } } return false; } }
addMethod(entry.getKey(), entry.getValue());
/** * Create a Metatype and Designate record out of the given * configurations. * * @param name * @param config */ private boolean designate(String name, String config, boolean factory) { if (config == null) return false; for (String c : Processor.split(config)) { Clazz clazz = analyzer.getClassspace().get(Clazz.fqnToPath(c)); if (clazz != null) { analyzer.referTo(c); MetaTypeReader r = new MetaTypeReader(clazz, analyzer); r.setDesignate(name, factory); String rname = "OSGI-INF/metatype/" + name + ".xml"; analyzer.getJar().putResource(rname, r); } else { analyzer.error( "Cannot find designated configuration class %s for component %s", c, name); } } return true; }
Meta.Type type = getType(rtype); Clazz c = reporter.findClass(typeRef); if (c != null && c.isEnum()) { optionValues = parseOptionValues(c);
addMethod(entry.getKey(), entry.getValue()); handleInheritedClasses(clazz);
String id = mangleMethodName(method.getName()); String name = Clazz.unCamel(id); Meta.Type type = getType(rtype); Meta.AD ad = a == null ? null : a.getAnnotation(Meta.AD.class); Clazz c = reporter.findClass(typeRef); if (c != null && c.isEnum()) { optionValues = parseOptionValues(c);
@Override public void write(OutputStream out) throws IOException { try { finish(); } catch (Exception e) { throw new RuntimeException(e); } PrintWriter pw = new PrintWriter(new OutputStreamWriter(out, "UTF-8")); pw.println("<?xml version='1.0'?>"); metadata.print(0, pw); pw.flush(); }
public boolean analyzeJar(Analyzer analyzer) throws Exception { Parameters map = analyzer.parseHeader(analyzer.getProperty(Constants.METATYPE)); Jar jar = analyzer.getJar(); for (String name : map.keySet()) { Collection<Clazz> metatypes = analyzer.getClasses("", QUERY.ANNOTATED.toString(), Meta.OCD.class.getName(), // QUERY.NAMED.toString(), name // ); for (Clazz c : metatypes) { jar.putResource("OSGI-INF/metatype/" + c.getFQN() + ".xml", new MetaTypeReader(c, analyzer)); } } return false; } }
addMethod(entry.getKey(), entry.getValue());
private void parseAndMergeInheritedMetadata(TypeRef ref, Clazz child) throws Exception { if (ref.isJava()) return; Clazz ec = reporter.findClass(ref); if (ec == null) { reporter.error("Missing inherited class for Metatype annotations: %s from %s", ref, child.getClassName()); } else { @SuppressWarnings("resource") MetaTypeReader mtr = new MetaTypeReader(ec, reporter); mtr.setDesignate(designatePid, factory); mtr.finish(); for (Map.Entry<MethodDef, Annotation> entry : mtr.methods.entrySet()) addMethod(entry.getKey(), entry.getValue()); handleInheritedClasses(ec); } }
/** * Create a Metatype and Designate record out of the given * configurations. * * @param name * @param config * @throws Exception */ private boolean designate(String name, String config, boolean factory) throws Exception { if (config == null) return false; for (String c : Processor.split(config)) { TypeRef ref = analyzer.getTypeRefFromFQN(c); Clazz clazz = analyzer.findClass(ref); if (clazz != null) { analyzer.referTo(ref); MetaTypeReader r = new MetaTypeReader(clazz, analyzer); r.setDesignate(name, factory); String rname = "OSGI-INF/metatype/" + name + ".xml"; analyzer.getJar() .putResource(rname, r); } else { analyzer.error("Cannot find designated configuration class %s for component %s", c, name); } } return true; }
Meta.Type type = getType(rtype); Clazz c = reporter.findClass(typeRef); if (c != null && c.isEnum()) { optionValues = parseOptionValues(c);
addMethod(entry.getKey(), entry.getValue()); handleInheritedClasses(clazz);