Code cleanup. Fix bug where path of proto file to compile was not added
to the command.
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java
similarity index 87%
rename from com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java
rename to com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java
index 8bba92d..2b377df 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption_appendOptionToCommand_Test.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static org.junit.rules.ExpectedException.none;
 import static org.mockito.Mockito.*;
@@ -18,7 +18,7 @@
 import com.google.eclipse.protobuf.ui.preferences.compiler.core.CompilerPreferences;
 
 /**
- * Tests for <code>{@link DescriptorPathProtocOption#appendOptionToCommand(ProtocCommand)}</code>.
+ * Tests for <code>{@link DescriptorPathProtocOption#addOptionTo(ProtocCommand)}</code>.
  *
  * @author alruiz@google.com (Alex Ruiz)
  */
@@ -39,13 +39,13 @@
 
   @Test public void should_not_append_to_command_if_descriptor_path_is_null() {
     expectDescriptorPathToBeEqualTo(null);
-    option.appendOptionToCommand(command);
+    option.addOptionTo(command);
     verifyZeroInteractions(command);
   }
 
   @Test public void should_not_append_to_command_if_descriptor_path_is_empty() {
     expectDescriptorPathToBeEqualTo("");
-    option.appendOptionToCommand(command);
+    option.addOptionTo(command);
     verifyZeroInteractions(command);
   }
 
@@ -53,13 +53,13 @@
     thrown.expect(IllegalArgumentException.class);
     thrown.expectMessage("Path '/usr/local/include' does not contain '/google/protobuf/descriptor.proto'");
     expectDescriptorPathToBeEqualTo("/usr/local/include");
-    option.appendOptionToCommand(command);
+    option.addOptionTo(command);
     verifyZeroInteractions(command);
   }
 
   @Test public void should_append_path_of_descriptor_to_command() {
     expectDescriptorPathToBeEqualTo("/usr/local/include/google/protobuf/descriptor.proto");
-    option.appendOptionToCommand(command);
+    option.addOptionTo(command);
     verify(command).appendOption("proto_path", "/usr/local/include");
   }
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java
similarity index 97%
rename from com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java
rename to com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java
index d5ede0c..0cfe596 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser_parseAndAddMarkerIfNecessary_Test.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static org.mockito.Mockito.*;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java
similarity index 97%
rename from com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java
rename to com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java
index b798fe7..4f52d6a 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory_createErrorIfNecessary_Test.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static com.google.eclipse.protobuf.junit.stubs.resources.MarkerStub.error;
 import static com.google.eclipse.protobuf.ui.validation.ProtobufResourceUIValidatorExtension.EDITOR_CHECK;
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java
similarity index 95%
rename from com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java
rename to com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java
index 793a984..ac56918 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withLineNumber_Test.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static org.mockito.Mockito.*;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java
similarity index 95%
rename from com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java
rename to com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java
index 31153fa..3611b5f 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser_parseAndAddMarkerIfNecessary_withoutLineNumber_Test.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static org.mockito.Mockito.*;
 
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index ae19672..54a8999 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -248,7 +248,7 @@
   </extension>
   <extension point="org.eclipse.xtext.builder.participant">
     <participant
-      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.builder.protoc.core.ProtobufBuildParticipant">
+      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.builder.protoc.ProtobufBuildParticipant">
     </participant>
   </extension>
   <extension
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ConsolePrinter.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ConsolePrinter.java
similarity index 96%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ConsolePrinter.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ConsolePrinter.java
index 8e684d1..beacffd 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ConsolePrinter.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ConsolePrinter.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.core;
+package com.google.eclipse.protobuf.ui.builder.protoc;
 
 import static com.google.common.io.Closeables.closeQuietly;
 import static com.google.eclipse.protobuf.ui.util.Workbenches.activeWorkbenchPage;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ProtobufBuildParticipant.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
similarity index 93%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ProtobufBuildParticipant.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
index 13ce5bb..8ec4d3f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/core/ProtobufBuildParticipant.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
@@ -6,10 +6,10 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.core;
+package com.google.eclipse.protobuf.ui.builder.protoc;
 
 import static com.google.common.io.Closeables.closeQuietly;
