diff options
author | Thomas Hallgren | 2010-02-24 20:49:46 +0000 |
---|---|---|
committer | Thomas Hallgren | 2010-02-24 20:49:46 +0000 |
commit | 8bac67a557cac9a676f1116dd5412048a7ba2241 (patch) | |
tree | f360f4d8f1f7b72e0cc97e6ddfa0f20d71291186 /bundles | |
parent | e659d374347a03d5662203090fa7e38a53bc2ff6 (diff) | |
download | rt.equinox.p2-8bac67a557cac9a676f1116dd5412048a7ba2241.tar.gz rt.equinox.p2-8bac67a557cac9a676f1116dd5412048a7ba2241.tar.xz rt.equinox.p2-8bac67a557cac9a676f1116dd5412048a7ba2241.zip |
302201 : Unify the two query approaches used in p2, step 6.
Diffstat (limited to 'bundles')
43 files changed, 206 insertions, 123 deletions
diff --git a/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF index 9e82d164b..ab1201e16 100644 --- a/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Import-Package: org.eclipse.equinox.app, org.eclipse.equinox.internal.p2.console, org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.metadata, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.metadata.query, org.eclipse.equinox.internal.provisional.p2.core, org.eclipse.equinox.internal.provisional.p2.director, diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF index 920bf7474..352d69551 100644 --- a/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Import-Package: org.eclipse.equinox.internal.p2.artifact.repository, org.eclipse.equinox.internal.p2.artifact.repository.simple, org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.metadata.expression, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.update, org.eclipse.equinox.internal.provisional.p2.core, org.eclipse.equinox.internal.provisional.p2.metadata, diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java index 035b59409..7abea5696 100644 --- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java +++ b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java @@ -25,7 +25,7 @@ import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery; import org.eclipse.equinox.p2.publisher.*; import org.eclipse.equinox.p2.publisher.eclipse.BundlesAction; import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAction; -import org.eclipse.equinox.p2.query.IMatchQuery; +import org.eclipse.equinox.p2.query.IQuery; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.repository.IRepository; import org.eclipse.equinox.p2.repository.artifact.*; @@ -217,7 +217,7 @@ public class RepositoryListener extends DirectoryChangeListener { // create a query that will identify all ius related to removed files. // It's safe to compare a String with a File since the auto coercion will // first convert the String into a File. - IMatchQuery<IInstallableUnit> removeQuery = new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, // + IQuery<IInstallableUnit> removeQuery = ExpressionQuery.create( // "$1.exists(x | properties[$0] == x)", FILE_NAME, removedFiles); //$NON-NLS-1$ IQueryResult<IInstallableUnit> toRemove = metadataRepository.query(removeQuery, null); metadataRepository.removeInstallableUnits(toRemove.toSet()); diff --git a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF index 7bee22b18..a9faa1794 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF @@ -31,9 +31,16 @@ Export-Package: org.eclipse.equinox.internal.p2.metadata; x-friends:="org.eclipse.equinox.p2.artifact.repository, org.eclipse.equinox.p2.director, org.eclipse.equinox.p2.engine, + org.eclipse.equinox.p2.director.app, + org.eclipse.equinox.p2.directorywatcher, + org.eclipse.equinox.p2.engine, org.eclipse.equinox.p2.metadata.repository, org.eclipse.equinox.p2.publisher, - org.eclipse.equinox.p2.ql", + org.eclipse.equinox.p2.ql, + org.eclipse.equinox.p2.ui, + org.eclipse.equinox.p2.operations, + org.eclipse.equinox.p2.tests, + org.eclipse.equinox.p2.touchpoint.eclipse", org.eclipse.equinox.internal.p2.metadata.query; x-friends:="org.eclipse.equinox.p2.artifact.optimizers, org.eclipse.equinox.p2.artifact.processors, diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/TranslationSupport.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/TranslationSupport.java index 9701bfb4b..aa1402497 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/TranslationSupport.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/TranslationSupport.java @@ -221,7 +221,7 @@ public class TranslationSupport { return cached; } - IQuery<IInstallableUnit> iuQuery = new ExpressionQuery<IInstallableUnit>(IInstallableUnitFragment.class, capabilityMatch, NAMESPACE_IU_LOCALIZATION, localeVariants); + IQuery<IInstallableUnit> iuQuery = ExpressionQuery.<IInstallableUnit> create(IInstallableUnitFragment.class, capabilityMatch, NAMESPACE_IU_LOCALIZATION, localeVariants); IQueryResult<IInstallableUnit> collected = fragmentSource.query(iuQuery, null); localeCollectorCache.put(locale, new SoftReference<IQueryResult<IInstallableUnit>>(collected)); return collected; @@ -246,7 +246,7 @@ public class TranslationSupport { IQueryResult<IInstallableUnit> localizationFragments = getLocalizationFragments(locales, locale); IExpressionFactory factory = ExpressionUtil.getFactory(); - IQuery<IInstallableUnit> iuQuery = new ExpressionQuery<IInstallableUnit>(IInstallableUnitFragment.class, factory.matchExpression(haveHostMatch, theUnit)); + IQuery<IInstallableUnit> iuQuery = ExpressionQuery.<IInstallableUnit> create(IInstallableUnitFragment.class, factory.matchExpression(haveHostMatch, theUnit)); IQueryResult<IInstallableUnit> collected = iuQuery.perform(localizationFragments.iterator()); if (!collected.isEmpty()) { String translation = null; diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ExpressionFactory.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ExpressionFactory.java index 01bee7640..42f89e663 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ExpressionFactory.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ExpressionFactory.java @@ -48,8 +48,18 @@ public class ExpressionFactory implements IExpressionFactory, IExpressionConstan return EvaluationContext.create(parameters, variables); } - public <T> IContextExpression<T> contextExpression(IExpression expr, Object... parameters) { - return new ContextExpression<T>((Expression) expr, parameters); + @SuppressWarnings("unchecked") + public <T> IContextExpression<T> contextExpression(IExpression expression, Object... parameters) { + + if (expression instanceof IContextExpression<?>) { + if (parameters.length > 0) + // Not good. + throw new IllegalArgumentException("IContextExpression cannot be parameterized (it already is)"); //$NON-NLS-1$ + return (IContextExpression<T>) expression; + } + if (expression instanceof IMatchExpression<?>) + throw new IllegalArgumentException("IMatchExpression cannot be turned into a context expression"); //$NON-NLS-1$ + return new ContextExpression<T>((Expression) expression, parameters); } public IFilterExpression filterExpression(IExpression expression) { @@ -108,7 +118,16 @@ public class ExpressionFactory implements IExpressionFactory, IExpressionConstan return new Matches((Expression) lhs, (Expression) rhs); } + @SuppressWarnings("unchecked") public <T> IMatchExpression<T> matchExpression(IExpression expression, Object... parameters) { + if (expression instanceof IMatchExpression<?>) { + if (parameters.length > 0) + // Not good. + throw new IllegalArgumentException("IMatchExpression cannot be parameterized (it already is)"); //$NON-NLS-1$ + return (IMatchExpression<T>) expression; + } + if (expression instanceof IContextExpression<?>) + throw new IllegalArgumentException("IContextExpression cannot be turned into a match expression"); //$NON-NLS-1$ return new MatchExpression<T>((Expression) expression, parameters); } diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/QueryResult.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/QueryResult.java index 16c4d8831..caf926142 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/QueryResult.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/QueryResult.java @@ -40,7 +40,7 @@ public class QueryResult<T> implements IQueryResult<T> { } @SuppressWarnings("unchecked") - public T[] toArray(Class<? extends T> clazz) { + public T[] toArray(Class<T> clazz) { Object provider = iterator.getIteratorProvider(); if (provider.getClass().isArray()) return (T[]) provider; diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/index/IndexProvider.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/index/IndexProvider.java new file mode 100644 index 000000000..c7899d646 --- /dev/null +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/index/IndexProvider.java @@ -0,0 +1,23 @@ +package org.eclipse.equinox.internal.p2.metadata.index; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.equinox.p2.metadata.index.IIndexProvider; +import org.eclipse.equinox.p2.metadata.index.IQueryWithIndex; +import org.eclipse.equinox.p2.query.*; + +public abstract class IndexProvider<T> implements IIndexProvider<T>, IQueryable<T> { + public static <Q> IQueryResult<Q> query(IIndexProvider<Q> indexProvider, IQuery<Q> query, IProgressMonitor monitor) { + if (monitor != null) + monitor.beginTask(null, IProgressMonitor.UNKNOWN); + IQueryResult<Q> result = (query instanceof IQueryWithIndex<?>) ? ((IQueryWithIndex<Q>) query).perform(indexProvider) : query.perform(indexProvider.everything()); + if (monitor != null) { + monitor.worked(1); + monitor.done(); + } + return result; + } + + public IQueryResult<T> query(IQuery<T> query, IProgressMonitor monitor) { + return query(this, query, monitor); + } +} diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IMatchQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/IMatchQuery.java index 87f80b90c..205b06ced 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IMatchQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/IMatchQuery.java @@ -7,7 +7,11 @@ * Contributors: * EclipseSource - initial API and implementation ******************************************************************************/ -package org.eclipse.equinox.p2.query; +package org.eclipse.equinox.internal.p2.metadata.query; + +import org.eclipse.equinox.p2.query.IQuery; + +import org.eclipse.equinox.p2.metadata.query.ExpressionQuery; /** * A query in which the elements can be evaluated by calling isMatch on. Each @@ -16,7 +20,7 @@ package org.eclipse.equinox.p2.query; * exclusive from all other calls. <P> * * @noimplement This interface is not intended to be implemented by clients. Clients - * creating custom queries must extend {@link MatchQuery} instead. + * creating custom queries must extend {@link ExpressionQuery} instead. * @since 2.0 */ public interface IMatchQuery<T> extends IQuery<T> { diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/MatchQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/MatchQuery.java index 1c860410d..d995bd6a7 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/MatchQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/MatchQuery.java @@ -8,10 +8,12 @@ * EclipseSource - initial API and implementation * IBM Corporation - ongoing development ******************************************************************************/ -package org.eclipse.equinox.p2.query; +package org.eclipse.equinox.internal.p2.metadata.query; import java.util.Iterator; import org.eclipse.equinox.p2.metadata.expression.IExpression; +import org.eclipse.equinox.p2.metadata.query.ExpressionQuery; +import org.eclipse.equinox.p2.query.*; /** * This class represents the superclass of most of p2's queries. Every element @@ -25,6 +27,7 @@ import org.eclipse.equinox.p2.metadata.expression.IExpression; * computation, to allow {@link IQueryable} implementations to optimize their * execution of the query. * @since 2.0 + * @deprecated Clients should use {@link ExpressionQuery} instead. */ public abstract class MatchQuery<T> implements IMatchQuery<T> { diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionContextQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionContextQuery.java index 186500089..413200e78 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionContextQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionContextQuery.java @@ -12,10 +12,13 @@ package org.eclipse.equinox.p2.metadata.query; import java.util.Iterator; import org.eclipse.equinox.internal.p2.metadata.expression.*; +import org.eclipse.equinox.internal.p2.metadata.query.IMatchQuery; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.expression.*; import org.eclipse.equinox.p2.metadata.index.IIndexProvider; import org.eclipse.equinox.p2.metadata.index.IQueryWithIndex; -import org.eclipse.equinox.p2.query.*; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; /** * A query that evaluates using an iterator as input and produces a new iterator. @@ -25,17 +28,29 @@ public class ExpressionContextQuery<T> implements IQueryWithIndex<T> { private final IContextExpression<T> expression; private final Class<? extends T> elementClass; - public ExpressionContextQuery(Class<? extends T> elementClass, IExpression expression, Object... parameters) { - this(elementClass, ExpressionUtil.getFactory().<T> contextExpression(expression, parameters)); + public static <Q> IQuery<Q> createQuery(Class<? extends Q> elementClass, IExpression expression, Object... parameters) { + return new ExpressionContextQuery<Q>(elementClass, expression, parameters); } - public ExpressionContextQuery(Class<? extends T> elementClass, IContextExpression<T> expression) { + public static <Q> IQuery<Q> createQuery(Class<? extends Q> matchingClass, String expression, Object... parameters) { + return new ExpressionContextQuery<Q>(matchingClass, expression, parameters); + } + + public static IQuery<IInstallableUnit> createQuery(IExpression expression, Object... parameters) { + return new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, expression, parameters); + } + + public static IQuery<IInstallableUnit> createQuery(String expression, Object... parameters) { + return new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, expression, parameters); + } + + protected ExpressionContextQuery(Class<? extends T> elementClass, IExpression expression, Object... parameters) { this.elementClass = elementClass; - this.expression = expression; + this.expression = ExpressionUtil.getFactory().<T> contextExpression(expression, parameters); } - public ExpressionContextQuery(Class<? extends T> matchingClass, String expression, Object... parameters) { - this(matchingClass, ExpressionUtil.getFactory().<T> contextExpression(ExpressionUtil.parseQuery(expression), parameters)); + protected ExpressionContextQuery(Class<? extends T> matchingClass, String expression, Object... parameters) { + this(matchingClass, ExpressionUtil.parseQuery(expression), parameters); } public Class<? extends T> getElementClass() { diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionQuery.java index 7d03ed0f0..3f4a56a9a 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionQuery.java @@ -14,7 +14,9 @@ import java.util.HashSet; import java.util.Iterator; import org.eclipse.equinox.internal.p2.metadata.expression.Expression; import org.eclipse.equinox.internal.p2.metadata.expression.ExpressionFactory; +import org.eclipse.equinox.internal.p2.metadata.query.IMatchQuery; import org.eclipse.equinox.p2.metadata.IArtifactKey; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.expression.*; import org.eclipse.equinox.p2.metadata.index.*; import org.eclipse.equinox.p2.query.*; @@ -36,18 +38,30 @@ public class ExpressionQuery<T> implements IMatchQuery<T>, IQueryWithIndex<T> { return ExpressionUtil.getFactory().matchExpression(ExpressionUtil.FALSE_EXPRESSION); } - public ExpressionQuery(Class<? extends T> matchingClass, IExpression expression, Object... parameters) { - this(matchingClass, ExpressionUtil.getFactory().<T> matchExpression(expression, parameters)); + public static <Q> IQuery<Q> create(Class<? extends Q> elementClass, IExpression expression, Object... parameters) { + return new ExpressionQuery<Q>(elementClass, expression, parameters); } - public ExpressionQuery(Class<? extends T> matchingClass, IMatchExpression<T> expression) { + public static <Q> IQuery<Q> create(Class<? extends Q> matchingClass, String expression, Object... parameters) { + return new ExpressionQuery<Q>(matchingClass, expression, parameters); + } + + public static IQuery<IInstallableUnit> create(IExpression expression, Object... parameters) { + return new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, expression, parameters); + } + + public static IQuery<IInstallableUnit> create(String expression, Object... parameters) { + return new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, expression, parameters); + } + + protected ExpressionQuery(Class<? extends T> matchingClass, IExpression expression, Object... parameters) { this.matchingClass = matchingClass; - this.expression = expression; - this.context = expression.createContext(); + this.expression = ExpressionUtil.getFactory().<T> matchExpression(expression, parameters); + this.context = this.expression.createContext(); } - public ExpressionQuery(Class<? extends T> matchingClass, String expression, Object... parameters) { - this(matchingClass, ExpressionUtil.getFactory().<T> matchExpression(ExpressionUtil.parse(expression), parameters)); + protected ExpressionQuery(Class<? extends T> matchingClass, String expression, Object... parameters) { + this(matchingClass, ExpressionUtil.parse(expression), parameters); } public IEvaluationContext getContext() { diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CollectionResult.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CollectionResult.java index fbba6a169..5cf4c951b 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CollectionResult.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CollectionResult.java @@ -37,7 +37,7 @@ public class CollectionResult<T> implements IQueryResult<T> { return collection.iterator(); } - public T[] toArray(Class<? extends T> clazz) { + public T[] toArray(Class<T> clazz) { int size = collection.size(); @SuppressWarnings("unchecked") T[] result = (T[]) Array.newInstance(clazz, size); diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/Collector.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/Collector.java index 1ef4a853f..fa7ada56f 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/Collector.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/Collector.java @@ -125,7 +125,7 @@ public class Collector<T> implements IQueryResult<T> { * @throws ArrayStoreException the runtime type of the specified array is * not a super-type of the runtime type of every collected object */ - public T[] toArray(Class<? extends T> clazz) { + public T[] toArray(Class<T> clazz) { int size = collected == null ? 0 : collected.size(); @SuppressWarnings("unchecked") T[] result = (T[]) Array.newInstance(clazz, size); diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQuery.java index 0b3e93a86..f8bc1ecd0 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQuery.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.equinox.p2.query; +import org.eclipse.equinox.internal.p2.metadata.query.IMatchQuery; + import org.eclipse.equinox.internal.p2.metadata.expression.ExpressionFactory; import org.eclipse.equinox.internal.p2.metadata.expression.Expression.VariableFinder; import org.eclipse.equinox.p2.metadata.expression.*; @@ -56,7 +58,7 @@ public abstract class CompoundQuery<T> { Class<? extends E> elementClass = (Class<E>) Object.class; if (idx == 0) - return new ExpressionQuery<E>(elementClass, ExpressionQuery.matchAll()); + return ExpressionQuery.<E> create(elementClass, ExpressionQuery.matchAll()); IExpression[] expressions = new IExpression[idx]; boolean justBooleans = true; @@ -91,7 +93,7 @@ public abstract class CompoundQuery<T> { if (justBooleans) { IExpression compound = and ? factory.and(expressions) : factory.or(expressions); - return new ExpressionQuery<E>(elementClass, compound); + return ExpressionQuery.<E> create(elementClass, compound); } if (!justContexts) { @@ -103,7 +105,7 @@ public abstract class CompoundQuery<T> { IExpression compound = expressions[0]; for (idx = 1; idx < expressions.length; ++idx) compound = and ? factory.intersect(compound, expressions[idx]) : factory.union(compound, expressions[idx]); - return new ExpressionContextQuery<E>(elementClass, compound); + return ExpressionContextQuery.<E> createQuery(elementClass, compound); } @SuppressWarnings("unchecked") diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQueryable.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQueryable.java index cb3952bf7..0d51d8ad8 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQueryable.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQueryable.java @@ -10,24 +10,25 @@ package org.eclipse.equinox.p2.query; import java.util.*; -import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.core.helpers.CollectionUtils; import org.eclipse.equinox.internal.p2.metadata.InstallableUnit; import org.eclipse.equinox.internal.p2.metadata.expression.CompoundIterator; import org.eclipse.equinox.internal.p2.metadata.index.CompoundIndex; +import org.eclipse.equinox.internal.p2.metadata.index.IndexProvider; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.KeyWithLocale; import org.eclipse.equinox.p2.metadata.expression.IEvaluationContext; import org.eclipse.equinox.p2.metadata.expression.IExpression; -import org.eclipse.equinox.p2.metadata.index.*; +import org.eclipse.equinox.p2.metadata.index.IIndex; +import org.eclipse.equinox.p2.metadata.index.IIndexProvider; /** * A queryable that holds a number of other IQueryables and provides * a mechanism for querying the entire set. * @since 2.0 */ -public class CompoundQueryable<T> implements IQueryable<T>, IIndexProvider<T> { +public class CompoundQueryable<T> extends IndexProvider<T> { static class PassThroughIndex<T> implements IIndex<T> { private final Iterator<T> iterator; @@ -80,17 +81,6 @@ public class CompoundQueryable<T> implements IQueryable<T>, IIndexProvider<T> { this(new IQueryable[] {query1, query2, query3}); } - public IQueryResult<T> query(IQuery<T> query, IProgressMonitor monitor) { - if (monitor != null) - monitor.beginTask(null, IProgressMonitor.UNKNOWN); - IQueryResult<T> result = (query instanceof IQueryWithIndex<?>) ? ((IQueryWithIndex<T>) query).perform(this) : query.perform(everything()); - if (monitor != null) { - monitor.worked(1); - monitor.done(); - } - return result; - } - public IIndex<T> getIndex(String memberName) { // Check that at least one of the queryable can present an index // for the given member. diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IQueryResult.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IQueryResult.java index 7732f9bdc..8484de575 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IQueryResult.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IQueryResult.java @@ -40,7 +40,7 @@ public interface IQueryResult<T> extends IQueryable<T> { * @throws ArrayStoreException the runtime type of the specified array is * not a super-type of the runtime type of every collected object */ - public T[] toArray(Class<? extends T> clazz); + public T[] toArray(Class<T> clazz); /** * Creates a new Set copy with the contents of this query result. The diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/PipedQuery.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/PipedQuery.java index 83a939cac..bc0b9f213 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/PipedQuery.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/PipedQuery.java @@ -58,6 +58,6 @@ public abstract class PipedQuery<T> { IExpression pipe = factory.pipe(expressions); VariableFinder finder = new VariableFinder(ExpressionFactory.EVERYTHING); pipe.accept(finder); - return finder.isFound() ? new ExpressionContextQuery<E>((Class<E>) Object.class, pipe) : new ExpressionQuery<E>((Class<E>) Object.class, pipe); + return finder.isFound() ? ExpressionContextQuery.<E> createQuery((Class<E>) Object.class, pipe) : ExpressionQuery.<E> create((Class<E>) Object.class, pipe); } } diff --git a/bundles/org.eclipse.equinox.p2.operations/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.operations/META-INF/MANIFEST.MF index 267798c71..ed7378337 100644 --- a/bundles/org.eclipse.equinox.p2.operations/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.operations/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5, Bundle-ActivationPolicy: lazy Import-Package: org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.metadata, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.repository.helpers, org.eclipse.equinox.internal.provisional.configurator, org.eclipse.equinox.internal.provisional.p2.core, diff --git a/bundles/org.eclipse.equinox.p2.ql/.settings/.api_filters b/bundles/org.eclipse.equinox.p2.ql/.settings/.api_filters index dfbf53e91..0fa1636b7 100644 --- a/bundles/org.eclipse.equinox.p2.ql/.settings/.api_filters +++ b/bundles/org.eclipse.equinox.p2.ql/.settings/.api_filters @@ -9,20 +9,4 @@ </message_arguments> </filter> </resource> - <resource path="src/org/eclipse/equinox/p2/ql/QLMatchQuery.java" type="org.eclipse.equinox.p2.ql.QLMatchQuery"> - <filter id="574619656"> - <message_arguments> - <message_argument value="IMatchQuery<T>"/> - <message_argument value="QLMatchQuery<T>"/> - </message_arguments> - </filter> - </resource> - <resource path="src/org/eclipse/equinox/p2/ql/QLQuery.java" type="org.eclipse.equinox.p2.ql.QLQuery"> - <filter id="574619656"> - <message_arguments> - <message_argument value="IQuery<T>"/> - <message_argument value="QLQuery<T>"/> - </message_arguments> - </filter> - </resource> </component> diff --git a/bundles/org.eclipse.equinox.p2.ql/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ql/META-INF/MANIFEST.MF index 6826d41b8..0b7a3fc7a 100644 --- a/bundles/org.eclipse.equinox.p2.ql/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.ql/META-INF/MANIFEST.MF @@ -20,6 +20,7 @@ Import-Package: org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.metadata.expression, org.eclipse.equinox.internal.p2.metadata.expression.parser, org.eclipse.equinox.internal.p2.metadata.index, + org.eclipse.equinox.internal.p2.metadata.query, org.eclipse.equinox.internal.provisional.p2.metadata, org.eclipse.equinox.p2.core;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.engine;version="[2.0.0,3.0.0)", diff --git a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/QLFactory.java b/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/QLFactory.java index 29ce73ad2..cf075a44a 100644 --- a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/QLFactory.java +++ b/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/QLFactory.java @@ -55,10 +55,6 @@ public class QLFactory extends ExpressionFactory implements IQLFactory, IQLConst return new Condition((Expression) test, (Expression) ifTrue, (Expression) ifFalse); } - public <T> org.eclipse.equinox.p2.metadata.expression.IContextExpression<T> contextExpression(IExpression expr, Object... parameters) { - return new ContextExpression<T>((Expression) expr, parameters); - } - public IExpression first(IExpression collection, IExpression lambda) { return new First((Expression) collection, (LambdaExpression) lambda); } diff --git a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/WrappedIQuery.java b/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/WrappedIQuery.java index ccad2e0e8..b899da5bc 100644 --- a/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/WrappedIQuery.java +++ b/bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/WrappedIQuery.java @@ -12,8 +12,8 @@ package org.eclipse.equinox.internal.p2.ql.expression; import java.util.Iterator; import org.eclipse.equinox.internal.p2.metadata.expression.*; +import org.eclipse.equinox.internal.p2.metadata.query.IMatchQuery; import org.eclipse.equinox.p2.metadata.expression.IEvaluationContext; -import org.eclipse.equinox.p2.query.IMatchQuery; import org.eclipse.equinox.p2.query.IQuery; public final class WrappedIQuery extends Function implements IQLConstants { diff --git a/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF index f2974a060..fd56349be 100644 --- a/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF @@ -38,6 +38,8 @@ Import-Package: javax.xml.parsers, org.eclipse.core.runtime.preferences;version="3.2.0", org.eclipse.equinox.internal.p2.core, org.eclipse.equinox.internal.p2.core.helpers, + org.eclipse.equinox.internal.p2.metadata, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.repository.helpers, org.eclipse.equinox.internal.provisional.p2.core, org.eclipse.equinox.internal.provisional.p2.core.eventbus, @@ -45,6 +47,7 @@ Import-Package: javax.xml.parsers, org.eclipse.equinox.p2.core;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.core.spi;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.metadata;version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.metadata.index;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.metadata.expression;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.metadata.query;version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.query;version="[2.0.0,3.0.0)", diff --git a/bundles/org.eclipse.equinox.p2.tests.ui/All p2 UI tests.launch b/bundles/org.eclipse.equinox.p2.tests.ui/All p2 UI tests.launch index 0d7edbbce..6991aa710 100644 --- a/bundles/org.eclipse.equinox.p2.tests.ui/All p2 UI tests.launch +++ b/bundles/org.eclipse.equinox.p2.tests.ui/All p2 UI tests.launch @@ -61,8 +61,8 @@ <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.sdk.ide"/> <booleanAttribute key="run_in_ui_thread" value="true"/> -<stringAttribute key="selected_target_plugins" value="org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.equinox.common@2:true,org.eclipse.update.scheduler@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.pde@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.help.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.ecf@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.core.boot@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.core.variables@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.externaltools@default:default,org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.debug.core@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.pde.ua.ui@default:default,org.eclipse.update.core@default:default,org.eclipse.sdk@default:default,org.eclipse.ant.core@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.update.configurator@3:true,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.rcp@default:default,org.apache.commons.codec@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.jdt.doc.user@default:default,javax.servlet@default:default,org.mortbay.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.mortbay.jetty.server@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.platform@default:default,org.eclipse.help.appserver@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.core.expressions@default:default,org.eclipse.help@default:default,org.eclipse.swt@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.core@default:default,org.eclipse.core.resources@default:default,org.eclipse.text@default:default,org.junit*3.8.2.v20090203-1005@default:default,org.eclipse.jface@default:default,org.eclipse.equinox.app@default:default,org.eclipse.team.core@default:default,org.eclipse.pde.ui@default:default,org.eclipse.ant.ui@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.cvs@default:default,org.eclipse.ui.forms@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.net@default:default,org.eclipse.core.jobs@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,javax.servlet.jsp@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.update.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.pde.runtime@default:default,org.sat4j.pb@default:default,org.objectweb.asm@default:default,org.eclipse.jdt.junit.core@default:default,org.apache.commons.httpclient@default:default,org.eclipse.ui.console@default:default,org.eclipse.core.databinding@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.core.contenttype@default:default,org.sat4j.core@default:default,org.apache.lucene.analysis@default:default,org.junit4@default:default,org.eclipse.ui.net@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.pde.ua.core@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.ant.launching@default:default,com.jcraft.jsch@default:default,org.eclipse.team.ui@default:default,org.hamcrest.core@default:default,org.eclipse.help.base@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.equinox.event@default:default,org.eclipse.help.webapp@default:default,org.apache.commons.logging@default:default,org.eclipse.ui.cheatsheets@default:default,org.apache.lucene@default:default,org.eclipse.pde.core@default:default,org.eclipse.ui.ide@default:default,org.eclipse.core.runtime.compatibility@default:default,org.apache.jasper@default:default,org.eclipse.core.commands@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.osgi@-1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.editors@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.jface.text@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.browser@default:default,org.eclipse.pde.build@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.apache.commons.el@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.compare@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.equinox.http.registry@default:default,org.apache.ant@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.team.cvs.core@default:default,org.junit*4.8.1.v4_8_1_v20100114-1600@default:default,org.eclipse.debug.ui@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.equinox.security@default:default,com.ibm.icu@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.search@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ui@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.jdt.debug.ui@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.sat4j.core@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.artifact.processors@default:default,org.eclipse.equinox.p2.publisher@default:default,org.sat4j.pb@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,ie.wombat.jbdiff.test@default:default,org.eclipse.equinox.p2.tests.verifier@default:default,org.eclipse.test.performance@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.artifact.optimizers@default:default,ie.wombat.jbdiff@default:default,org.eclipse.equinox.p2.sar@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.tests.ui@default:default,org.eclipse.equinox.frameworkadmin.test@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.core.tests.harness@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.tests@default:default,org.eclipse.equinox.p2.installer@default:default,org.easymock@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.eclipse.ui.net@default:default,org.sat4j.core@default:default,org.eclipse.update.core@default:default,org.eclipse.jface@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.ecf.identity@default:default,org.mortbay.jetty.server@default:default,org.eclipse.pde.core@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.equinox.util@default:default,org.apache.lucene@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.apache.lucene.analysis@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.junit4@default:default,org.eclipse.swt@default:default,org.eclipse.platform@default:default,org.eclipse.jdt@default:default,org.eclipse.sdk@default:default,org.apache.commons.el@default:default,org.sat4j.pb@default:default,org.eclipse.ui.views@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.help.webapp@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.util@default:default,org.hamcrest.core@default:default,org.eclipse.compare@default:default,org.eclipse.cvs@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.ide.application@default:default,org.apache.jasper@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.update.ui@default:default,org.eclipse.jdt.junit4.runtime@default:default,javax.servlet.jsp@default:default,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.build@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.osgi@-1:true,org.eclipse.team.cvs.ui@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.apache.commons.codec@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.equinox.ds@1:true,org.junit*4.8.1.v4_8_1_v20100114-1600@default:default,javax.servlet@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.core.boot@default:default,org.eclipse.jdt.ui@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false,org.eclipse.pde.ua.ui@default:default,org.eclipse.core.variables@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.ide@default:default,org.eclipse.ant.launching@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.pde.ui.templates@default:default,com.ibm.icu@default:default,org.eclipse.core.jobs@default:default,org.eclipse.team.ui@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jface.text@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.runtime@default:true,org.eclipse.jdt.debug@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.ant.ui@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.net@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.junit@default:default,org.eclipse.ui.editors@default:default,org.eclipse.rcp@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.debug.ui@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.debug.core@default:default,org.eclipse.pde@default:default,org.junit*3.8.2.v20090203-1005@default:default,org.eclipse.core.resources@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.core.filesystem@default:default,org.mortbay.jetty.util@default:default,org.eclipse.pde.launching@default:default,org.eclipse.text@default:default,org.eclipse.ui.intro@default:default,org.eclipse.equinox.app@default:default,org.apache.commons.httpclient@default:default,org.eclipse.jdt.core@default:default,org.eclipse.equinox.concurrent@default:default,org.apache.ant@default:default,org.eclipse.ecf@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.objectweb.asm@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.help.base@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.team.core@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.equinox.common@2:true,org.eclipse.search@default:default,org.eclipse.help.appserver@default:default,org.eclipse.ui.console@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.security@default:default,org.apache.commons.logging@default:default,org.eclipse.pde.ui@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.event@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.ui@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.update.scheduler@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.core.tests.harness@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.easymock@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,ie.wombat.jbdiff@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.frameworkadmin.test@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.tests@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.p2.tests.ui@default:default,org.eclipse.equinox.p2.artifact.optimizers@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.installer@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.pde.build.tests@default:default,org.eclipse.test.performance@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.p2.touchpoint.natives@default:default,ie.wombat.jbdiff.test@default:default,org.eclipse.equinox.p2.core@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.pde.build@default:default,org.eclipse.equinox.p2.exemplarysetup@default:default,org.eclipse.equinox.p2.sar@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.artifact.processors@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.tests.verifier@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> diff --git a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF index 460dc68b2..9a23b6596 100644 --- a/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF @@ -63,6 +63,7 @@ Import-Package: javax.xml.parsers, org.eclipse.equinox.internal.p2.jarprocessor.verifier, org.eclipse.equinox.internal.p2.metadata, org.eclipse.equinox.internal.p2.metadata.expression, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.metadata.query, org.eclipse.equinox.internal.p2.metadata.repository, org.eclipse.equinox.internal.p2.metadata.repository.io, diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java index 103f8a968..38de5985f 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java @@ -9,6 +9,10 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + +import org.eclipse.equinox.internal.p2.metadata.query.IMatchQuery; + import java.util.*; import junit.framework.TestCase; import org.eclipse.equinox.p2.query.*; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CollectorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CollectorTest.java index 8b2760129..5a24e5348 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CollectorTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CollectorTest.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.util.*; import org.eclipse.equinox.p2.query.*; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java index 0a2154e82..9a52da388 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java @@ -9,6 +9,8 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.util.Arrays; import java.util.Iterator; import junit.framework.TestCase; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java index e1dabb29a..c6977d762 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.util.Arrays; import java.util.List; import junit.framework.TestCase; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/CompositeMetadataRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/CompositeMetadataRepositoryTest.java index 6273dfe8e..165583051 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/CompositeMetadataRepositoryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/CompositeMetadataRepositoryTest.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata.repository; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.io.File; import java.net.URI; import java.net.URISyntaxException; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/SPIMetadataRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/SPIMetadataRepositoryTest.java index 5c17f7b4b..5bb652fff 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/SPIMetadataRepositoryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/SPIMetadataRepositoryTest.java @@ -10,6 +10,8 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata.repository; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.io.File; import java.io.UnsupportedEncodingException; import java.math.BigInteger; @@ -29,7 +31,6 @@ import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.metadata.expression.ExpressionUtil; import org.eclipse.equinox.p2.metadata.expression.IMatchExpression; import org.eclipse.equinox.p2.query.IQueryResult; -import org.eclipse.equinox.p2.query.MatchQuery; import org.eclipse.equinox.p2.repository.IRepository; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NonMinimalState.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NonMinimalState.java index e2b30a8f0..528f3b5f3 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NonMinimalState.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NonMinimalState.java @@ -10,8 +10,6 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.planner; -import org.eclipse.equinox.p2.planner.IPlanner; - import java.io.File; import java.net.URI; import java.util.*; @@ -23,6 +21,7 @@ import org.eclipse.equinox.p2.engine.query.IUProfilePropertyQuery; import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.metadata.query.ExpressionQuery; import org.eclipse.equinox.p2.metadata.query.InstallableUnitQuery; +import org.eclipse.equinox.p2.planner.IPlanner; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; @@ -99,7 +98,7 @@ public class NonMinimalState extends AbstractProvisioningTest { } private boolean expandRequirement(IInstallableUnit iu, IRequirement req) { - IQueryResult matches = profile.query(new ExpressionQuery(IInstallableUnit.class, req.getMatches()), null); + IQueryResult matches = profile.query(ExpressionQuery.create(req.getMatches()), null); for (Iterator iterator = matches.iterator(); iterator.hasNext();) { IInstallableUnit match = (IInstallableUnit) iterator.next(); if (match.getId().equals(searchedId)) diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/ProductActionWithAdviceFileTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/ProductActionWithAdviceFileTest.java index 169651e30..24c69bb56 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/ProductActionWithAdviceFileTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/ProductActionWithAdviceFileTest.java @@ -10,6 +10,8 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.publisher.actions; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.io.File; import java.net.URI; import java.util.*; @@ -24,7 +26,6 @@ import org.eclipse.equinox.p2.publisher.PublisherInfo; import org.eclipse.equinox.p2.publisher.actions.QueryableFilterAdvice; import org.eclipse.equinox.p2.publisher.eclipse.ProductAction; import org.eclipse.equinox.p2.query.IQueryResult; -import org.eclipse.equinox.p2.query.MatchQuery; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; import org.eclipse.equinox.p2.tests.TestData; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/RootIUActionTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/RootIUActionTest.java index 446c9d6e3..f90660506 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/RootIUActionTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/RootIUActionTest.java @@ -12,6 +12,8 @@ package org.eclipse.equinox.p2.tests.publisher.actions; import static org.easymock.EasyMock.expect; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; + import java.util.*; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; @@ -20,7 +22,6 @@ import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.publisher.IPublisherResult; import org.eclipse.equinox.p2.publisher.actions.*; import org.eclipse.equinox.p2.query.IQuery; -import org.eclipse.equinox.p2.query.MatchQuery; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.tests.TestMetadataRepository; diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/EvaluatorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/EvaluatorTest.java index 868ad38a6..a7f9e1da8 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/EvaluatorTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/EvaluatorTest.java @@ -16,6 +16,7 @@ import java.util.*; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.director.QueryableArray; import org.eclipse.equinox.internal.p2.metadata.IRequiredCapability; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.metadata.expression.*; @@ -24,8 +25,8 @@ import org.eclipse.equinox.p2.publisher.PublisherInfo; import org.eclipse.equinox.p2.publisher.PublisherResult; import org.eclipse.equinox.p2.publisher.eclipse.BundlesAction; import org.eclipse.equinox.p2.ql.IQLFactory; +import org.eclipse.equinox.p2.query.IQuery; import org.eclipse.equinox.p2.query.IQueryResult; -import org.eclipse.equinox.p2.query.MatchQuery; import org.eclipse.equinox.p2.repository.artifact.*; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; @@ -71,27 +72,27 @@ public class EvaluatorTest extends AbstractProvisioningTest { public void testLatest() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/multipleversions1"); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, "latest(x | x.id == $0)", "test.bundle"), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionContextQuery.createQuery("latest(x | x.id == $0)", "test.bundle"), new NullProgressMonitor()); assertTrue(queryResultSize(result) == 1); } public void testRange() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/multipleversions1"); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, "version ~= $0", new VersionRange("2.0.0")), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create("version ~= $0", new VersionRange("2.0.0")), new NullProgressMonitor()); assertEquals(queryResultSize(result), 2); } public void testProperty() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/multipleversions1"); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, "properties.exists(p | boolean(p.value))"), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create("properties.exists(p | boolean(p.value))"), new NullProgressMonitor()); assertEquals(queryResultSize(result), 3); - result = repo.query(new ExpressionQuery(IInstallableUnit.class, "boolean(properties['org.eclipse.equinox.p2.type.group'])"), new NullProgressMonitor()); + result = repo.query(ExpressionQuery.create("boolean(properties['org.eclipse.equinox.p2.type.group'])"), new NullProgressMonitor()); assertEquals(queryResultSize(result), 3); Filter filter = TestActivator.context.createFilter("(org.eclipse.equinox.p2.type.group=true)"); - result = repo.query(new ExpressionQuery(IInstallableUnit.class, "properties ~= $0", filter), new NullProgressMonitor()); + result = repo.query(ExpressionQuery.create("properties ~= $0", filter), new NullProgressMonitor()); assertEquals(queryResultSize(result), 3); } @@ -119,7 +120,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { // Create the query IContextExpression<IInstallableUnit> e3 = factory.contextExpression(latest, "test.bundle", "org.eclipse.equinox.p2.type.group", "true"); IMetadataRepository repo = getMDR("/testData/metadataRepo/multipleversions1"); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, e3), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionContextQuery.createQuery(e3), new NullProgressMonitor()); assertEquals(queryResultSize(result), 1); } @@ -131,29 +132,29 @@ public class EvaluatorTest extends AbstractProvisioningTest { applicability[1][1] = MetadataFactory.createRequiredCapability("org.eclipse.equinox.p2.flavor", "tooling", null, null, false, false); IMetadataRepository repo = getMDR("/testData/metadataRepo/wsdlTestRepo"); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, "$0.exists(rcs | rcs.all(rc | this ~= rc))", (Object) applicability), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create("$0.exists(rcs | rcs.all(rc | this ~= rc))", (Object) applicability), new NullProgressMonitor()); assertEquals(queryResultSize(result), 3); } public void testPattern() throws Exception { IProvidedCapability pc = MetadataFactory.createProvidedCapability("org.eclipse.equinox.p2.eclipse.type", "source", null); IMetadataRepository repo = getMDR("/testData/metadataRepo/wsdlTestRepo"); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, "id ~= /tooling.*.default/", pc), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create("id ~= /tooling.*.default/", pc), new NullProgressMonitor()); assertEquals(queryResultSize(result), 3); } public void testLimit() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/wsdlTestRepo"); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, "select(x | x.id ~= /tooling.*/).limit(1)"), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionContextQuery.createQuery("select(x | x.id ~= /tooling.*/).limit(1)"), new NullProgressMonitor()); assertEquals(queryResultSize(result), 1); - result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, "select(x | x.id ~= /tooling.*/).limit($0)", new Integer(2)), new NullProgressMonitor()); + result = repo.query(ExpressionContextQuery.createQuery("select(x | x.id ~= /tooling.*/).limit($0)", new Integer(2)), new NullProgressMonitor()); assertEquals(queryResultSize(result), 2); } public void testNot() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/wsdlTestRepo"); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, "!(id ~= /tooling.*/)"), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create("!(id ~= /tooling.*/)"), new NullProgressMonitor()); assertEquals(queryResultSize(result), 4); } @@ -164,13 +165,13 @@ public class EvaluatorTest extends AbstractProvisioningTest { assertNotNull(artifactManager); IArtifactRepository repo = artifactManager.loadRepository(artifactRepo, new NullProgressMonitor()); - IQueryResult result = repo.query(new ExpressionQuery(IArtifactKey.class, "classifier ~= /*/"), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionQuery.create(IArtifactKey.class, "classifier ~= /*/"), new NullProgressMonitor()); assertTrue(queryResultSize(result) > 1); Iterator itor = result.iterator(); while (itor.hasNext()) assertTrue(itor.next() instanceof IArtifactKey); - result = repo.descriptorQueryable().query(new ExpressionQuery(IArtifactDescriptor.class, "artifactKey.classifier ~= /*/"), new NullProgressMonitor()); + result = repo.descriptorQueryable().query(ExpressionQuery.create(IArtifactDescriptor.class, "artifactKey.classifier ~= /*/"), new NullProgressMonitor()); assertTrue(queryResultSize(result) > 1); itor = result.iterator(); while (itor.hasNext()) @@ -179,7 +180,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { public void testClassConstructor() throws Exception { IMetadataRepository repo = getMDR("/testData/metadataRepo/wsdlTestRepo"); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, // + IQueryResult result = repo.query(ExpressionContextQuery.createQuery(// "select(x | x ~= class('org.eclipse.equinox.p2.metadata.IInstallableUnitFragment'))"), new NullProgressMonitor()); assertEquals(queryResultSize(result), 4); repo = getMDR("/testData/galileoM7"); @@ -187,7 +188,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { public void testTraverse() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, // + IQueryResult result = repo.query(ExpressionContextQuery.createQuery(// "select(x | x.id == $0 && x.version == $1).traverse(parent | parent.requiredCapabilities.collect(rc | select(iu | iu ~= rc)).flatten())", // "org.eclipse.sdk.feature.group", Version.create("3.5.0.v20090423-7Q7bA7DPR-wM38__Q4iRsmx9z0KOjbpx3AbyvXd-Uq7J2")), new NullProgressMonitor()); assertEquals(queryResultSize(result), 463); @@ -204,9 +205,9 @@ public class EvaluatorTest extends AbstractProvisioningTest { "select(x | x.id == $0 && x.version == $1).traverse(parent |" + // "parent.requiredCapabilities.select(rc | rc.filter == null || $2 ~= rc.filter).collect(rc | select(iu | iu ~= rc)).flatten())"), "org.eclipse.sdk.feature.group", Version.create("3.5.0.v20090423-7Q7bA7DPR-wM38__Q4iRsmx9z0KOjbpx3AbyvXd-Uq7J2"), env); - ExpressionContextQuery query = new ExpressionContextQuery(IInstallableUnit.class, expr); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery(expr); IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQueryResult result = repo.query(query, new NullProgressMonitor()); + IQueryResult<IInstallableUnit> result = repo.query(query, new NullProgressMonitor()); assertEquals(queryResultSize(result), 411); } @@ -230,14 +231,14 @@ public class EvaluatorTest extends AbstractProvisioningTest { Version.create("1.1.1.v20090114-0940-7d8B0FXwkKwFanGNHeHHq8ymBgZ"), // env); - ExpressionContextQuery query = new ExpressionContextQuery(IInstallableUnit.class, expr); - IQueryResult result = repo.query(query, new NullProgressMonitor()); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery(expr); + IQueryResult<IInstallableUnit> result = repo.query(query, new NullProgressMonitor()); assertEquals(queryResultSize(result), 184); } public void testMatchQueryInjectionInPredicate() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IMatchExpression expr = factory.matchExpression(parser.parse("iquery($0) || iquery($1)"), new MatchQuery() { + IMatchExpression<IInstallableUnit> expr = factory.matchExpression(parser.parse("iquery($0) || iquery($1)"), new MatchQuery() { @Override public boolean isMatch(Object candidate) { return "true".equals(((IInstallableUnit) candidate).getProperty("org.eclipse.equinox.p2.type.category")); @@ -248,7 +249,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { return "true".equals(((IInstallableUnit) candidate).getProperty("org.eclipse.equinox.p2.type.group")); } }); - IQueryResult result = repo.query(new ExpressionQuery(IInstallableUnit.class, expr), new NullProgressMonitor()); + IQueryResult<IInstallableUnit> result = repo.query(ExpressionQuery.create(expr), new NullProgressMonitor()); assertEquals(queryResultSize(result), 497); } @@ -287,10 +288,10 @@ public class EvaluatorTest extends AbstractProvisioningTest { IContextExpression e3 = factory.contextExpression(((IQLFactory) factory).select(everything, lambda)); IContextExpression<Object> contextExpression = factory.contextExpression(parser.parseQuery(e3.toString()), "ian bull"); - ExpressionContextQuery ExpressionContextQuery = new ExpressionContextQuery(IInstallableUnit.class, contextExpression); + IQuery<Object> query = ExpressionContextQuery.createQuery(Object.class, contextExpression); System.out.println(e3); - IQueryResult queryResult = ExpressionContextQuery.perform(items.iterator()); + IQueryResult<Object> queryResult = query.perform(items.iterator()); Iterator iterator = queryResult.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); @@ -311,7 +312,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { return "true".equals(((IInstallableUnit) candidate).getProperty("org.eclipse.equinox.p2.type.group")); } }); - IQueryResult result = repo.query(new ExpressionContextQuery(IInstallableUnit.class, expr), new NullProgressMonitor()); + IQueryResult result = repo.query(ExpressionContextQuery.createQuery(expr), new NullProgressMonitor()); assertEquals(queryResultSize(result), 497); } @@ -338,7 +339,7 @@ public class EvaluatorTest extends AbstractProvisioningTest { QueryableArray queryableArray = new QueryableArray((IInstallableUnit[]) ius.toArray(new IInstallableUnit[ius.size()])); IQueryResult result = queryableArray.query(new InstallableUnitQuery("foo"), null); assertEquals("2.1", 1, queryResultSize(result)); - ExpressionQuery lq = new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, "translatedProperties[$0] ~= /German*/", new KeyWithLocale("org.eclipse.equinox.p2.name", Locale.GERMAN)); + IQuery<IInstallableUnit> lq = ExpressionQuery.create("translatedProperties[$0] ~= /German*/", new KeyWithLocale("org.eclipse.equinox.p2.name", Locale.GERMAN)); Iterator itr = queryableArray.query(lq, new NullProgressMonitor()).iterator(); assertTrue(itr.hasNext()); assertEquals("2.8", "foo", ((IInstallableUnit) itr.next()).getId()); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/PerformanceTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/PerformanceTest.java index 214e63ea8..2fba7d36f 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/PerformanceTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/PerformanceTest.java @@ -16,6 +16,7 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.director.QueryableArray; import org.eclipse.equinox.internal.p2.director.Slicer; import org.eclipse.equinox.internal.p2.metadata.query.IUPropertyQuery; +import org.eclipse.equinox.internal.p2.metadata.query.MatchQuery; import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.metadata.query.*; @@ -30,9 +31,9 @@ public class PerformanceTest extends AbstractProvisioningTest { IMetadataRepository repo = getMDR("/testData/galileoM7"); IRequirement capability = MetadataFactory.createRequiredCapability("org.eclipse.equinox.p2.eclipse.type", "feature", new VersionRange("[1.0.0,2.0.0)"), null, false, false); - ExpressionQuery predicateQuery = new ExpressionQuery(IInstallableUnit.class, "this ~= $0", capability); - IQuery capabilityQuery = new ExpressionQuery(IInstallableUnit.class, capability.getMatches()); - IQueryResult result; + IQuery<IInstallableUnit> predicateQuery = ExpressionQuery.create("this ~= $0", capability); + IQuery<IInstallableUnit> capabilityQuery = ExpressionQuery.create(capability.getMatches()); + IQueryResult<IInstallableUnit> result; long tradQueryMS = 0; long exprQueryMS = 0; @@ -61,8 +62,8 @@ public class PerformanceTest extends AbstractProvisioningTest { IMetadataRepository repo = getMDR("/testData/galileoM7"); IUPropertyQuery propertyQuery = new IUPropertyQuery("df_LT.providerName", "Eclipse.org"); - ExpressionQuery predicateQuery = new ExpressionQuery(IInstallableUnit.class, "properties[$0] == $1", "df_LT.providerName", "Eclipse.org"); - IQueryResult result; + IQuery<IInstallableUnit> predicateQuery = ExpressionQuery.create("properties[$0] == $1", "df_LT.providerName", "Eclipse.org"); + IQueryResult<IInstallableUnit> result; long tradQueryMS = 0; long exprQueryMS = 0; @@ -93,12 +94,12 @@ public class PerformanceTest extends AbstractProvisioningTest { env.put("osgi.arch", "x86"); IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQueryResult r = repo.query(new InstallableUnitQuery("org.eclipse.sdk.feature.group", Version.create("3.5.0.v20090423-7Q7bA7DPR-wM38__Q4iRsmx9z0KOjbpx3AbyvXd-Uq7J2")), new NullProgressMonitor()); + IQueryResult<IInstallableUnit> r = repo.query(new InstallableUnitQuery("org.eclipse.sdk.feature.group", Version.create("3.5.0.v20090423-7Q7bA7DPR-wM38__Q4iRsmx9z0KOjbpx3AbyvXd-Uq7J2")), new NullProgressMonitor()); Iterator itor = r.iterator(); assertTrue(itor.hasNext()); IInstallableUnit[] roots = new IInstallableUnit[] {(IInstallableUnit) itor.next()}; - IQuery query = new ExpressionContextQuery(IInstallableUnit.class, "" + // + IQuery query = ExpressionContextQuery.createQuery( // "$0.traverse(set(), _, { cache, parent | parent.requiredCapabilities.unique(cache).select(rc | rc.filter == null || $1 ~= rc.filter).collect(rc | everything.select(iu | iu ~= rc)).flatten()})", roots, env); long sliceTime = 0; @@ -140,10 +141,10 @@ public class PerformanceTest extends AbstractProvisioningTest { } private IInstallableUnit[] gatherAvailableInstallableUnits(IQueryable queryable) { - ArrayList list = new ArrayList(); - IQueryResult matches = queryable.query(InstallableUnitQuery.ANY, null); - for (Iterator it = matches.iterator(); it.hasNext();) + ArrayList<IInstallableUnit> list = new ArrayList<IInstallableUnit>(); + IQueryResult<IInstallableUnit> matches = queryable.query(InstallableUnitQuery.ANY, null); + for (Iterator<IInstallableUnit> it = matches.iterator(); it.hasNext();) list.add(it.next()); - return (IInstallableUnit[]) list.toArray(new IInstallableUnit[list.size()]); + return list.toArray(new IInstallableUnit[list.size()]); } } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestIndexes.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestIndexes.java index 171cc3a9f..a17929afd 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestIndexes.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestIndexes.java @@ -26,28 +26,28 @@ public class TestIndexes extends AbstractProvisioningTest { public void testIdIndexSimple() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQuery<IInstallableUnit> query = new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, "select(x | x.id == $0)", "org.eclipse.sdk.feature.group"); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery("select(x | x.id == $0)", "org.eclipse.sdk.feature.group"); IQueryResult<IInstallableUnit> result = repo.query(query, getMonitor()); assertEquals(queryResultSize(result), 1); } public void testIdIndexWithOR() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQuery<IInstallableUnit> query = new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, "select(x | x.id == $0 || x.id == $1)", "org.eclipse.sdk.feature.group", "org.eclipse.sdk.feature.jar"); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery("select(x | x.id == $0 || x.id == $1)", "org.eclipse.sdk.feature.group", "org.eclipse.sdk.feature.jar"); IQueryResult<IInstallableUnit> result = repo.query(query, getMonitor()); assertEquals(queryResultSize(result), 2); } public void testIdIndexWithNot() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQuery<IInstallableUnit> query = new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, "select(x | x.id == $0 || x.id != $1)", "org.eclipse.sdk.feature.group", "org.eclipse.sdk.feature.jar"); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery("select(x | x.id == $0 || x.id != $1)", "org.eclipse.sdk.feature.group", "org.eclipse.sdk.feature.jar"); IQueryResult<IInstallableUnit> result = repo.query(query, getMonitor()); assertEquals(queryResultSize(result), 3464); } public void testCapabilityIndexSimple() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); - IQuery<IInstallableUnit> query = new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, "select(x | x.providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && pc.name == $0))", "org.eclipse.core.resources"); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery("select(x | x.providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && pc.name == $0))", "org.eclipse.core.resources"); IQueryResult<IInstallableUnit> result = repo.query(query, getMonitor()); assertEquals(queryResultSize(result), 1); } @@ -55,7 +55,7 @@ public class TestIndexes extends AbstractProvisioningTest { public void testCapabilityIndexMatches() throws Exception { IMetadataRepository repo = getMDR("/testData/galileoM7"); IRequirement requirement = MetadataFactory.createRequiredCapability("org.eclipse.equinox.p2.iu", "org.eclipse.core.resources", null, null, 1, 2, true); - IQuery<IInstallableUnit> query = new ExpressionContextQuery<IInstallableUnit>(IInstallableUnit.class, "select(x | x ~= $0)", requirement); + IQuery<IInstallableUnit> query = ExpressionContextQuery.createQuery("select(x | x ~= $0)", requirement); IQueryResult<IInstallableUnit> result = repo.query(query, getMonitor()); assertEquals(queryResultSize(result), 1); } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestQueryReimplementation.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestQueryReimplementation.java index 6d7df7f75..0fb8a55ad 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestQueryReimplementation.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestQueryReimplementation.java @@ -14,6 +14,7 @@ import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.*; import org.eclipse.equinox.p2.metadata.expression.*; import org.eclipse.equinox.p2.metadata.query.ExpressionQuery; +import org.eclipse.equinox.p2.query.IQuery; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; @@ -57,7 +58,7 @@ public class TestQueryReimplementation extends AbstractProvisioningTest { * A convenience query that will match any {@link IInstallableUnit} * it encounters. */ - public static final ExpressionQuery ANY = new ExpressionQuery(IInstallableUnit.class, ""); + public static final IQuery<IInstallableUnit> ANY = ExpressionQuery.create(""); private static final IExpression idVersionQuery; private static final IExpression idRangeQuery; diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF index 480ca9898..52c6c1a91 100644 --- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF @@ -20,6 +20,7 @@ Import-Package: javax.xml.parsers, org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.engine, org.eclipse.equinox.internal.p2.garbagecollector, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.provisional.frameworkadmin, org.eclipse.equinox.internal.provisional.p2.core, org.eclipse.equinox.internal.provisional.p2.director;resolution:=optional, diff --git a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF index 9b2de3e03..56848bed9 100644 --- a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF @@ -23,6 +23,7 @@ Import-Package: com.ibm.icu.text, org.eclipse.equinox.internal.p2.artifact.repository, org.eclipse.equinox.internal.p2.core.helpers, org.eclipse.equinox.internal.p2.metadata, + org.eclipse.equinox.internal.p2.metadata.index, org.eclipse.equinox.internal.p2.metadata.query, org.eclipse.equinox.internal.p2.metadata.repository, org.eclipse.equinox.internal.p2.repository.helpers, diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryProvider.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryProvider.java index e0f5cf1b7..2848ad712 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryProvider.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryProvider.java @@ -45,7 +45,7 @@ public class QueryProvider { public static final int INSTALLED_IUS = 6; public static final int AVAILABLE_ARTIFACTS = 7; - private IQuery<IInstallableUnit> allQuery = new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, ExpressionQuery.matchAll()); + private IQuery<IInstallableUnit> allQuery = ExpressionQuery.create(ExpressionQuery.matchAll()); public QueryProvider(ProvisioningUI ui) { this.ui = ui; @@ -153,7 +153,7 @@ public class QueryProvider { requirementExpressions[i++] = req.getMatches(); } IExpressionFactory factory = ExpressionUtil.getFactory(); - IQuery<IInstallableUnit> meetsAnyRequirementQuery = new ExpressionQuery<IInstallableUnit>(IInstallableUnit.class, factory.or(requirementExpressions)); + IQuery<IInstallableUnit> meetsAnyRequirementQuery = ExpressionQuery.create(factory.or(requirementExpressions)); IQuery<IInstallableUnit> visibleAsAvailableQuery = policy.getVisibleAvailableIUQuery(); @SuppressWarnings("unchecked") IQuery<IInstallableUnit> createCompoundQuery = CompoundQuery.createCompoundQuery(new IQuery[] {visibleAsAvailableQuery, meetsAnyRequirementQuery}, true); @@ -176,7 +176,7 @@ public class QueryProvider { case PROFILES : queryable = new QueryableProfileRegistry(ui); - return new ElementQueryDescriptor(queryable, new ExpressionQuery<IProfile>(IProfile.class, ExpressionQuery.matchAll()), new Collector<Object>(), new ProfileElementWrapper(null, element)); + return new ElementQueryDescriptor(queryable, ExpressionQuery.create(IProfile.class, ExpressionQuery.matchAll()), new Collector<Object>(), new ProfileElementWrapper(null, element)); case AVAILABLE_ARTIFACTS : if (!(queryable instanceof IArtifactRepository)) diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java index 5bd7abbae..c5a5bf4d7 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java @@ -12,13 +12,12 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.query; -import org.eclipse.equinox.p2.planner.IPlanner; - import java.util.ArrayList; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.p2.engine.ProvisioningContext; import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.planner.IPlanner; import org.eclipse.equinox.p2.query.*; import org.eclipse.equinox.p2.ui.ProvisioningUI; |