# Make the Bundle-SymbolicName fully qualified, not just the artifact id
Bundle-SymbolicName: com.github.javaparser.javaparser-core

# Export all packages except impl
-exportcontents: \
    com.github.javaparser, \
    com.github.javaparser.javadoc, \
    com.github.javaparser.javadoc.description, \
    com.github.javaparser.metamodel, \
    com.github.javaparser.printer, \
    com.github.javaparser.printer.concretesyntaxmodel, \
    com.github.javaparser.printer.lexicalpreservation, \
    com.github.javaparser.printer.lexicalpreservation.changes, \
    com.github.javaparser.resolution, \
    com.github.javaparser.resolution.declarations, \
    com.github.javaparser.resolution.types, \
    com.github.javaparser.resolution.types.parametrization, \
    com.github.javaparser.utils, \
    com.github.javaparser.ast, \
    com.github.javaparser.ast.body, \
    com.github.javaparser.ast.imports, \
    com.github.javaparser.ast.comments, \
    com.github.javaparser.ast.modules, \
    com.github.javaparser.ast.nodeTypes, \
    com.github.javaparser.ast.nodeTypes.modifiers, \
    com.github.javaparser.ast.expr, \
    com.github.javaparser.ast.stmt, \
    com.github.javaparser.ast.type, \
    com.github.javaparser.ast.visitor, \
    com.github.javaparser.ast.validator, \
    com.github.javaparser.ast.observer

# Don't use the project's version for the packages
# We prefer not setting a version as we don't follow OSGi version semantics
-nodefaultversion: true