-import static com.google.eclipse.protobuf.ui.builder.protoc.core.ConsolePrinter.createAndDisplayConsole;
+import static com.google.eclipse.protobuf.ui.builder.protoc.ConsolePrinter.createAndDisplayConsole;
 import static com.google.eclipse.protobuf.ui.exception.CoreExceptions.error;
 import static com.google.eclipse.protobuf.ui.preferences.compiler.core.CompilerPreferences.compilerPreferences;
 import static org.eclipse.core.resources.IResource.DEPTH_INFINITE;
@@ -25,10 +25,10 @@
 import org.eclipse.xtext.resource.IResourceDescription.Delta;
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
 
-import com.google.eclipse.protobuf.ui.builder.protoc.command.ProtocCommandBuilder;
-import com.google.eclipse.protobuf.ui.builder.protoc.output.*;
 import com.google.eclipse.protobuf.ui.preferences.compiler.core.CompilerPreferences;
 import com.google.eclipse.protobuf.ui.preferences.paths.core.PathsPreferences;
+import com.google.eclipse.protobuf.ui.protoc.command.ProtocCommandBuilder;
+import com.google.eclipse.protobuf.ui.protoc.output.*;
 import com.google.inject.Inject;
 
 /**
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/CppProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/CppProtocOption.java
similarity index 87%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/CppProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/CppProtocOption.java
index 83bc3ff..2b75808 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/CppProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/CppProtocOption.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
-import static com.google.eclipse.protobuf.ui.builder.protoc.command.IResources.*;
+import static com.google.eclipse.protobuf.ui.protoc.command.IResources.*;
 
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.CoreException;
@@ -32,7 +32,7 @@
     this.project = project;
   }
 
-  @Override public void appendOptionToCommand(ProtocCommand command) throws CoreException {
+  @Override public void addOptionTo(ProtocCommand command) throws CoreException {
     ensureIsInitialized();
     if (enabled) {
       command.appendOption("cpp_out", outputDirectoryLocation);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption.java
similarity index 92%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption.java
index 95e86e9..ccb48c2 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/DescriptorPathProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/DescriptorPathProtocOption.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static java.io.File.separator;
@@ -34,7 +34,7 @@
     descriptorFqn = concat(pathSeparator, newArrayList("", "google", "protobuf", "descriptor.proto"));
   }
 
-  @Override public void appendOptionToCommand(ProtocCommand command) {
+  @Override public void addOptionTo(ProtocCommand command) {
     if (!initialized) {
       initialize();
     }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/IResources.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/IResources.java
similarity index 94%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/IResources.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/IResources.java
index 83340ae..6e53343 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/IResources.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/IResources.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static com.google.eclipse.protobuf.ui.util.Paths.segmentsOf;
 import static org.eclipse.core.runtime.IPath.SEPARATOR;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ImportRootsProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ImportRootsProtocOption.java
similarity index 94%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ImportRootsProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ImportRootsProtocOption.java
index 902e799..e896d16 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ImportRootsProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ImportRootsProtocOption.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.eclipse.protobuf.ui.preferences.paths.core.DirectoryPath.parse;
@@ -36,7 +36,7 @@
     this.project = project;
   }
 
-  public void appendOptionToCommand(ProtocCommand command, IFile protoFile) {
+  public void addOptionToCommand(ProtocCommand command, IFile protoFile) {
     if (!initialized) {
       initialize();
     }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/JavaProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/JavaProtocOption.java
similarity index 87%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/JavaProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/JavaProtocOption.java
index 9b276de..571260f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/JavaProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/JavaProtocOption.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
-import static com.google.eclipse.protobuf.ui.builder.protoc.command.IResources.*;
+import static com.google.eclipse.protobuf.ui.protoc.command.IResources.*;
 
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.CoreException;
@@ -32,7 +32,7 @@
     this.project = project;
   }
 
-  @Override public void appendOptionToCommand(ProtocCommand command) throws CoreException {
+  @Override public void addOptionTo(ProtocCommand command) throws CoreException {
     ensureIsInitialized();
     if (enabled) {
       command.appendOption("java_out", outputDirectoryLocation);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/OutputDirectoryProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/OutputDirectoryProtocOption.java
similarity index 89%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/OutputDirectoryProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/OutputDirectoryProtocOption.java
index 0a3ad42..b8bedd7 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/OutputDirectoryProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/OutputDirectoryProtocOption.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.runtime.CoreException;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommand.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommand.java
similarity index 85%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommand.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommand.java
index f44d26b..ba17fef 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommand.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommand.java
@@ -6,10 +6,12 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static com.google.eclipse.protobuf.util.CommonWords.space;
 
+import org.eclipse.core.resources.IFile;
+
 /**
  * The command used to call protoc to compile a single .proto file.
  *
@@ -34,5 +36,9 @@
 
   @Override public String toString() {
     return content.toString();
+  }
+
+  void setFileToCompile(IFile protoFile) {
+    content.append(protoFile.getLocation().toOSString());
   };
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommandBuilder.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommandBuilder.java
similarity index 89%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommandBuilder.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommandBuilder.java
index 9bf1921..713a9c2 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocCommandBuilder.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocCommandBuilder.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static java.util.Collections.unmodifiableList;
@@ -49,10 +49,11 @@
    */
   public String buildCommand(IFile protoFile) throws CoreException {
     ProtocCommand command = new ProtocCommand(protocPath);
-    importRootsProtocOption.appendOptionToCommand(command, protoFile);
+    importRootsProtocOption.addOptionToCommand(command, protoFile);
     for (ProtocOption option : options) {
-      option.appendOptionToCommand(command);
+      option.addOptionTo(command);
     }
+    command.setFileToCompile(protoFile);
     return command.toString();
   }
 
