You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by mc...@apache.org on 2012/07/19 15:11:21 UTC

svn commit: r1363322 - in /felix/trunk/bundleplugin/src/main/java/aQute: bnd/build/ bnd/build/model/ bnd/build/model/conversions/ bnd/component/ bnd/differ/ bnd/filerepo/ bnd/header/ bnd/make/component/ bnd/maven/ bnd/maven/support/ bnd/osgi/ bnd/osgi/...

Author: mcculls
Date: Thu Jul 19 13:11:20 2012
New Revision: 1363322

URL: http://svn.apache.org/viewvc?rev=1363322&view=rev
Log:
Sync with latest bnd code

Added:
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java   (with props)
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/packageinfo
Removed:
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/LowerVersionMatchType.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/UpperVersionMatchType.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/VersionPolicy.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/conversions/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/TagResource.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Version.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/VersionRange.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/PropertiesReader.java
    felix/trunk/bundleplugin/src/main/java/aQute/libg/reporter/Messages.java
Modified:
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/BndEditModel.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/RepositoryElement.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/filerepo/FileRepo.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/header/Attrs.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Analyzer.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Builder.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Domain.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Jar.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Macro.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/resource/Filters.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/packageinfo
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java
    felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java
    felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java
    felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/Project.java Thu Jul 19 13:11:20 2012
@@ -16,6 +16,7 @@ import aQute.bnd.osgi.eclipse.*;
 import aQute.bnd.service.*;
 import aQute.bnd.service.RepositoryPlugin.Strategy;
 import aQute.bnd.service.action.*;
+import aQute.bnd.version.*;
 import aQute.lib.io.*;
 import aQute.libg.generics.*;
 import aQute.libg.reporter.*;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/ProjectMessages.java Thu Jul 19 13:11:20 2012
@@ -6,6 +6,7 @@ import java.util.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
 import aQute.bnd.service.RepositoryPlugin.Strategy;
