Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hallgren2010-02-24 20:49:46 +0000
committerThomas Hallgren2010-02-24 20:49:46 +0000
commit8bac67a557cac9a676f1116dd5412048a7ba2241 (patch)
treef360f4d8f1f7b72e0cc97e6ddfa0f20d71291186 /bundles
parente659d374347a03d5662203090fa7e38a53bc2ff6 (diff)
downloadrt.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')
-rw-r--r--bundles/org.eclipse.equinox.p2.director.app/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.directorywatcher/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF9
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/TranslationSupport.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ExpressionFactory.java23
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/QueryResult.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/index/IndexProvider.java23
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/IMatchQuery.java (renamed from bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IMatchQuery.java)8
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/query/MatchQuery.java (renamed from bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/MatchQuery.java)5
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionContextQuery.java29
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/query/ExpressionQuery.java28
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CollectionResult.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/Collector.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQuery.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/CompoundQueryable.java18
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/IQueryResult.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/query/PipedQuery.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.operations/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.ql/.settings/.api_filters16
-rw-r--r--bundles/org.eclipse.equinox.p2.ql/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/QLFactory.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.ql/src/org/eclipse/equinox/internal/p2/ql/expression/WrappedIQuery.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests.ui/All p2 UI tests.launch4
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CollectorTest.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/CompositeMetadataRepositoryTest.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/SPIMetadataRepositoryTest.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/planner/NonMinimalState.java5
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/ProductActionWithAdviceFileTest.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/actions/RootIUActionTest.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/EvaluatorTest.java53
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/PerformanceTest.java23
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestIndexes.java10
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/ql/TestQueryReimplementation.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/QueryProvider.java6
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/QueryableUpdates.java3
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&lt;T&gt;"/>
- <message_argument value="QLMatchQuery&lt;T&gt;"/>
- </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&lt;T&gt;"/>
- <message_argument value="QLQuery&lt;T&gt;"/>
- </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;

Back to the top