@@ -66,7 +67,9 @@
     for (ProtocOption option : options) {
       if (option instanceof OutputDirectoryProtocOption) {
         IFolder outputDirectory = ((OutputDirectoryProtocOption) option).outputDirectory();
-        outputDirectories.add(outputDirectory);
+        if (outputDirectory != null) {
+          outputDirectories.add(outputDirectory);
+        }
       }
     }
     return unmodifiableList(outputDirectories);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocOption.java
similarity index 75%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocOption.java
index ec2675e..95d8f5b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/ProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/ProtocOption.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
 import org.eclipse.core.runtime.CoreException;
 
@@ -14,5 +14,5 @@
  * @author alruiz@google.com (Alex Ruiz)
  */
 interface ProtocOption {
-  void appendOptionToCommand(ProtocCommand command) throws CoreException;
+  void addOptionTo(ProtocCommand command) throws CoreException;
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/PythonProtocOption.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/PythonProtocOption.java
similarity index 87%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/PythonProtocOption.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/PythonProtocOption.java
index e31b9e5..a8f5390 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/command/PythonProtocOption.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/command/PythonProtocOption.java
@@ -6,9 +6,9 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.command;
+package com.google.eclipse.protobuf.ui.protoc.command;
 
-import static com.google.eclipse.protobuf.ui.builder.protoc.command.IResources.*;
+import static com.google.eclipse.protobuf.ui.protoc.command.IResources.*;
 
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.CoreException;
@@ -32,7 +32,7 @@
     this.project = project;
   }
 
-  @Override public void appendOptionToCommand(ProtocCommand command) throws CoreException {
+  @Override public void addOptionTo(ProtocCommand command) throws CoreException {
     ensureIsInitialized();
     if (enabled) {
       command.appendOption("python_out", outputDirectoryLocation);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser.java
similarity index 96%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser.java
index 66f382c..c52bb9c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/CompositeOutputParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/CompositeOutputParser.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static com.google.common.collect.Lists.newArrayList;
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory.java
similarity index 97%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory.java
index a447056..58f2af2 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocMarkerFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocMarkerFactory.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static com.google.eclipse.protobuf.ui.validation.ProtobufResourceUIValidatorExtension.EDITOR_CHECK;
 import static org.eclipse.core.resources.IMarker.*;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocOutputParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocOutputParser.java
similarity index 93%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocOutputParser.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocOutputParser.java
index b58ec02..9dfe7ed 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/ProtocOutputParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/ProtocOutputParser.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import org.eclipse.core.runtime.CoreException;
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser.java
similarity index 96%
rename from com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser.java
rename to com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser.java
index 7e063e8..359745b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/output/RegexOutputParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/protoc/output/RegexOutputParser.java
@@ -6,7 +6,7 @@
  *
  * http://www.eclipse.org/legal/epl-v10.html
  */
-package com.google.eclipse.protobuf.ui.builder.protoc.output;
+package com.google.eclipse.protobuf.ui.protoc.output;
 
 import static java.lang.Integer.parseInt;