felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mccu...@apache.org
Subject svn commit: r1347815 [1/19] - in /felix/trunk/bundleplugin: ./ src/main/java/aQute/ src/main/java/aQute/bnd/ src/main/java/aQute/bnd/annotation/ src/main/java/aQute/bnd/annotation/component/ src/main/java/aQute/bnd/annotation/metatype/ src/main/java/aQ...
Date Thu, 07 Jun 2012 21:57:43 GMT
Author: mcculls
Date: Thu Jun  7 21:57:32 2012
New Revision: 1347815

URL: http://svn.apache.org/viewvc?rev=1347815&view=rev
Log:
Use local copy of latest bndlib code for pre-release testing purposes

Added:
    felix/trunk/bundleplugin/src/main/java/aQute/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectBuilder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectLauncher.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectTester.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ReflectAction.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ResolverMode.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ScriptAction.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Workspace.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/Access.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/GenericParameter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/GenericType.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/Kind.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/ParseSignatureBuilder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/RuntimeSignatureBuilder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/Scope.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/SignatureGenerator.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/compatibility/Signatures.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/DSAnnotations.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/DiffImpl.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/DiffPluginImpl.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Element.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/Errors.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/Syntax.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/Warnings.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/changed.txt   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/syntax.properties   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/help/syntax.xml   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/Make.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/MakeBnd.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/MakeCopy.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/calltree/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/calltree/CalltreeResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/coverage/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/coverage/Coverage.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/coverage/CoverageResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/metatype/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/metatype/MetaTypeReader.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/metatype/MetatypePlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/BsnToMavenPath.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenCommand.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenDependencyGraph.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenDeploy.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenDeployCmd.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenGroup.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomParser.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/CachedPom.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/Maven.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenEntry.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/Pom.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/ProjectPom.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/Repo.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/AnalyzerPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/BndListener.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/CommandPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Compiler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/DependencyContributor.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Deploy.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/EclipseJUnitTester.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/IndexProvider.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/LauncherPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/MakePlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/OBRIndexProvider.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/OBRResolutionMode.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Plugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Refreshable.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Registry.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RegistryPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RemoteRepositoryPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryListenerPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/ResolutionPhase.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/ResourceHandle.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/Scripter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/SignerPlugin.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/action/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/action/Action.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/action/NamedAction.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/action/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/Delta.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/Diff.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/Differ.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/Tree.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/diff/Type.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/url/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/url/TaggedData.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/url/URLConnector.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/url/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/settings/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/settings/Settings.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/signing/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/signing/JartoolSigner.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/signing/Signer.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/configurable/
    felix/trunk/bundleplugin/src/main/java/aQute/configurable/Config.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/configurable/Configurable.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/configurable/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/base64/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/base64/Base64.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/base64/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/codec/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/codec/Codec.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/codec/HCodec.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/codec/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/EnumerationIterator.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/ExtList.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/IteratorList.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/LineCollection.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/Logic.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/MultiMap.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/SortedList.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/collections/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/converter/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/converter/Converter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/converter/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/AllowNull.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/Data.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/Numeric.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/Validator.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/data/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/filter/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/filter/Filter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/filter/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/Arguments.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/CommandLine.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/Description.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/OptionArgument.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/Options.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/getopt/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/hex/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/hex/Hex.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/hex/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/index/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/index/Index.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/index/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/io/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/io/IO.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/io/LimitedInputStream.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/io/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/ArrayHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/BooleanHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/ByteArrayHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/CharacterHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/CollectionHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/DateHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/Decoder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/Encoder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/EnumHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/FileHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/Handler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/JSONCodec.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/MapHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/NumberHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/ObjectHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/SpecialHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/StringHandler.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/json/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/justif/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/justif/Justif.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/justif/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/About.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/AbstractResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Analyzer.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Annotation.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Builder.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/BundleId.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/ClassDataCollector.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Clazz.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/CombinedResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/CommandResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Constants.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Descriptors.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Domain.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/EmbeddedResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/FileResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Instruction.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Instructions.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Jar.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/JarResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Macro.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/OpCodes.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Packages.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/PreprocessResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Processor.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Resource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/TagResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/URLResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/Verifier.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/WriteResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/ZipResource.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/bnd.info
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/eclipse/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/eclipse/EclipseClasspath.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/osgi/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/putjar/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/putjar/DirectoryInputStream.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/putjar/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/JPAComponent.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/SpringComponent.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/SpringXMLType.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/XMLType.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/XMLTypeProcessor.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/extract.xsl   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/hibernate.xsl   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/spring/jpa.xsl   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/tag/
    felix/trunk/bundleplugin/src/main/java/aQute/lib/tag/Tag.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/lib/tag/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/BER.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/PDU.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/Types.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/algorithms
    felix/trunk/bundleplugin/src/main/java/aQute/libg/asn1/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cafs/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cafs/CAFS.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cafs/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classdump/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classdump/ClassDumper.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classdump/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classloaders/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classloaders/URLClassLoaderWrapper.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/classloaders/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/clauses/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/clauses/Clause.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/clauses/Clauses.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/clauses/Selector.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/clauses/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/command/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/command/Command.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/command/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Crypto.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Digest.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Digester.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Key.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/MD5.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/RSA.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/SHA1.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/SHA256.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Signer.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/Verifier.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/cryptography/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/fileiterator/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/fileiterator/FileIterator.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/fileiterator/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filelock/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filelock/DirectoryLock.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filelock/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filerepo/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filerepo/FileRepo.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/filerepo/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/forker/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/forker/Forker.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/forker/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/generics/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/generics/Create.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/generics/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/glob/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/glob/Glob.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/glob/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/gzip/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/gzip/GZipUtils.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/gzip/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/header/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/header/Attrs.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/header/OSGiHeader.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/header/Parameters.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/header/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/log/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/log/Logger.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/log/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/map/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/map/MAP.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/map/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/qtokens/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/qtokens/QuotedTokenizer.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/qtokens/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/reporter/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/reporter/Reporter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/reporter/ReporterAdapter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/reporter/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/ContentFilter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/ContentFilterImpl.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/SAXElement.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/SAXUtil.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/filters/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/filters/ElementSelectionFilter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/filters/MergeContentFilter.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/filters/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sax/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sed/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sed/Replacer.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sed/Sed.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/sed/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tarjan/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tarjan/Tarjan.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tarjan/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tuple/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tuple/Pair.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/tuple/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/version/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/version/Version.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/version/VersionRange.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/version/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/libg/xslt/
    felix/trunk/bundleplugin/src/main/java/aQute/libg/xslt/Transform.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/libg/xslt/packageinfo
