• Intro Headers Instructions Macros Commands
  • Fork me on GitHub
    • Introduction
    • How to install bnd
    • Guided Tour
    • Guided Tour Workspace & Projects
    • Concepts
    • Best practices
    • Build
    • Project Setup
    • Generating JARs
    • Versioning
    • Baselining
    • Service Components
    • Metatype
    • Contracts
    • Bundle Annotations
    • Accessor Properties
    • SPI Annotations
    • Resolving Dependencies
    • Launching
    • Startlevels
    • Testing
    • Testing with Launchpad
    • Packaging Applications
    • JPMS Libraries
    • Wrapping Libraries to OSGi Bundles
    • Generating Documentation
    • Commands
    • For Developers
    • Tips for Windows users
    • Tools bound to bnd
    • Headers
    • Instruction Reference
    • Instruction Index
    • Macro Reference
    • Macro Index
    • Plugins
    • External Plugins
    • Settings
    • Errors
    • Warnings
    • Frequently Asked Questions
  • -metatype CLASS-SPEC ( ',' CLASS-SPEC )*

    	/**
    	 * 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 {
    	
    			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;
    		}
    		@Override
    		public String toString() {
    			return "MetatypePlugin";
    		}
    	
    	}
    
    • GitHub