# 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.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
