We could provide two ant targets. One would merge first four bundles into one aperture-core and the fifth and sixth int aperture-impl. The other one would make six bundles. Finer granularity could also be obtained when needed. Aperture-vocabulary-bundle {{{ vocabulary.DATA vocabulary.DATASOURCE vocabulary.DATASOURCE_GEN vocabulary.DATA_GEN vocabulary.ICAL vocabulary.VCARD vocabulary.ICALTZD vocabulary.ICALTZD_GEN }}} Aperture-core-service-bundle {{{ accessor.AccessData accessor.DataAccessor accessor.DataAccessorFactory accessor.DataAccessorRegistry accessor.DataObject accessor.FileDataObject accessor.FolderDataObject accessor.RDFContainerFactory accessor.UrlNotFoundException accessor.base.AccessDataImpl accessor.base.DataObjectBase accessor.base.FileAccessData accessor.base.FileDataObjectBase accessor.base.FolderDataObjectBase accessor.base.FilterAccessData accessor.base.RepositoryAccessData accessor.base.ModelAccessData accessor.impl.DataAccessorRegistryImpl crawler.CrawlReport crawler.Crawler crawler.CrawlerFactory crawler.CrawlerHandler crawler.CrawlerRegistry crawler.ExitCode crawler.base.CrawlReportBase crawler.base.CrawlerBase crawler.base.CrawlerHandlerBase crawler.impl.CrawlerRegistryImpl datasource.DataSource datasource.DataSourceFactory datasource.DataSourceRegistry datasource.base.DataSourceBase datasource.config.ConfigurationUtil datasource.config.DomainBoundaries datasource.config.RegExpPattern datasource.config.SubstringCondition datasource.config.SubstringPattern datasource.config.UrlPattern datasource.impl.DataSourceRegistryImpl extractor.Extractor extractor.ExtractorException extractor.ExtractorFactory extractor.ExtractorRegistry extractor.impl.ExtractorRegistryImpl opener.DataOpener opener.DataOpenerFactory opener.DataOpenerRegistry opener.impl.DataOpenerRegistryImpl rdf.MultipleValuesException rdf.RDFContainer rdf.RDFContainerFactory rdf.UpdateException rdf.ValueFactory rdf.rdf2go.RDF2GoRDFContainer rdf.rdf2go.RDF2GoValueFactory rdf.rdf2go.RDF2GoRDFContainerFactory }}} Aperture-supporting-services-bundle {{{ hypertext.linkextractor.LinkExtractor hypertext.linkextractor.LinkExtractorFactory hypertext.linkextractor.LinkExtractorRegistry hypertext.linkextractor.impl.LinkExtractorRegistryImpl mime.identifier.MimeTypeIdentifier mime.identifier.MimeTypeIdentifierFactory mime.identifier.MimeTypeIdentifierRegistry mime.identifier.impl.MimeTypeIdentifierRegistryImpl security.socketfactory.standard.StandardSocketFactory security.trustdecider.Decision security.trustdecider.TrustDecider security.trustdecider.TrustDeciderFactory security.trustdecider.TrustDeciderRegistry security.trustdecider.impl.TrustDeciderRegistryImpl security.trustmanager.TrustManagerFactory security.trustmanager.TrustManagerRegistry security.trustmanager.impl.TrustManagerRegistryImpl }}} Aperture-supporting-api-bundle {{{ util.ArrayMap util.DateUtil util.FileUtil util.GuiUtil util.HttpClientUtil util.IOUtil util.LogUtil util.MailUtil util.PlatformUtil util.RepositoryUtil util.ResourceUtil util.SimpleSAXAdapter util.SimpleSAXListener util.SimpleSAXParser util.StringUtil util.UriUtil util.UrlUtil util.UtfUtil util.VocabularyWriter util.XmlWriter util.OSUtils util.ModelUtil }}} Aperture-core-service-implementation-bundle {{{ accessor.file.FileAccessor accessor.file.FileAccessorFactory accessor.http.ContentType accessor.http.HttpAccessor accessor.http.HttpAccessorFactory crawler.filesystem.FileSystemCrawler crawler.filesystem.FileSystemCrawlerFactory datasource.filesystem.FileSystemDataSource datasource.filesystem.FileSystemDataSourceFactory crawler.ical.IcalCrawler crawler.ical.IcalCrawlerFactory crawler.ical.IcalDataType datasource.ical.IcalDataSourceFactory datasource.ical.IcalDataSource crawler.imap.DataObjectFactory crawler.imap.ImapCrawler crawler.imap.ImapCrawlerFactory datasource.imap.ImapDataSource datasource.imap.ImapDataSourceFactory crawler.web.CrawlJob crawler.web.WebCrawler crawler.web.WebCrawlerFactory datasource.web.WebDataSource datasource.web.WebDataSourceFactory extractor.excel.ExcelExtractor extractor.excel.ExcelExtractorFactory extractor.html.HtmlExtractor extractor.html.HtmlExtractorFactory extractor.mime.MimeExtractor extractor.mime.MimeExtractorFactory extractor.office.OfficeExtractor extractor.office.OfficeExtractorFactory extractor.opendocument.OpenDocumentExtractor extractor.opendocument.OpenDocumentExtractorFactory extractor.openxml.OpenXmlExtractor extractor.openxml.OpenXmlExtractorFactory extractor.pdf.PdfExtractor extractor.pdf.PdfExtractorFactory extractor.plaintext.PlainTextExtractor extractor.plaintext.PlainTextExtractorFactory extractor.powerpoint.PowerPointExtractor extractor.powerpoint.PowerPointExtractorFactory extractor.presentations.PresentationsExtractor extractor.presentations.PresentationsExtractorFactory extractor.publisher.PublisherExtractor extractor.publisher.PublisherExtractorFactory extractor.quattro.QuattroExtractor extractor.quattro.QuattroExtractorFactory extractor.rtf.RtfExtractor extractor.rtf.RtfExtractorFactory extractor.visio.VisioExtractor extractor.visio.VisioExtractorFactory extractor.word.WordExtractor extractor.word.WordExtractorFactory extractor.wordperfect.WordPerfectExtractor extractor.wordperfect.WordPerfectExtractorFactory extractor.works.WorksExtractor extractor.works.WorksExtractorFactory extractor.xml.XmlExtractor extractor.xml.XmlExtractorFactory extractor.util.HtmlParserUtil extractor.util.PoiUtil extractor.util.StringExtractor extractor.util.ThreadedExtractorWrapper extractor.util.WPFilterInputStream extractor.util.WPStringExtractor opener.file.FileOpener opener.file.FileOpenerFactory opener.http.HttpOpener opener.http.HttpOpenerFactory outlook.OlObjectClass outlook.OutlookAccessor outlook.OutlookCrawler outlook.OutlookCrawlerFactory outlook.OutlookDataSource outlook.OutlookDataSourceFactory outlook.OutlookResource outlook.VariantDate }}} Aperture-supporting-service-implementation-bundle {{{ hypertext.linkextractor.html.EntityResolver hypertext.linkextractor.html.HtmlLinkExtractor hypertext.linkextractor.html.HtmlLinkExtractorFactory hypertext.linkextractor.html.TokenHandler hypertext.linkextractor.html.Tokenizer mime.identifier.magic.MagicMimeTypeIdentifier mime.identifier.magic.MagicMimeTypeIdentifierFactory mime.identifier.magic.MagicNumber mime.identifier.magic.MagicString mime.identifier.magic.MimeTypeDescription security.trustdecider.dialog.CertificateDialog security.trustdecider.dialog.TrustDeciderDialog security.trustdecider.dialog.TrustDeciderDialogFactory security.trustmanager.standard.CertificateStore security.trustmanager.standard.PersistentCertificateStore security.trustmanager.standard.RootCertificateStore security.trustmanager.standard.SessionCertificateStore security.trustmanager.standard.StandardTrustManager security.trustmanager.standard.StandardTrustManagerFactory }}} RDF2GoBundle RDF2Go-sesame2-driver-bundle Aperture-addressbook-bundle {{{ addressbook.AddressbookCrawler addressbook.AddressbookCrawlerFactory addressbook.AddressbookDataSource addressbook.AddressbookDataSourceFactory addressbook.AppleAddressbookCrawler addressbook.ThunderbirdCrawler }}} This one has to be separated into it's own package due to it's direct dependency on ModelImplSesame. It creates and uses some temporary model. Aperture-rdf2go-sesame-factory-bundle {{{ rdf.sesame.SesameRDFContainer rdf.sesame.SesameRDFContainerFactory }}} Including it in the implementations bundle would incur a dependency on sesame which we want to avoid. Including it in the rdf2go sesame bundle would force us to create and maintain this bundle ourselves, which could be problematic if the rdf2go people decide to support OSGi by themselves in future. Either it should go in it's own bundle or be disregarded at all. After all it is only a convenience wrapper. The user could just as well create the model by himself and use the generic RDF2GoRDFContainer. Sesame-2.0-alpha4-bundle Classes not needed in OSGi {{{ accessor.impl.DefaultDataAccessorRegistry crawler.impl.DefaultCrawlerRegistry datasource.impl.DefaultDataSourceRegistry extractor.impl.DefaultExtractorRegistry hypertext.linkextractor.impl.DefaultLinkExtractorRegistry mime.identifier.impl.DefaultMimeTypeIdentifierRegistry opener.impl.DefaultDataOpenerRegistry }}}