+import aQute.bnd.version.*;
 import aQute.service.reporter.*;
 
 public interface ProjectMessages extends Messages {

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/WorkspaceRepository.java Thu Jul 19 13:11:20 2012
@@ -6,6 +6,7 @@ import java.util.regex.*;
 
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 
 public class WorkspaceRepository implements RepositoryPlugin {
 	private final Workspace	workspace;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/BndEditModel.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/BndEditModel.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/BndEditModel.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/build/model/BndEditModel.java Thu Jul 19 13:11:20 2012
@@ -12,6 +12,7 @@ import aQute.bnd.build.model.conversions
 import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.properties.*;
+import aQute.bnd.version.*;
 import aQute.libg.tuple.*;
 
 /**
@@ -26,9 +27,9 @@ public class BndEditModel {
 	public static final String										LINE_SEPARATOR				= " \\\n\t";
 	public static final String										LIST_SEPARATOR				= ",\\\n\t";
 
-	protected static final String									ISO_8859_1					= "ISO-8859-1";												//$NON-NLS-1$
+	private static final String									ISO_8859_1					= "ISO-8859-1";												//$NON-NLS-1$
 
-	protected static String[]										KNOWN_PROPERTIES			= new String[] {
+	private static String[]										KNOWN_PROPERTIES			= new String[] {
 			Constants.BUNDLE_SYMBOLICNAME, Constants.BUNDLE_VERSION, Constants.BUNDLE_ACTIVATOR,
 			Constants.EXPORT_PACKAGE, Constants.IMPORT_PACKAGE, aQute.bnd.osgi.Constants.PRIVATE_PACKAGE,
 			aQute.bnd.osgi.Constants.SOURCES,
@@ -46,8 +47,8 @@ public class BndEditModel {
 																										+ Constants.BUNDLE_VERSION
 																										+ "}";
 
-	protected final Map<String,Converter< ? extends Object,String>>	converters					= new HashMap<String,Converter< ? extends Object,String>>();
-	protected final Map<String,Converter<String, ? extends Object>>	formatters					= new HashMap<String,Converter<String, ? extends Object>>();
+	private final Map<String,Converter< ? extends Object,String>>	converters					= new HashMap<String,Converter< ? extends Object,String>>();
+	private final Map<String,Converter<String, ? extends Object>>	formatters					= new HashMap<String,Converter<String, ? extends Object>>();
 	// private final DataModelHelper obrModelHelper = new DataModelHelperImpl();
 
 	private final PropertyChangeSupport								propChangeSupport			= new PropertyChangeSupport(
@@ -60,7 +61,7 @@ public class BndEditModel {
 	private final Map<String,String>								changesToSave				= new HashMap<String,String>();
 
 	// CONVERTERS
-	protected Converter<List<VersionedClause>,String>				buildPathConverter			= new ClauseListConverter<VersionedClause>(
+	private Converter<List<VersionedClause>,String>				buildPathConverter			= new ClauseListConverter<VersionedClause>(
 																										new Converter<VersionedClause,Pair<String,Attrs>>() {
 																											public VersionedClause convert(
 																													Pair<String,Attrs> input)
@@ -70,7 +71,7 @@ public class BndEditModel {
 																														input.getSecond());
 																											}
 																										});
-	protected Converter<List<VersionedClause>,String>				buildPackagesConverter		= new ClauseListConverter<VersionedClause>(
+	private Converter<List<VersionedClause>,String>				buildPackagesConverter		= new ClauseListConverter<VersionedClause>(
 																										new Converter<VersionedClause,Pair<String,Attrs>>() {
 																											public VersionedClause convert(
 																													Pair<String,Attrs> input)
@@ -80,10 +81,10 @@ public class BndEditModel {
 																														input.getSecond());
 																											}
 																										});
-	protected Converter<List<VersionedClause>,String>				clauseListConverter			= new ClauseListConverter<VersionedClause>(
+	private Converter<List<VersionedClause>,String>				clauseListConverter			= new ClauseListConverter<VersionedClause>(
 																										new VersionedClauseConverter());
-	protected Converter<String,String>								stringConverter				= new NoopConverter<String>();
-	protected Converter<Boolean,String>								includedSourcesConverter	= new Converter<Boolean,String>() {
+	private Converter<String,String>								stringConverter				= new NoopConverter<String>();
+	private Converter<Boolean,String>								includedSourcesConverter	= new Converter<Boolean,String>() {
 																									public Boolean convert(
 																											String string)
 																											throws IllegalArgumentException {
@@ -91,18 +92,10 @@ public class BndEditModel {
 																												.valueOf(string);
 																									}
 																								};
-	protected Converter<VersionPolicy,String>						versionPolicyConverter		= new Converter<VersionPolicy,String>() {
-																									public VersionPolicy convert(
-																											String string)
-																											throws IllegalArgumentException {
-																										return VersionPolicy
-																												.parse(string);
-																									}
-																								};
-	protected Converter<List<String>,String>						listConverter				= SimpleListConverter
+	private Converter<List<String>,String>						listConverter				= SimpleListConverter
 																										.create();
-	protected Converter<List<HeaderClause>,String>					headerClauseListConverter	= new HeaderClauseListConverter();
-	protected ClauseListConverter<ExportedPackage>					exportPackageConverter		= new ClauseListConverter<ExportedPackage>(
+	private Converter<List<HeaderClause>,String>					headerClauseListConverter	= new HeaderClauseListConverter();
+	private ClauseListConverter<ExportedPackage>					exportPackageConverter		= new ClauseListConverter<ExportedPackage>(
 																										new Converter<ExportedPackage,Pair<String,Attrs>>() {
 																											public ExportedPackage convert(
 																													Pair<String,Attrs> input) {
@@ -111,7 +104,7 @@ public class BndEditModel {
 																														input.getSecond());
 																											}
 																										});
-	protected Converter<List<ServiceComponent>,String>				serviceComponentConverter	= new ClauseListConverter<ServiceComponent>(
+	private Converter<List<ServiceComponent>,String>				serviceComponentConverter	= new ClauseListConverter<ServiceComponent>(
 																										new Converter<ServiceComponent,Pair<String,Attrs>>() {
 																											public ServiceComponent convert(
 																													Pair<String,Attrs> input)
@@ -121,7 +114,7 @@ public class BndEditModel {
 																														input.getSecond());
 																											}
 																										});
-	protected Converter<List<ImportPattern>,String>					importPatternConverter		= new ClauseListConverter<ImportPattern>(
+	private Converter<List<ImportPattern>,String>					importPatternConverter		= new ClauseListConverter<ImportPattern>(
 																										new Converter<ImportPattern,Pair<String,Attrs>>() {
 																											public ImportPattern convert(
 																													Pair<String,Attrs> input)
@@ -132,38 +125,38 @@ public class BndEditModel {
 																											}
 																										});
 
-	protected Converter<Map<String,String>,String>					propertiesConverter			= new PropertiesConverter();
+	private Converter<Map<String,String>,String>					propertiesConverter			= new PropertiesConverter();
 	
-	protected Converter<List<Requirement>,String>					requirementListConverter	= new RequirementListConverter();
-	protected Converter<EE,String>									eeConverter					= new EEConverter();
+	private Converter<List<Requirement>,String>					requirementListConverter	= new RequirementListConverter();
+	private Converter<EE,String>									eeConverter					= new EEConverter();
 
 	// Converter<ResolveMode, String> resolveModeConverter =
 	// EnumConverter.create(ResolveMode.class, ResolveMode.manual);
 
 	// FORMATTERS
-	protected Converter<String,Object>								defaultFormatter			= new DefaultFormatter();
-	protected Converter<String,String>								newlineEscapeFormatter		= new NewlineEscapedStringFormatter();
-	protected Converter<String,Boolean>								defaultFalseBoolFormatter	= new DefaultBooleanFormatter(
+	private Converter<String,Object>								defaultFormatter			= new DefaultFormatter();
+	private Converter<String,String>								newlineEscapeFormatter		= new NewlineEscapedStringFormatter();
+	private Converter<String,Boolean>								defaultFalseBoolFormatter	= new DefaultBooleanFormatter(
 																										false);
-	protected Converter<String,Collection< ? >>						stringListFormatter			= new CollectionFormatter<Object>(
+	private Converter<String,Collection< ? >>						stringListFormatter			= new CollectionFormatter<Object>(
 																										LIST_SEPARATOR,
 																										(String) null);
-	protected Converter<String,Collection< ? extends HeaderClause>>	headerClauseListFormatter	= new CollectionFormatter<HeaderClause>(
+	private Converter<String,Collection< ? extends HeaderClause>>	headerClauseListFormatter	= new CollectionFormatter<HeaderClause>(
 																										LIST_SEPARATOR,
 																										new HeaderClauseFormatter(),
 																										null);
-	protected Converter<String,Map<String,String>>					propertiesFormatter			= new MapFormatter(
+	private Converter<String,Map<String,String>>					propertiesFormatter			= new MapFormatter(
 																										LIST_SEPARATOR,
 																										new PropertiesEntryFormatter(),
 																										null);
 	
-	protected Converter<String,Collection< ? extends Requirement>>	requirementListFormatter	= new CollectionFormatter<Requirement>(
+	private Converter<String,Collection< ? extends Requirement>>	requirementListFormatter	= new CollectionFormatter<Requirement>(
 																										LIST_SEPARATOR,
 																										new RequirementFormatter(),
 																										null);
 
-	protected Converter<String,EE>									eeFormatter					= new EEFormatter();
-	Converter<String,Collection< ? extends String>>					runReposFormatter			= new CollectionFormatter<String>(
+	private Converter<String,EE>									eeFormatter					= new EEFormatter();
+	private Converter<String,Collection< ? extends String>>			runReposFormatter			= new CollectionFormatter<String>(
 																										LIST_SEPARATOR,
 																										aQute.bnd.osgi.Constants.EMPTY_HEADER);
 
@@ -267,7 +260,7 @@ public class BndEditModel {
 		}
 	}
 
-	protected static IRegion findEntry(IDocument document, String name) throws Exception {
+	private static IRegion findEntry(IDocument document, String name) throws Exception {
 		PropertiesLineReader reader = new PropertiesLineReader(document);
 		LineType type = reader.next();
 		while (type != LineType.eof) {
@@ -281,7 +274,7 @@ public class BndEditModel {
 		return null;
 	}
 
-	protected static void updateDocument(IDocument document, String name, String value) {
+	private static void updateDocument(IDocument document, String name, String value) {
 		String newEntry;
 		if (value != null) {
 			StringBuilder buffer = new StringBuilder();
@@ -642,7 +635,7 @@ public class BndEditModel {
     }
 
 
-	protected <R> R doGetObject(String name, Converter< ? extends R, ? super String> converter) {
+	private <R> R doGetObject(String name, Converter< ? extends R, ? super String> converter) {
 		R result;
 		if (objectProperties.containsKey(name)) {
 			R temp = (R) objectProperties.get(name);
@@ -659,7 +652,7 @@ public class BndEditModel {
 		return result;
 	}
 
-	protected <T> void doSetObject(String name, T oldValue, T newValue, Converter<String, ? super T> formatter) {
+	private <T> void doSetObject(String name, T oldValue, T newValue, Converter<String, ? super T> formatter) {
 		objectProperties.put(name, newValue);
 		changesToSave.put(name, formatter.convert(newValue));
 		propChangeSupport.firePropertyChange(name, oldValue, newValue);

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/AnnotationReader.java Thu Jul 19 13:11:20 2012
@@ -9,6 +9,7 @@ import org.osgi.service.component.annota
 import aQute.bnd.osgi.*;
 import aQute.bnd.osgi.Clazz.MethodDef;
 import aQute.bnd.osgi.Descriptors.TypeRef;
+import aQute.bnd.version.*;
 import aQute.lib.collections.*;
 
 /**
@@ -26,7 +27,7 @@ import aQute.lib.collections.*;
 public class AnnotationReader extends ClassDataCollector {
 	final static TypeRef[]		EMPTY					= new TypeRef[0];
 	final static Pattern		PROPERTY_PATTERN		= Pattern
-																.compile("\\s*([^=]+(\\s*:\\s*(Boolean|Byte|Char|Short|Integer|Long|Float|Double|String))?)\\s*=(.*)");
+																.compile("\\s*([^=\\s:]+)\\s*(?::\\s*(Boolean|Byte|Char|Short|Integer|Long|Float|Double|String)\\s*)?=(.*)");
 
 	public static final Version	V1_1					= new Version("1.1.0");																												// "1.1.0"
 	public static final Version	V1_2					= new Version("1.2.0");																												// "1.1.0"
@@ -308,7 +309,11 @@ public class AnnotationReader extends Cl
 
 				if (m.matches()) {
 					String key = m.group(1);
-					String value = m.group(4);
+					String type = m.group(2);
+					if ( type != null)
+						key += ":" + type;
+					
+					String value = m.group(3);
 					component.property.add(key, value);
 				} else
 					throw new IllegalArgumentException("Malformed property '" + p + "' on component: " + className);

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ComponentDef.java Thu Jul 19 13:11:20 2012
@@ -7,6 +7,7 @@ import org.osgi.service.component.annota
 
 import aQute.bnd.osgi.*;
 import aQute.bnd.osgi.Descriptors.TypeRef;
+import aQute.bnd.version.*;
 import aQute.lib.collections.*;
 import aQute.lib.tag.*;
 
@@ -183,6 +184,9 @@ class ComponentDef {
 			return v;
 
 		try {
+			if ( type.equals("Char"))
+				type = "Character";
+			
 			Class< ? > c = Class.forName("java.lang." + type);
 			if (c == String.class)
 				return v;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/component/ReferenceDef.java Thu Jul 19 13:11:20 2012
@@ -3,6 +3,7 @@ package aQute.bnd.component;
 import org.osgi.service.component.annotations.*;
 
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 import aQute.lib.tag.*;
 
 /**

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/Baseline.java Thu Jul 19 13:11:20 2012
@@ -8,6 +8,7 @@ import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.diff.*;
 import aQute.bnd.service.diff.Diff.Ignore;
+import aQute.bnd.version.*;
 import aQute.libg.generics.*;
 import aQute.service.reporter.*;
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/JavaElement.java Thu Jul 19 13:11:20 2012
@@ -17,9 +17,9 @@ import aQute.bnd.osgi.Clazz.JAVA;
 import aQute.bnd.osgi.Clazz.MethodDef;
 import aQute.bnd.osgi.Descriptors.PackageRef;
 import aQute.bnd.osgi.Descriptors.TypeRef;
-import aQute.bnd.osgi.Version;
 import aQute.bnd.service.diff.*;
 import aQute.bnd.service.diff.Type;
+import aQute.bnd.version.Version;
 import aQute.lib.collections.*;
 import aQute.libg.generics.*;
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/RepositoryElement.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/RepositoryElement.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/RepositoryElement.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/differ/RepositoryElement.java Thu Jul 19 13:11:20 2012
@@ -5,6 +5,7 @@ import java.util.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
 import aQute.bnd.service.diff.*;
+import aQute.bnd.version.*;
 
 public class RepositoryElement {
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/filerepo/FileRepo.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/filerepo/FileRepo.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/filerepo/FileRepo.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/filerepo/FileRepo.java Thu Jul 19 13:11:20 2012
@@ -5,6 +5,7 @@ import java.util.*;
 import java.util.regex.*;
 
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 
 public class FileRepo {
 	File	root;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/header/Attrs.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/header/Attrs.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/header/Attrs.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/header/Attrs.java Thu Jul 19 13:11:20 2012
@@ -4,6 +4,7 @@ import java.util.*;
 import java.util.regex.*;
 
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 import aQute.lib.collections.*;
 
 public class Attrs implements Map<String,String> {

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ComponentAnnotationReader.java Thu Jul 19 13:11:20 2012
@@ -256,7 +256,7 @@ public class ComponentAnnotationReader e
 		return Modifier.isPublic(method.getAccess()) || Modifier.isProtected(method.getAccess());
 	}
 
-	static Pattern	PROPERTY_PATTERN	= Pattern.compile("\\s*([^=\\s])+\\s*=(.+)");
+	static Pattern	PROPERTY_PATTERN	= Pattern.compile("\\s*([^=\\s]+)\\s*=(.+)");
 
 	private void doProperties(aQute.bnd.osgi.Annotation annotation) {
 		Object[] properties = annotation.get(Component.PROPERTIES);

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/make/component/ServiceComponent.java Thu Jul 19 13:11:20 2012
@@ -12,6 +12,7 @@ import aQute.bnd.osgi.*;
 import aQute.bnd.osgi.Clazz.QUERY;
 import aQute.bnd.osgi.Descriptors.TypeRef;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 
 /**
  * This class is an analyzer plugin. It looks at the properties and tries to

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/MavenRepository.java Thu Jul 19 13:11:20 2012
@@ -6,6 +6,7 @@ import java.util.regex.*;
 
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 import aQute.service.reporter.*;
 
 public class MavenRepository implements RepositoryPlugin, Plugin, BsnToMavenPath {

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/PomFromManifest.java Thu Jul 19 13:11:20 2012
@@ -8,6 +8,7 @@ import java.util.regex.*;
 
 import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 import aQute.lib.io.*;
 import aQute.lib.tag.*;
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/maven/support/MavenRemoteRepository.java Thu Jul 19 13:11:20 2012
@@ -6,6 +6,7 @@ import java.util.*;
 
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 import aQute.lib.io.*;
 import aQute.service.reporter.*;
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Analyzer.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Analyzer.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Analyzer.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Analyzer.java Thu Jul 19 13:11:20 2012
@@ -35,6 +35,7 @@ import aQute.bnd.osgi.Descriptors.Descri
 import aQute.bnd.osgi.Descriptors.PackageRef;
 import aQute.bnd.osgi.Descriptors.TypeRef;
 import aQute.bnd.service.*;
+import aQute.bnd.version.Version;
 import aQute.lib.base64.*;
 import aQute.lib.collections.*;
 import aQute.lib.filter.*;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Builder.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Builder.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Builder.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Builder.java Thu Jul 19 13:11:20 2012
@@ -117,6 +117,8 @@ public class Builder extends Analyzer {
 		dot.updateModified(lastModified(), "Last Modified Processor");
 		dot.setName(getBsn());
 
+		doDigests(dot);
+		
 		sign(dot);
 		doSaveManifest(dot);
 
@@ -138,7 +140,7 @@ public class Builder extends Analyzer {
 			return;
 		trace("digests %s", ps);
 		String[] digests = ps.keySet().toArray(new String[ps.size()]);
-		dot.calcChecksums(digests);
+		dot.setDigestAlgorithms(digests);
 	}
 
 	/**

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Domain.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Domain.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Domain.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Domain.java Thu Jul 19 13:11:20 2012
@@ -7,6 +7,7 @@ import java.util.Map.Entry;
 import java.util.jar.*;
 
 import aQute.bnd.header.*;
+import aQute.bnd.version.*;
 import aQute.lib.converter.*;
 import aQute.service.reporter.*;
 

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Jar.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Jar.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Jar.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Jar.java Thu Jul 19 13:11:20 2012
@@ -34,6 +34,7 @@ public class Jar implements Closeable {
 	boolean									nomanifest;
 	Compression								compression	= Compression.DEFLATE;
 	boolean									closed;
+	String[]								algorithms;
 
 	public Jar(String name) {
 		this.name = name;
@@ -241,6 +242,40 @@ public class Jar implements Closeable {
 
 	public void write(OutputStream out) throws Exception {
 		check();
+
+		if (!doNotTouchManifest && !nomanifest && algorithms != null) {
+
+			// ok, we have a request to create digests
+			// of the resources. Since we have to output
+			// the manifest first, we have a slight problem.
+			// We can also not make multiple passes over the resource
+			// because some resources are not idempotent and/or can
+			// take significant time. So we just copy the jar
+			// to a temporary file, read it in again, calculate
+			// the checksums and save.
+
+			String[] algs = algorithms;
+			algorithms = null;
+			try {
+				File f = File.createTempFile(getName(), ".jar");
+				System.out.println("Created tmp file " + f);
+				write(f);
+				Jar tmp = new Jar(f);
+				try {
+					tmp.calcChecksums(algorithms);
+					tmp.write(out);
+				}
+				finally {
+					f.delete();
+					tmp.close();
+				}
+			}
+			finally {
+				algorithms = algs;
+			}
+			return;
+		}
+
 		ZipOutputStream jout = nomanifest || doNotTouchManifest ? new ZipOutputStream(out) : new JarOutputStream(out);
 
 		switch (compression) {
@@ -278,6 +313,7 @@ public class Jar implements Closeable {
 			return;
 
 		JarEntry ze = new JarEntry("META-INF/MANIFEST.MF");
+
 		jout.putNextEntry(ze);
 		writeManifest(jout);
 		jout.closeEntry();
@@ -810,4 +846,8 @@ public class Jar implements Closeable {
 			din.close();
 		}
 	}
+
+	public void setDigestAlgorithms(String[] algorithms) {
+		this.algorithms = algorithms;
+	}
 }

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Macro.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Macro.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Macro.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/Macro.java Thu Jul 19 13:11:20 2012
@@ -7,6 +7,7 @@ import java.text.*;
 import java.util.*;
 import java.util.regex.*;
 
+import aQute.bnd.version.*;
 import aQute.lib.collections.*;
 import aQute.lib.io.*;
 
@@ -230,7 +231,7 @@ public class Macro {
 				if (e.getCause() instanceof IllegalArgumentException) {
 					domain.error("%s, for cmd: %s, arguments; %s", e.getMessage(), method, Arrays.toString(args));
 				} else {
-					domain.warning("Exception in replace: " + e.getCause());
+					domain.warning("Exception in replace: %s", e.getCause());
 					e.getCause().printStackTrace();
 				}
 			}

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/resource/Filters.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/resource/Filters.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/resource/Filters.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/osgi/resource/Filters.java Thu Jul 19 13:11:20 2012
@@ -3,6 +3,7 @@ package aQute.bnd.osgi.resource;
 import org.osgi.framework.namespace.*;
 
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 import aQute.libg.filters.*;
 
 public class Filters {

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/packageinfo?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/packageinfo (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/properties/packageinfo Thu Jul 19 13:11:20 2012
@@ -1 +1 @@
-version 1.0
\ No newline at end of file
+version 2.0
\ No newline at end of file

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/repo/eclipse/EclipseRepo.java Thu Jul 19 13:11:20 2012
@@ -8,6 +8,7 @@ import java.util.jar.*;
 import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 import aQute.lib.io.*;
 import aQute.libg.generics.*;
 import aQute.service.reporter.*;

Modified: felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/service/RepositoryPlugin.java Thu Jul 19 13:11:20 2012
@@ -4,6 +4,7 @@ import java.io.*;
 import java.util.*;
 
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 
 public interface RepositoryPlugin {
 	public enum Strategy {

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java?rev=1363322&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java Thu Jul 19 13:11:20 2012
@@ -0,0 +1,164 @@
+package aQute.bnd.version;
+
+import java.util.regex.*;
+
+public class Version implements Comparable<Version> {
+	final int					major;
+	final int					minor;
+	final int					micro;
+	final String				qualifier;
+	public final static String	VERSION_STRING	= "(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.([-_\\da-zA-Z]+))?)?)?";
+	public final static Pattern	VERSION			= Pattern.compile(VERSION_STRING);
+	public final static Version	LOWEST			= new Version();
+	public final static Version	HIGHEST			= new Version(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE,
+														"\uFFFF");
+
+	public static final Version	emptyVersion	= LOWEST;
+	public static final Version	ONE				= new Version(1, 0, 0);
+
+	public Version() {
+		this(0);
+	}
+
+	public Version(int major, int minor, int micro, String qualifier) {
+		this.major = major;
+		this.minor = minor;
+		this.micro = micro;
+		this.qualifier = qualifier;
+	}
+
+	public Version(int major, int minor, int micro) {
+		this(major, minor, micro, null);
+	}
+
+	public Version(int major, int minor) {
+		this(major, minor, 0, null);
+	}
+
+	public Version(int major) {
+		this(major, 0, 0, null);
+	}
+
+	public Version(String version) {
+		version = version.trim();
+		Matcher m = VERSION.matcher(version);
+		if (!m.matches())
+			throw new IllegalArgumentException("Invalid syntax for version: " + version);
+
+		major = Integer.parseInt(m.group(1));
+		if (m.group(3) != null)
+			minor = Integer.parseInt(m.group(3));
+		else
+			minor = 0;
+
+		if (m.group(5) != null)
+			micro = Integer.parseInt(m.group(5));
+		else
+			micro = 0;
+
+		qualifier = m.group(7);
+	}
+
+	public int getMajor() {
+		return major;
+	}
+
+	public int getMinor() {
+		return minor;
+	}
+
+	public int getMicro() {
+		return micro;
+	}
+
+	public String getQualifier() {
+		return qualifier;
+	}
+
+	public int compareTo(Version other) {
+		if (other == this)
+			return 0;
+
+		Version o = other;
+		if (major != o.major)
+			return major - o.major;
+
+		if (minor != o.minor)
+			return minor - o.minor;
+
+		if (micro != o.micro)
+			return micro - o.micro;
+
+		int c = 0;
+		if (qualifier != null)
+			c = 1;
+		if (o.qualifier != null)
+			c += 2;
+
+		switch (c) {
+			case 0 :
+				return 0;
+			case 1 :
+				return 1;
+			case 2 :
+				return -1;
+		}
+		return qualifier.compareTo(o.qualifier);
+	}
+
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		sb.append(major);
+		sb.append(".");
+		sb.append(minor);
+		sb.append(".");
+		sb.append(micro);
+		if (qualifier != null) {
+			sb.append(".");
+			sb.append(qualifier);
+		}
+		return sb.toString();
+	}
+
+	public boolean equals(Object ot) {
+		if (!(ot instanceof Version))
+			return false;
+
+		return compareTo((Version) ot) == 0;
+	}
+
+	public int hashCode() {
+		return major * 97 ^ minor * 13 ^ micro + (qualifier == null ? 97 : qualifier.hashCode());
+	}
+
+	public int get(int i) {
+		switch (i) {
+			case 0 :
+				return major;
+			case 1 :
+				return minor;
+			case 2 :
+				return micro;
+			default :
+				throw new IllegalArgumentException("Version can only get 0 (major), 1 (minor), or 2 (micro)");
+		}
+	}
+
+	public static Version parseVersion(String version) {
+		if (version == null) {
+			return LOWEST;
+		}
+
+		version = version.trim();
+		if (version.length() == 0) {
+			return LOWEST;
+		}
+
+		return new Version(version);
+
+	}
+
+	public Version getWithoutQualifier() {
+		return new Version(major, minor, micro);
+	}
+}

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

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/Version.java
------------------------------------------------------------------------------
    svn:executable = *

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

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java?rev=1363322&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java Thu Jul 19 13:11:20 2012
@@ -0,0 +1,93 @@
+package aQute.bnd.version;
+
+import java.util.*;
+import java.util.regex.*;
+
+public class VersionRange {
+	Version			high;
+	Version			low;
+	char			start	= '[';
+	char			end		= ']';
+
+	static Pattern	RANGE	= Pattern.compile("(\\(|\\[)\\s*(" + Version.VERSION_STRING + ")\\s*,\\s*("
+									+ Version.VERSION_STRING + ")\\s*(\\)|\\])");
+
+	public VersionRange(String string) {
+		string = string.trim();
+		Matcher m = RANGE.matcher(string);
+		if (m.matches()) {
+			start = m.group(1).charAt(0);
+			String v1 = m.group(2);
+			String v2 = m.group(10);
+			low = new Version(v1);
+			high = new Version(v2);
+			end = m.group(18).charAt(0);
+			if (low.compareTo(high) > 0)
+				throw new IllegalArgumentException("Low Range is higher than High Range: " + low + "-" + high);
+
+		} else
+			high = low = new Version(string);
+	}
+
+	public boolean isRange() {
+		return high != low;
+	}
+
+	public boolean includeLow() {
+		return start == '[';
+	}
+
+	public boolean includeHigh() {
+		return end == ']';
+	}
+
+	public String toString() {
+		if (high == low)
+			return high.toString();
+
+		StringBuilder sb = new StringBuilder();
+		sb.append(start);
+		sb.append(low);
+		sb.append(',');
+		sb.append(high);
+		sb.append(end);
+		return sb.toString();
+	}
+
+	public Version getLow() {
+		return low;
+	}
+
+	public Version getHigh() {
+		return high;
+	}
+
+	public boolean includes(Version v) {
+		if (!isRange()) {
+			return low.compareTo(v) <= 0;
+		}
+		if (includeLow()) {
+			if (v.compareTo(low) < 0)
+				return false;
+		} else if (v.compareTo(low) <= 0)
+			return false;
+
+		if (includeHigh()) {
+			if (v.compareTo(high) > 0)
+				return false;
+		} else if (v.compareTo(high) >= 0)
+			return false;
+
+		return true;
+	}
+
+	public Iterable<Version> filter(final Iterable<Version> versions) {
+		List<Version> list = new ArrayList<Version>();
+		for (Version v : versions) {
+			if (includes(v))
+				list.add(v);
+		}
+		return list;
+	}
+
+}
\ No newline at end of file

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

Propchange: felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/VersionRange.java
------------------------------------------------------------------------------
    svn:executable = *

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

Added: felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/packageinfo?rev=1363322&view=auto
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/packageinfo (added)
+++ felix/trunk/bundleplugin/src/main/java/aQute/bnd/version/packageinfo Thu Jul 19 13:11:20 2012
@@ -0,0 +1 @@
+version 1.0

Modified: felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileInstallRepo.java Thu Jul 19 13:11:20 2012
@@ -7,6 +7,7 @@ import java.util.regex.*;
 
 import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
+import aQute.bnd.version.*;
 import aQute.service.reporter.*;
 
 public class FileInstallRepo extends FileRepo {

Modified: felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java?rev=1363322&r1=1363321&r2=1363322&view=diff
==============================================================================
--- felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java (original)
+++ felix/trunk/bundleplugin/src/main/java/aQute/lib/deployer/FileRepo.java Thu Jul 19 13:11:20 2012
@@ -8,6 +8,7 @@ import java.util.regex.*;
 import aQute.bnd.header.*;
 import aQute.bnd.osgi.*;
 import aQute.bnd.service.*;
+import aQute.bnd.version.*;
 import aQute.lib.io.*;
 import aQute.service.reporter.*;