Cleaning up JUnit infrastructure.
diff --git a/com.google.eclipse.protobuf.junit/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.junit/META-INF/MANIFEST.MF
index 3bb5a1b..a1521b5 100644
--- a/com.google.eclipse.protobuf.junit/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.junit/META-INF/MANIFEST.MF
@@ -18,5 +18,10 @@
  org.eclipse.xtext.ui.junit.source;bundle-version="2.0.0",
  org.eclipse.emf.ecore,
  org.eclipse.emf.common,
- com.google.inject;bundle-version="2.0.0"
-Export-Package: com.google.eclipse.protobuf.junit
+ com.google.inject;bundle-version="2.0.0",
+ org.eclipse.core.resources;bundle-version="3.7.100",
+ org.eclipse.core.jobs;bundle-version="3.5.100",
+ org.eclipse.equinox.common;bundle-version="3.6.0"
+Export-Package: com.google.eclipse.protobuf.junit.core,
+ com.google.eclipse.protobuf.junit.matchers,
+ com.google.eclipse.protobuf.junit.util
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/XtextRule.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
similarity index 98%
rename from com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/XtextRule.java
rename to com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
index 0fc6b9f..b130379 100644
--- a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/XtextRule.java
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.junit;
+package com.google.eclipse.protobuf.junit.core;
 
 import static org.eclipse.emf.common.util.URI.createURI;
 import static org.eclipse.emf.ecore.util.EcoreUtil.resolveAll;
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/EnumHasLiterals.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
similarity index 96%
rename from com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/EnumHasLiterals.java
rename to com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
index df5a346..57cd397 100644
--- a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/EnumHasLiterals.java
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.junit;
+package com.google.eclipse.protobuf.junit.matchers;
 
 import java.util.*;
 
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/PropertyHasType.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/PropertyHasType.java
similarity index 96%
rename from com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/PropertyHasType.java
rename to com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/PropertyHasType.java
index 9f53cba..1a4464b 100644
--- a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/PropertyHasType.java
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/matchers/PropertyHasType.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.junit;
+package com.google.eclipse.protobuf.junit.matchers;
 
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/FileStub.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/FileStub.java
new file mode 100644
index 0000000..b962620
--- /dev/null
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/FileStub.java
@@ -0,0 +1,416 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0 which accompanies this distribution, and is available at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package com.google.eclipse.protobuf.junit.stubs;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.net.URI;
+import java.util.Map;
+
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public abstract class FileStub implements IFile {
+
+  /** {@inheritDoc} */
+  public void accept(IResourceProxyVisitor visitor, int memberFlags) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void accept(IResourceVisitor visitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void accept(IResourceVisitor visitor, int depth, boolean includePhantoms) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void accept(IResourceVisitor visitor, int depth, int memberFlags) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void clearHistory(IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public boolean contains(ISchedulingRule rule) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public void copy(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void copy(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void copy(IProjectDescription description, boolean force, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void copy(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public IMarker createMarker(String type) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IResourceProxy createProxy() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public void delete(boolean force, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void delete(int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void deleteMarkers(String type, boolean includeSubtypes, int depth) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public boolean exists() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public IMarker findMarker(long id) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IMarker[] findMarkers(String type, boolean includeSubtypes, int depth) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public int findMaxProblemSeverity(String type, boolean includeSubtypes, int depth) throws CoreException {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  @SuppressWarnings("rawtypes") public Object getAdapter(Class adapter) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getFileExtension() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public long getLocalTimeStamp() {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public IPath getLocation() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public URI getLocationURI() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IMarker getMarker(long id) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public long getModificationStamp() {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public IPathVariableManager getPathVariableManager() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IContainer getParent() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public Map<QualifiedName, String> getPersistentProperties() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getPersistentProperty(QualifiedName key) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IProject getProject() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IPath getProjectRelativePath() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IPath getRawLocation() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public URI getRawLocationURI() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public ResourceAttributes getResourceAttributes() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public Map<QualifiedName, Object> getSessionProperties() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public Object getSessionProperty(QualifiedName key) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public int getType() {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public IWorkspace getWorkspace() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isAccessible() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isConflicting(ISchedulingRule rule) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isDerived() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isDerived(int options) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isHidden() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isHidden(int options) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isLinked() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isVirtual() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isLinked(int options) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isLocal(int depth) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isPhantom() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isSynchronized(int depth) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isTeamPrivateMember() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isTeamPrivateMember(int options) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public void move(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void move(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void move(IProjectDescription description, boolean force, boolean keepHistory, IProgressMonitor monitor)
+      throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void move(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void refreshLocal(int depth, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void revertModificationStamp(long value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setDerived(boolean isDerived) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setDerived(boolean isDerived, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setHidden(boolean isHidden) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setLocal(boolean flag, int depth, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public long setLocalTimeStamp(long value) throws CoreException {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public void setPersistentProperty(QualifiedName key, String value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setReadOnly(boolean readOnly) {}
+
+  /** {@inheritDoc} */
+  public void setResourceAttributes(ResourceAttributes attributes) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setSessionProperty(QualifiedName key, Object value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setTeamPrivateMember(boolean isTeamPrivate) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void touch(IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void appendContents(InputStream source, boolean force, boolean keepHistory, IProgressMonitor monitor)
+      throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void appendContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void create(InputStream source, boolean force, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void create(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void createLink(IPath localLocation, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void createLink(URI location, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void delete(boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public String getCharset() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getCharset(boolean checkImplicit) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getCharsetFor(Reader reader) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public InputStream getContents() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public InputStream getContents(boolean force) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public int getEncoding() throws CoreException {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public IPath getFullPath() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public IFileState[] getHistory(IProgressMonitor monitor) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getName() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isReadOnly() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public void move(IPath destination, boolean force, boolean keepHistory, IProgressMonitor monitor)
+      throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setCharset(String newCharset) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setCharset(String newCharset, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setContents(InputStream source, boolean force, boolean keepHistory, IProgressMonitor monitor)
+      throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setContents(IFileState source, boolean force, boolean keepHistory, IProgressMonitor monitor)
+      throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setContents(IFileState source, int updateFlags, IProgressMonitor monitor) throws CoreException {}
+}
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/MarkerStub.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/MarkerStub.java
new file mode 100644
index 0000000..848be9a
--- /dev/null
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/stubs/MarkerStub.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0 which accompanies this distribution, and is available at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package com.google.eclipse.protobuf.junit.stubs;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class MarkerStub implements IMarker {
+
+  /** {@inheritDoc} */
+  @SuppressWarnings("rawtypes") public Object getAdapter(Class adapter) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public void delete() throws CoreException {}
+
+  /** {@inheritDoc} */
+  public boolean exists() {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public Object getAttribute(String attributeName) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public int getAttribute(String attributeName, int defaultValue) {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public String getAttribute(String attributeName, String defaultValue) {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public boolean getAttribute(String attributeName, boolean defaultValue) {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public Map<String, Object> getAttributes() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public Object[] getAttributes(String[] attributeNames) throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public long getCreationTime() throws CoreException {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public long getId() {
+    return 0;
+  }
+
+  /** {@inheritDoc} */
+  public IResource getResource() {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public String getType() throws CoreException {
+    return null;
+  }
+
+  /** {@inheritDoc} */
+  public boolean isSubtypeOf(String superType) throws CoreException {
+    return false;
+  }
+
+  /** {@inheritDoc} */
+  public void setAttribute(String attributeName, int value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setAttribute(String attributeName, Object value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setAttribute(String attributeName, boolean value) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setAttributes(String[] attributeNames, Object[] values) throws CoreException {}
+
+  /** {@inheritDoc} */
+  public void setAttributes(Map<String, ? extends Object> attributes) throws CoreException {}
+}
diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/util/Finder.java
similarity index 96%
rename from com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java
rename to com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/util/Finder.java
index 9f0affd..0d2decf 100644
--- a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/util/Finder.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.junit;
+package com.google.eclipse.protobuf.junit.util;
 
 import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider_getFullyQualifiedName_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider_getFullyQualifiedName_Test.java
index 0307b19..ff5ee63 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider_getFullyQualifiedName_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider_getFullyQualifiedName_Test.java
@@ -8,7 +8,7 @@
  */
 package com.google.eclipse.protobuf.naming;
 
-import static com.google.eclipse.protobuf.junit.Finder.*;
+import static com.google.eclipse.protobuf.junit.util.Finder.*;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
@@ -16,7 +16,7 @@
 import org.eclipse.xtext.naming.QualifiedName;
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 
 /**
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_fileOptions_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_fileOptions_Test.java
index dfb7cef..cf6b556 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_fileOptions_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_fileOptions_Test.java
@@ -8,7 +8,7 @@
  */
 package com.google.eclipse.protobuf.scoping;
 
-import static com.google.eclipse.protobuf.junit.PropertyHasType.hasType;
+import static com.google.eclipse.protobuf.junit.matchers.PropertyHasType.hasType;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
@@ -16,7 +16,7 @@
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 
 /**
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_isOptimizeForOption_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_isOptimizeForOption_Test.java
index ddde9fe..eefaf37 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_isOptimizeForOption_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_isOptimizeForOption_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.scoping;
 
-import static com.google.eclipse.protobuf.junit.Finder.findOption;
+import static com.google.eclipse.protobuf.junit.util.Finder.findOption;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Option;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_lookupFileOption_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_lookupFileOption_Test.java
index 8923010..48f3038 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_lookupFileOption_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_lookupFileOption_Test.java
@@ -14,7 +14,7 @@
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 
 /**
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_optimizedMode_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_optimizedMode_Test.java
index 8f1ad9b..a69a948 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_optimizedMode_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/Globals_optimizedMode_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.scoping;
 
-import static com.google.eclipse.protobuf.junit.EnumHasLiterals.hasLiterals;
+import static com.google.eclipse.protobuf.junit.matchers.EnumHasLiterals.hasLiterals;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Enum;
 
 /**
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java
index ef0778c..d333050 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java
@@ -15,7 +15,7 @@
 import org.eclipse.xtext.scoping.impl.ImportUriResolver;
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Import;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_enumTypeOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_enumTypeOf_Test.java
index a8ae9e5..2c3cf12 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_enumTypeOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_enumTypeOf_Test.java
@@ -8,14 +8,14 @@
  */
 package com.google.eclipse.protobuf.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.nullValue;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.protobuf.Enum;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_packageOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_packageOf_Test.java
index e1da903..92cae55 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_packageOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_packageOf_Test.java
@@ -8,7 +8,7 @@
  */
 package com.google.eclipse.protobuf.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.nullValue;
 import static org.junit.Assert.assertThat;
@@ -16,7 +16,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.protobuf.Package;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_rootOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_rootOf_Test.java
index 2450b54..4dfd649 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_rootOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_rootOf_Test.java
@@ -8,14 +8,14 @@
  */
 package com.google.eclipse.protobuf.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsSame.sameInstance;
 import static org.junit.Assert.assertThat;
 
 import org.eclipse.emf.ecore.EObject;
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_scalarTypeOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_scalarTypeOf_Test.java
index 7b12cc5..9aa0af3 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_scalarTypeOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/util/ProtobufElementFinder_scalarTypeOf_Test.java
@@ -8,14 +8,14 @@
  */
 package com.google.eclipse.protobuf.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.nullValue;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 
 /**
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Literals_calculateIndexOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Literals_calculateIndexOf_Test.java
index 933702e..29b8c9c 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Literals_calculateIndexOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Literals_calculateIndexOf_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findLiteral;
+import static com.google.eclipse.protobuf.junit.util.Finder.findLiteral;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Literal;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_calculateTagNumberOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_calculateTagNumberOf_Test.java
index 0bc06db..a62b373 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_calculateTagNumberOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_calculateTagNumberOf_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isBool_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isBool_Test.java
index d598d0b..54930eb 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isBool_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isBool_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
index 22d390a..db24e18 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.allProperties;
+import static com.google.eclipse.protobuf.junit.util.Finder.allProperties;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isString_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isString_Test.java
index f85bc79..4ef01fc 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isString_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isString_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_typeNameOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_typeNameOf_Test.java
index 890c118..8b50b0d 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_typeNameOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_typeNameOf_Test.java
@@ -8,13 +8,13 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static com.google.eclipse.protobuf.junit.Finder.findProperty;
+import static com.google.eclipse.protobuf.junit.util.Finder.findProperty;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
 import org.junit.*;
 
-import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.Property;
 import com.google.eclipse.protobuf.protobuf.Protobuf;