Change Solver structure

To support layered solver in future
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
index a2bc44f..a188982 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/Module.java
@@ -38,7 +38,7 @@
 import com.googlesource.gerrit.plugins.rabbitmq.session.Session;
 import com.googlesource.gerrit.plugins.rabbitmq.session.SessionFactory;
 import com.googlesource.gerrit.plugins.rabbitmq.session.impl.AMQPSession;
-import com.googlesource.gerrit.plugins.rabbitmq.solver.BCSolver;
+import com.googlesource.gerrit.plugins.rabbitmq.solver.SolverImpl;
 import com.googlesource.gerrit.plugins.rabbitmq.solver.Solver;
 import com.googlesource.gerrit.plugins.rabbitmq.solver.SolverFactory;
 
@@ -47,7 +47,7 @@
   @Override
   protected void configure() {
     bind(Gerrit.class);
-    bind(BCSolver.class);
+    bind(SolverImpl.class);
     bind(IdentifiedChangeListener.class);
     bind(RabbitMQManager.class);
 
@@ -57,7 +57,7 @@
     bind(Section.class).annotatedWith(Names.named("message")).to(Message.class);
     bind(Section.class).annotatedWith(Names.named("monitor")).to(Monitor.class);
 
-    install(new FactoryModuleBuilder().implement(Solver.class, BCSolver.class).build(SolverFactory.class));
+    install(new FactoryModuleBuilder().implement(Solver.class, SolverImpl.class).build(SolverFactory.class));
     install(new FactoryModuleBuilder().implement(Session.class, AMQPSession.class).build(SessionFactory.class));
     install(new FactoryModuleBuilder().implement(Publisher.class, MessagePublisher.class).build(PublisherFactory.class));
     install(new FactoryModuleBuilder().implement(Properties.class, PluginProperties.class).build(PropertiesFactory.class));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/SolverImpl.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/SolverImpl.java
new file mode 100644
index 0000000..b7de500
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/SolverImpl.java
@@ -0,0 +1,46 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.googlesource.gerrit.plugins.rabbitmq.solver;
+
+import com.google.gerrit.extensions.annotations.PluginData;
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.server.config.SitePaths;
+import com.google.inject.Inject;
+
+import com.googlesource.gerrit.plugins.rabbitmq.solver.version.V1;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+public class SolverImpl implements Solver {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(SolverImpl.class);
+
+  private final Solver solver;
+
+  @Inject
+  public SolverImpl(
+      @PluginName final String pluginName,
+      @PluginData final File pluginData,
+      final SitePaths sites
+      ) {
+    this.solver = new V1(pluginName, pluginData, sites);
+  }
+
+  public void solve() {
+    solver.solve();
+  }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/BCSolver.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/version/V1.java
similarity index 80%
rename from src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/BCSolver.java
rename to src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/version/V1.java
index af35a33..824d2fc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/BCSolver.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/solver/version/V1.java
@@ -10,17 +10,16 @@
 // distributed under the License is distributed on an "AS IS" BASIS,
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
-// limitations under the License.
-package com.googlesource.gerrit.plugins.rabbitmq.solver;
+package com.googlesource.gerrit.plugins.rabbitmq.solver.version;
 
 import static com.googlesource.gerrit.plugins.rabbitmq.RabbitMQManager.FILE_EXT;
 import static com.googlesource.gerrit.plugins.rabbitmq.RabbitMQManager.SITE_DIR;
 
-import com.google.gerrit.extensions.annotations.PluginData;
-import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.inject.Inject;
 
+import com.googlesource.gerrit.plugins.rabbitmq.solver.Solver;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -28,19 +27,19 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 
-public class BCSolver implements Solver {
+public class V1 implements Solver {
 
   private final static String DEFAULT_SITE_NAME = "default";
-  private static final Logger LOGGER = LoggerFactory.getLogger(BCSolver.class);
+  private static final Logger LOGGER = LoggerFactory.getLogger(V1.class);
 
   private final String pluginName;
   private final Path pluginDataDir;
   private final Path etcDir;
 
   @Inject
-  public BCSolver(
-      @PluginName final String pluginName,
-      @PluginData final File pluginData,
+  public V1(
+      final String pluginName,
+      final File pluginData,
       final SitePaths sites
       ) {
     this.pluginName = pluginName;