| package aQute.bnd.make.metatype; |
| |
| import java.util.*; |
| |
| import aQute.bnd.annotation.metatype.*; |
| import aQute.bnd.service.*; |
| import aQute.lib.osgi.*; |
| import aQute.lib.osgi.Clazz.*; |
| |
| /** |
| * This class is responsible for meta type types. It is a plugin that can |
| * @author aqute |
| * |
| */ |
| public class MetatypePlugin implements AnalyzerPlugin { |
| |
| 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; |
| } |
| } |