Modified:
    felix/trunk/bundleplugin/pom.xml
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/AbstractDependencyFilter.java
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BlueprintPlugin.java
    felix/trunk/bundleplugin/src/main/java/org/apache/felix/bundleplugin/BundlePlugin.java

Modified: felix/trunk/bundleplugin/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/pom.xml?rev=1347815&r1=1347814&r2=1347815&view=diff
==============================================================================
--- felix/trunk/bundleplugin/pom.xml (original)
+++ felix/trunk/bundleplugin/pom.xml Thu Jun  7 21:57:32 2012
@@ -55,15 +55,43 @@
      <target>1.5</target>
     </configuration>
    </plugin>
+<!--
+ | vvvvvvvv TEMP vvvvvvvv
+-->
+   <plugin>
+    <groupId>org.apache.rat</groupId>
+    <artifactId>apache-rat-plugin</artifactId>
+    <configuration>
+     <excludes>
+      <exclude>src/main/java/aQute/**</exclude>
+     </excludes>
+    </configuration>
+   </plugin>
+<!--
+ | ^^^^^^^^ TEMP ^^^^^^^^
+-->
   </plugins>
  </build>
 
  <dependencies>
+<!--
   <dependency>
     <groupId>biz.aQute</groupId>
     <artifactId>bndlib</artifactId>
     <version>1.50.0</version>
   </dependency>
+-->
+<!--
+ | vvvvvvvv TEMP vvvvvvvv
+-->
+  <dependency>
+    <groupId>org.osgi</groupId>
+    <artifactId>org.osgi.compendium</artifactId>
+    <version>4.3.0</version>
+  </dependency>
+<!--
+ | ^^^^^^^^ TEMP ^^^^^^^^
+-->
   <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.bundlerepository</artifactId>

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,14 @@
+package aQute.bnd.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * Adding this annotation to a type in an API package indicates the the owner of
+ * that package will not change this interface in a minor update. Any backward
+ * compatible change to this interface requires a major update of the version of
+ * this package.
+ * 
+ */
+@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface ConsumerType {
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ConsumerType.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,30 @@
+package aQute.bnd.annotation;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.PACKAGE)
+public @interface Export {
+    String MANDATORY = "mandatory";
+    String OPTIONAL  = "optional";
+    String USES      = "uses";
+    String EXCLUDE   = "exclude";
+    String INCLUDE   = "include";
+
+    String[] mandatory() default "";
+
+    String[] optional() default "";
+
+    Class<?>[] exclude() default Object.class;
+
+    Class<?>[] include() default Object.class;
+    
+    /**
+     * Use {@link @Version} annotation instead
+     * @return
+     */
+    @Deprecated()
+    String version() default "";
+    
+    
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Export.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,19 @@
+package aQute.bnd.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * This type is provided for convenience because it is the default. A change 
+ * in a provider type (that is all except Consumer types) can be changed with
+ * only a minor update to the package API version number.
+ * 
+ * This interface is similar to the Eclipse @noextend and @noimplement annotations.
+ * 
+ * 
+ * 
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
+public @interface ProviderType {
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/ProviderType.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,20 @@
+package aQute.bnd.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * This annotation can be applied to interface where an implementation should be
+ * treated as a use policy, not an implementation policy. Many package have
+ * interfaces that are very stable and can be maintained backward compatible for
+ * implementers during minor changes. For example, in Event Admin, the
+ * EventAdmin implementers should follow the minor version, e.g. [1.1,1.2), however,
+ * an implementer of EventHandler should not require such a small range. Therefore
+ * an interface like EventHandler should use this anotation.
+ */
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
+@Deprecated
+public @interface UsePolicy {
+    String RNAME = "LaQute/bnd/annotation/UsePolicy;";
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/UsePolicy.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,9 @@
+package aQute.bnd.annotation;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.PACKAGE})
+public @interface Version {
+	String value();
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/Version.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,10 @@
+package aQute.bnd.annotation.component;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.METHOD)
+public @interface Activate {
+    String RNAME = "LaQute/bnd/annotation/component/Activate;";
+    
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Activate.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,38 @@
+package aQute.bnd.annotation.component;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS) @Target(ElementType.TYPE) public @interface Component {
+	String	RNAME					= "LaQute/bnd/annotation/component/Component;";
+	String	PROVIDE					= "provide";
+	String	NAME					= "name";
+	String	FACTORY					= "factory";
+	String	SERVICEFACTORY			= "servicefactory";
+	String	IMMEDIATE				= "immediate";
+	String	CONFIGURATION_POLICY	= "configurationPolicy";
+	String	ENABLED					= "enabled";
+	String	PROPERTIES				= "properties";
+	String	VERSION					= "version";
+	String	DESIGNATE				= "designate";
+	String	DESIGNATE_FACTORY		= "designateFactory";
+
+	String name() default "";
+
+	Class<?>[] provide() default Object.class;
+
+	String factory() default "";
+
+	boolean servicefactory() default false;
+
+	boolean enabled() default true;
+
+	boolean immediate() default false;
+
+	ConfigurationPolicy configurationPolicy() default ConfigurationPolicy.optional;
+
+	String[] properties() default {};
+
+	Class<?> designate() default Object.class;
+
+	Class<?> designateFactory() default Object.class;
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Component.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,5 @@
+package aQute.bnd.annotation.component;
+
+public enum ConfigurationPolicy {
+    optional, require, ignore;
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/ConfigurationPolicy.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,10 @@
+package aQute.bnd.annotation.component;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.METHOD)
+public @interface Deactivate {
+    String RNAME = "LaQute/bnd/annotation/component/Deactivate;";
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Deactivate.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,10 @@
+package aQute.bnd.annotation.component;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.METHOD)
+public @interface Modified {
+    String RNAME = "LaQute/bnd/annotation/component/Modified;";
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Modified.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,33 @@
+package aQute.bnd.annotation.component;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.METHOD)
+public @interface Reference {
+    String RNAME    = "LaQute/bnd/annotation/component/Reference;";
+    String NAME     = "name";
+    String SERVICE  = "service";
+    String OPTIONAL = "optional";
+    String MULTIPLE = "multiple";
+    String DYNAMIC  = "dynamic";
+    String TARGET   = "target";
+    String TYPE     = "type";
+    String UNBIND   = "unbind";
+
+    String name() default "";
+
+    Class<?> service() default Object.class;
+
+    boolean optional() default false;
+
+    boolean multiple() default false;
+
+    boolean dynamic() default false;
+
+    String target() default "";
+    
+    String unbind() default "";
+
+    char type() default 0;
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/Reference.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/packageinfo?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/packageinfo (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/component/packageinfo Thu Jun  7 21:57:32 2012
@@ -0,0 +1 @@
+version 1.43.1

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,294 @@
+package aQute.bnd.annotation.metatype;
+
+import java.lang.reflect.*;
+import java.util.*;
+import java.util.regex.*;
+
+@SuppressWarnings( { "unchecked", "rawtypes" }) public class Configurable<T> {
+	
+	public static <T> T createConfigurable(Class<T> c, Map<?, ?> properties) {
+		Object o = Proxy.newProxyInstance(c.getClassLoader(), new Class<?>[] { c },
+				new ConfigurableHandler(properties, c.getClassLoader()));
+		return c.cast(o);
+	}
+
+	public static <T> T createConfigurable(Class<T> c, Dictionary<?, ?> properties) {
+		Map<Object,Object> alt = new HashMap<Object,Object>();
+		for( Enumeration<?> e = properties.keys(); e.hasMoreElements(); ) {
+			Object key = e.nextElement();
+			alt.put(key, properties.get(key));
+		}
+		return createConfigurable(c, alt);
+	}
+
+	static class ConfigurableHandler implements InvocationHandler {
+		final Map<?, ?>	properties;
+		final ClassLoader			loader;
+
+		ConfigurableHandler(Map<?, ?> properties, ClassLoader loader) {
+			this.properties = properties;
+			this.loader = loader;
+		}
+
+		public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+			Meta.AD ad = method.getAnnotation(Meta.AD.class);
+			String id = Configurable.mangleMethodName(method.getName());
+
+			if (ad != null && !ad.id().equals(Meta.NULL))
+				id = ad.id();
+
+			Object o = properties.get(id);
+
+			if (o == null) {
+				if (ad != null) {
+					if (ad.required())
+						throw new IllegalStateException("Attribute is required but not set "
+								+ method.getName());
+
+					o = ad.deflt();
+					if (o.equals(Meta.NULL))
+						o = null;
+				}
+			}
+			if (o == null) {
+				Class<?> rt = method.getReturnType();
+				if ( rt == boolean.class || rt==Boolean.class)
+					return false;
+				
+				if (method.getReturnType().isPrimitive()) {
+
+					o = "0";
+				} else
+					return null;
+			}
+
+			return convert(method.getGenericReturnType(), o);
+		}
+
+		public Object convert(Type type, Object o)
+				throws Exception {
+			if (type instanceof ParameterizedType) {
+				ParameterizedType pType = (ParameterizedType) type;
+				return convert(pType, o);
+			}
+
+			if (type instanceof GenericArrayType) {
+				GenericArrayType gType = (GenericArrayType) type;
+				return convertArray(gType.getGenericComponentType(), o);
+			}
+
+			Class<?> resultType = (Class<?>) type;
+
+			if (resultType.isArray()) {
+				return convertArray(resultType.getComponentType(), o);
+			}
+
+			Class<?> actualType = o.getClass();
+			if (actualType.isAssignableFrom(resultType))
+				return o;
+
+			if (resultType == boolean.class || resultType == Boolean.class) {
+				if ( actualType == boolean.class || actualType == Boolean.class)
+					return o;
+				
+				if (Number.class.isAssignableFrom(actualType)) {
+					double b = ((Number) o).doubleValue();
+					if (b == 0)
+						return false;
+					else
+						return true;
+				}
+				return true;
+				
+			} else if (resultType == byte.class || resultType == Byte.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).byteValue();
+				resultType = Byte.class;
+			} else if (resultType == char.class) {
+				resultType = Character.class;
+			} else if (resultType == short.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).shortValue();
+				resultType = Short.class;
+			} else if (resultType == int.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).intValue();
+				resultType = Integer.class;
+			} else if (resultType == long.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).longValue();
+				resultType = Long.class;
+			} else if (resultType == float.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).floatValue();
+				resultType = Float.class;
+			} else if (resultType == double.class) {
+				if (Number.class.isAssignableFrom(actualType))
+					return ((Number) o).doubleValue();
+				resultType = Double.class;
+			}
+
+			if (resultType.isPrimitive())
+				throw new IllegalArgumentException("Unknown primitive: " + resultType);
+
+			if (Number.class.isAssignableFrom(resultType) && actualType == Boolean.class) {
+				Boolean b = (Boolean) o;
+				o = b ? "1" : "0";
+			} else if (actualType == String.class) {
+				String input = (String) o;
+				if (Enum.class.isAssignableFrom(resultType)) {
+					return Enum.valueOf((Class<Enum>) resultType, input);
+				}
+				if (resultType == Class.class && loader != null) {
+					return loader.loadClass(input);
+				}
+				if (resultType == Pattern.class) {
+					return Pattern.compile(input);
+				}
+			}
+
+			try {
+				Constructor<?> c = resultType.getConstructor(String.class);
+				return c.newInstance(o.toString());
+			} catch (Throwable t) {
+				// handled on next line
+			}
+			throw new IllegalArgumentException("No conversion to " + resultType + " from "
+					+ actualType + " value " + o);
+		}
+
+		private Object convert(ParameterizedType pType, Object o) throws InstantiationException,
+				IllegalAccessException, Exception {
+			Class<?> resultType = (Class<?>) pType.getRawType();
+			if (Collection.class.isAssignableFrom(resultType)) {
+				Collection<?> input = toCollection(o);
+				if (resultType.isInterface()) {
+					if (resultType == Collection.class || resultType == List.class)
+						resultType = ArrayList.class;
+					else if (resultType == Set.class || resultType == SortedSet.class)
+						resultType = TreeSet.class;
+					else if (resultType == Queue.class /*|| resultType == Deque.class*/)
+						resultType = LinkedList.class;
+					else if (resultType == Queue.class /*|| resultType == Deque.class*/)
+						resultType = LinkedList.class;
+					else
+						throw new IllegalArgumentException(
+								"Unknown interface for a collection, no concrete class found: "
+										+ resultType);
+				}
+				
+				Collection<Object> result = (Collection<Object>) resultType
+						.newInstance();
+				Type componentType = pType.getActualTypeArguments()[0];
+
+				for (Object i : input) {
+					result.add(convert(componentType, i));
+				}
+				return result;
+			} else if (pType.getRawType() == Class.class) {
+				return loader.loadClass(o.toString());
+			}
+			if (Map.class.isAssignableFrom(resultType)){
+				Map<?,?> input = toMap(o);
+				if (resultType.isInterface()) {
+					if (resultType == SortedMap.class)
+						resultType = TreeMap.class;
+					else if (resultType == Map.class)
+						resultType = LinkedHashMap.class;
+					else
+						throw new IllegalArgumentException(
+								"Unknown interface for a collection, no concrete class found: "
+										+ resultType);
+				}
+				Map<Object,Object> result = (Map<Object,Object>) resultType
+						.newInstance();
+				Type keyType = pType.getActualTypeArguments()[0];
+				Type valueType = pType.getActualTypeArguments()[1];
+
+				for ( Map.Entry<?, ?> entry : input.entrySet()) {
+					result.put(convert(keyType,entry.getKey()), convert(valueType,entry.getValue()));
+				}
+				return result;
+			}
+			throw new IllegalArgumentException("cannot convert to " + pType
+					+ " because it uses generics and is not a Collection or a map");
+		}
+
+
+		Object convertArray(Type componentType, Object o) throws Exception {
+			Collection<?> input = toCollection(o);
+			Class<?> componentClass = getRawClass(componentType);
+			Object array = Array.newInstance(componentClass, input.size());
+
+			int i = 0;
+			for (Object next : input) {
+				Array.set(array, i++, convert(componentType, next));
+			}
+			return array;
+		}
+
+		private Class<?> getRawClass(Type type) {
+			if (type instanceof Class)
+				return (Class<?>) type;
+
+			if (type instanceof ParameterizedType)
+				return (Class<?>) ((ParameterizedType) type).getRawType();
+
+			throw new IllegalArgumentException(
+					"For the raw type, type must be ParamaterizedType or Class but is " + type);
+		}
+
+		private Collection<?> toCollection(Object o) {
+			if (o instanceof Collection)
+				return (Collection<?>) o;
+
+			if (o.getClass().isArray()) {
+				if ( o.getClass().getComponentType().isPrimitive()) {
+					int length = Array.getLength(o);
+					List<Object> result = new ArrayList<Object>(length);
+					for ( int i=0; i<length; i++) {
+						result.add( Array.get(o, i));
+					}
+					return result;
+				} else
+					return Arrays.asList((Object[]) o);
+			}
+
+			if ( o instanceof String) {
+				String s = (String)o;
+				if (s.indexOf('|')>0)
+					return Arrays.asList(s.split("\\|"));					
+			}
+			return Arrays.asList(o);
+		}
+		
+		private Map<?, ?> toMap(Object o) {
+			if ( o instanceof Map) 
+				return (Map<?, ?>) o;
+			
+			throw new IllegalArgumentException(
+					"Cannot convert " + o + " to a map as requested");
+		}
+
+
+	}
+	
+	
+	public static String mangleMethodName(String id) {
+		StringBuilder sb = new StringBuilder(id);
+		for ( int i =0; i<sb.length(); i++) {
+			char c  = sb.charAt(i);
+			boolean twice = i < sb.length()-1 && sb.charAt(i+1) ==c;
+			if ( c == '$' || c == '_') {
+				if ( twice )
+					sb.deleteCharAt(i+1);
+				else 
+					if ( c == '$')
+						sb.deleteCharAt(i--); // Remove dollars
+					else
+						sb.setCharAt(i, '.'); // Make _ into .
+			}				
+		}
+		return sb.toString();
+	}
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Configurable.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,180 @@
+package aQute.bnd.annotation.metatype;
+
+import java.lang.annotation.*;
+
+/**
+ * The Metadata interface provides access to the properties that underly a
+ * Configurable interface. Any Configurable interface can implement this
+ * interface. The interface provides the annotations that can be used to create
+ * metatype objects.
+ * 
+ * @ConsumerInterface
+ */
+
+public interface Meta {
+	enum Type {
+		Boolean,
+		Byte,
+		Character,
+		Short,
+		Integer,
+		Long,
+		Float,
+		Double,
+		String,
+		Password
+	}
+
+	/**
+	 * Constant NULL for default usage
+	 */
+	final String	NULL	= "§NULL§";
+
+	/**
+	 * The OCD Annotation maps to the OCD element in the Metatype specification.
+	 * The only difference is that it is possible to create a Designate element
+	 * as well.
+	 * 
+	 */
+	@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface OCD {
+		/**
+		 * The name for this component. The default name is a the short class
+		 * name that us un-camel cased to make it more readable.
+		 * 
+		 * @return The name of this component
+		 */
+		String name() default NULL;
+
+		/**
+		 * The id of the component. Default the name of the class in FQN
+		 * notation but with nested classes using the $ as separator (not .).
+		 * 
+		 * The Felix webconsole always uses this id as the PID and not the pid
+		 * in the Designate element. Reported as an error.
+		 * 
+		 * @return the id
+		 */
+		String id() default NULL;
+
+		/**
+		 * The localization prefix. The default localization prefix is the name
+		 * of the class with a $ separator for nested classes.
+		 * 
+		 * @return the localization prefix.
+		 */
+		String localization() default NULL;
+
+		/**
+		 * A description for this ocd. The default is empty.
+		 * 
+		 * @return the description
+		 */
+		String description() default NULL;
+
+		/**
+		 * Defines if this is for a factory or not.
+		 */
+		boolean factory() default false;
+	}
+
+	/**
+	 * The AD element in the Metatype specification.
+	 * 
+	 */
+	@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @interface AD {
+		/**
+		 * A description of the attribute. Default is empty.
+		 * 
+		 * @return The description of the attribute.
+		 */
+		String description() default NULL;
+
+		/**
+		 * The name of the attribute. By default the un-camel cased version of
+		 * the method name.
+		 * 
+		 * @return the name
+		 */
+		String name() default NULL;
+
+		/**
+		 * The id of the attribute. By default the name of the method. The id is
+		 * the key used to access the properties. This is the reason the AD is a
+		 * runtime annotation so the runtime can find the proper key.
+		 * 
+		 * @return the id
+		 */
+		String id() default NULL;
+
+		/**
+		 * The type of the field. This must be one of the basic types in the
+		 * metatype specification. By default, the type is derived from the
+		 * return type of the method. This includes most collections and arrays.
+		 * Unrecognized types are defaulted to String.
+		 * 
+		 * @return the type to be used.
+		 */
+		Type type() default Type.String;
+
+		/**
+		 * The cardinality of the attribute. If not explicitly set it will be
+		 * derived from the attributes return type. Collections return
+		 * Integer.MIN_VALUE and arrays use Integer.MAX_VALUE.
+		 * 
+		 * If a single string needs to be converted to a Collection or array
+		 * then the | will be used as a separator to split the line.
+		 * 
+		 * @return the cardinality of the attribute
+		 */
+		int cardinality() default 0;
+
+		/**
+		 * The minimum value. This string must be converted to the attribute
+		 * type before comparison takes place.
+		 * 
+		 * @return the min value
+		 */
+		String min() default NULL;
+
+		/**
+		 * The maximum value. This string must be converted to the attribute
+		 * type before comparison takes place.
+		 * 
+		 * @return the max value
+		 */
+		String max() default NULL;
+
+		/**
+		 * The default value. This value must be converted to the return type of
+		 * the attribute. For multi valued returns use the | as separator.
+		 * 
+		 * @return the default value
+		 */
+		String deflt() default NULL;
+
+		/**
+		 * Indicates that this attribute is required. By default attributes are
+		 * required.
+		 * 
+		 * @return
+		 */
+		boolean required() default true;
+
+		/**
+		 * Provide labels for options. These labels must match the values. If no
+		 * labels are set, the un-cameled version of the values are used (if
+		 * they are set of course).
+		 * 
+		 * @return the option labels
+		 */
+		String[] optionLabels() default NULL;
+
+		/**
+		 * The values of options. If not set and the return type is an enum
+		 * class then the values will be derived from this return type.
+		 * 
+		 * @return the option labels
+		 */
+		String[] optionValues() default NULL;
+	}
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/Meta.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/packageinfo?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/packageinfo (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/metatype/packageinfo Thu Jun  7 21:57:32 2012
@@ -0,0 +1 @@
+version 1.43.1

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/packageinfo?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/packageinfo (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/annotation/packageinfo Thu Jun  7 21:57:32 2012
@@ -0,0 +1 @@
+version 1.43.1

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,10 @@
+package aQute.bnd.build;
+
+public class CircularDependencyException extends Exception {
+    public CircularDependencyException(String string) {
+        super(string);
+    }
+
+    private static final long serialVersionUID = 1L;
+
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/CircularDependencyException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java?rev=1347815&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java Thu Jun  7 21:57:32 2012
@@ -0,0 +1,210 @@
+package aQute.bnd.build;
+
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+
+import aQute.bnd.service.RepositoryPlugin.Strategy;
+import aQute.lib.osgi.*;
+
+public class Container {
+	public enum TYPE {
+		REPO, PROJECT, PROJECT_BUNDLE, EXTERNAL, LIBRARY, ERROR
+	}
+
+	final File					file;
+	final TYPE					type;
+	final String				bsn;
+	final String				version;
+	final String				error;
+	final Project				project;
+	volatile Map<String, String>	attributes;
+	private long				manifestTime;
+	private Manifest			manifest;
+
+	Container(Project project, String bsn, String version, TYPE type, File source, String error,
+			Map<String, String> attributes) {
+		this.bsn = bsn;
+		this.version = version;
+		this.type = type;
+		this.file = source != null ? source : new File("/" + bsn + ":" + version + ":" + type);
+		this.project = project;
+		this.error = error;
+		if (attributes == null || attributes.isEmpty())
+			this.attributes = Collections.emptyMap();
+		else
+			this.attributes = attributes;
+	}
+
+	public Container(Project project, File file) {
+		this(project, file.getName(), "project", TYPE.PROJECT, file, null, null);
+	}
+
+	public Container(File file) {
+		this(null, file.getName(), "project", TYPE.EXTERNAL, file, null, null);
+	}
+
+	public File getFile() {
+		return file;
+	}
+
+	/**
+	 * Iterate over the containers and get the files they represent
+	 * 
+	 * @param files
+	 * @return
+	 * @throws Exception
+	 */
+	public boolean contributeFiles(List<File> files, Processor reporter) throws Exception {
+		switch (type) {
+		case EXTERNAL:
+		case REPO:
+			files.add(file);
+			return true;
+
+		case PROJECT:
+			File[] fs = project.build();
+			reporter.getInfo(project);
+			if (fs == null)
+				return false;
+
+			for (File f : fs)
+				files.add(f);
+			return true;
+
+		case LIBRARY:
+			List<Container> containers = getMembers();
+			for (Container container : containers) {
+				if (!container.contributeFiles(files, reporter))
+					return false;
+			}
+			return true;
+
+		case ERROR:
+			reporter.error(error);
+			return false;
+		}
+		return false;
+	}
+
+	public String getBundleSymbolicName() {
+		return bsn;
+	}
+
+	public String getVersion() {
+		return version;
+	}
+
+	public TYPE getType() {
+		return type;
+	}
+
+	public String getError() {
+		return error;
+	}
+
+	public boolean equals(Object other) {
+		if (other instanceof Container)
+			return file.equals(((Container) other).file);
+		else
+			return false;
+	}
+
+	public int hashCode() {
+		return file.hashCode();
+	}
+
+	public Project getProject() {
+		return project;
+	}
+
+	/**
+	 * Must show the file name or the error formatted as a file name
+	 * 
+	 * @return
+	 */
+	public String toString() {
+		if (getError() != null)
+			return "/error/" + getError();
+		else
+			return getFile().getAbsolutePath();
+	}
+
+	public Map<String, String> getAttributes() {
+		return attributes;
+	}
+	
+	public void putAttribute(String name, String value) {
+		if (attributes == Collections.<String,String>emptyMap())
+			attributes = new HashMap<String, String>(1);
+		attributes.put(name, value);
+	}
+
+	/**
+	 * Return the this if this is anything else but a library. If it is a
+	 * library, return the members. This could work recursively, e.g., libraries
+	 * can point to libraries.
+	 * 
+	 * @return
+	 * @throws Exception
+	 */
+	public List<Container> getMembers() throws Exception {
+		List<Container> result = project.newList();
+
+		// Are ww a library? If no, we are the result
+		if (getType() == TYPE.LIBRARY) {
+			// We are a library, parse the file. This is
+			// basically a specification clause per line.
+			// I.e. you can do bsn; version, bsn2; version. But also
+			// spread it out over lines.
+			InputStream in = null;
+			BufferedReader rd = null;
+			String line;
+			try {
+				in = new FileInputStream(file);
+				rd = new BufferedReader(new InputStreamReader(in,
+						Constants.DEFAULT_CHARSET));
+				while ((line = rd.readLine()) != null) {
+					line = line.trim();
+					if (!line.startsWith("#") && line.length() > 0) {
+						List<Container> list = project.getBundles(Strategy.HIGHEST, line, null);
+						result.addAll(list);
+					}
+				}
+			} finally {
+				if (rd != null) {
+					rd.close();
+				}
+				if (in != null) {
+					in.close();
+				}
+			}
+		} else
+			result.add(this);
+
+		return result;
+	}
+
+	/**
+	 * Answer the manifest for this container (if possible). Manifest is cached
+	 * until the file is renewed.
+	 */
+
+	public Manifest getManifest() throws Exception {
+		if (getError() != null || getFile() == null)
+			return null;
+
+		if (manifestTime < getFile().lastModified()) {
+			InputStream in = new FileInputStream(getFile());
+			try {
+				JarInputStream jin = new JarInputStream(in);
+				manifest = jin.getManifest();
+				jin.close();
+				manifestTime = getFile().lastModified();
+			} finally {
+				in.close();
+			}
+		}
+		return manifest;
+	}
+}

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Container.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



Mime
View raw message