diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
index ffd5eec15d5..3fe48b30f82 100644
--- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
+++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml
@@ -192,10 +192,10 @@
-
+
-
-
+
+
diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java
index ed3aff4163b..bb95c965ea6 100755
--- a/server/src/com/cloud/network/element/VirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VirtualRouterElement.java
@@ -31,6 +31,8 @@ import org.apache.cloudstack.api.command.admin.router.CreateVirtualRouterElement
import org.apache.cloudstack.api.command.admin.router.ListOvsElementsCmd;
import org.apache.cloudstack.api.command.admin.router.ListVirtualRouterElementsCmd;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.network.topology.NetworkTopology;
+import org.apache.cloudstack.network.topology.NetworkTopologyContext;
import org.apache.log4j.Logger;
import com.cloud.agent.api.to.LoadBalancerTO;
@@ -81,8 +83,6 @@ import com.cloud.network.rules.LoadBalancerContainer;
import com.cloud.network.rules.PortForwardingRule;
import com.cloud.network.rules.RulesManager;
import com.cloud.network.rules.StaticNat;
-import com.cloud.network.topology.NetworkTopology;
-import com.cloud.network.topology.NetworkTopologyContext;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.offerings.dao.NetworkOfferingDao;
diff --git a/server/src/com/cloud/network/rules/DhcpEntryRules.java b/server/src/com/cloud/network/rules/DhcpEntryRules.java
new file mode 100644
index 00000000000..b9c91e9bd7c
--- /dev/null
+++ b/server/src/com/cloud/network/rules/DhcpEntryRules.java
@@ -0,0 +1,61 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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.cloud.network.rules;
+
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
+import com.cloud.deploy.DeployDestination;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.Network;
+import com.cloud.network.router.VirtualRouter;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.VirtualMachineProfile;
+
+public class DhcpEntryRules extends RuleApplier {
+
+ private final NicProfile nic;
+ private final VirtualMachineProfile profile;
+ private final DeployDestination destination;
+
+ public DhcpEntryRules(final Network network, final NicProfile nic, final VirtualMachineProfile profile, final DeployDestination destination) {
+ super(network);
+
+ this.nic = nic;
+ this.profile = profile;
+ this.destination = destination;
+ }
+
+ @Override
+ public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException {
+ this.router = router;
+
+ return visitor.visit(this);
+ }
+
+ public NicProfile getNic() {
+ return nic;
+ }
+
+ public VirtualMachineProfile getProfile() {
+ return profile;
+ }
+
+ public DeployDestination getDestination() {
+ return destination;
+ }
+}
\ No newline at end of file
diff --git a/server/src/com/cloud/network/rules/DhcpRules.java b/server/src/com/cloud/network/rules/DhcpRules.java
index 149b738ab92..c4c4f59df60 100644
--- a/server/src/com/cloud/network/rules/DhcpRules.java
+++ b/server/src/com/cloud/network/rules/DhcpRules.java
@@ -17,11 +17,12 @@
package com.cloud.network.rules;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile;
diff --git a/server/src/com/cloud/network/rules/DhcpSubNetRules.java b/server/src/com/cloud/network/rules/DhcpSubNetRules.java
new file mode 100644
index 00000000000..d82685625c4
--- /dev/null
+++ b/server/src/com/cloud/network/rules/DhcpSubNetRules.java
@@ -0,0 +1,61 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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.cloud.network.rules;
+
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
+import com.cloud.deploy.DeployDestination;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.Network;
+import com.cloud.network.router.VirtualRouter;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.VirtualMachineProfile;
+
+public class DhcpSubNetRules extends RuleApplier {
+
+ private final NicProfile nic;
+ private final VirtualMachineProfile profile;
+ private final DeployDestination destination;
+
+ public DhcpSubNetRules(final Network network, final NicProfile nic, final VirtualMachineProfile profile, final DeployDestination destination) {
+ super(network);
+
+ this.nic = nic;
+ this.profile = profile;
+ this.destination = destination;
+ }
+
+ @Override
+ public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException {
+ this.router = router;
+
+ return visitor.visit(this);
+ }
+
+ public NicProfile getNic() {
+ return nic;
+ }
+
+ public VirtualMachineProfile getProfile() {
+ return profile;
+ }
+
+ public DeployDestination getDestination() {
+ return destination;
+ }
+}
\ No newline at end of file
diff --git a/server/src/com/cloud/network/rules/FirewallRules.java b/server/src/com/cloud/network/rules/FirewallRules.java
index dfb26850106..231c8890531 100644
--- a/server/src/com/cloud/network/rules/FirewallRules.java
+++ b/server/src/com/cloud/network/rules/FirewallRules.java
@@ -20,6 +20,8 @@ package com.cloud.network.rules;
import java.util.ArrayList;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetFirewallRulesCommand;
@@ -46,7 +48,6 @@ import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.FirewallRule.Purpose;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.offering.NetworkOffering;
import com.cloud.offerings.NetworkOfferingVO;
import com.cloud.utils.net.Ip;
diff --git a/server/src/com/cloud/network/rules/IpAssociationRules.java b/server/src/com/cloud/network/rules/IpAssociationRules.java
index 73d61213657..03f5961c5da 100644
--- a/server/src/com/cloud/network/rules/IpAssociationRules.java
+++ b/server/src/com/cloud/network/rules/IpAssociationRules.java
@@ -24,6 +24,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.Command;
import com.cloud.agent.api.routing.IpAssocCommand;
import com.cloud.agent.api.routing.NetworkElementCommand;
@@ -37,7 +39,6 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.dao.NetworkVO;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.utils.net.NetUtils;
import com.cloud.vm.NicVO;
diff --git a/server/src/com/cloud/network/rules/LoadBalancingRules.java b/server/src/com/cloud/network/rules/LoadBalancingRules.java
index 4f048380d39..7d1ed1f23e6 100644
--- a/server/src/com/cloud/network/rules/LoadBalancingRules.java
+++ b/server/src/com/cloud/network/rules/LoadBalancingRules.java
@@ -19,6 +19,8 @@ package com.cloud.network.rules;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.to.LoadBalancerTO;
@@ -35,7 +37,6 @@ import com.cloud.network.lb.LoadBalancingRule.LbSslCert;
import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.offering.NetworkOffering;
import com.cloud.utils.net.Ip;
import com.cloud.vm.DomainRouterVO;
diff --git a/server/src/com/cloud/network/rules/NetworkAclsRules.java b/server/src/com/cloud/network/rules/NetworkAclsRules.java
index bd30f61c0d6..670da9d9dee 100644
--- a/server/src/com/cloud/network/rules/NetworkAclsRules.java
+++ b/server/src/com/cloud/network/rules/NetworkAclsRules.java
@@ -19,10 +19,11 @@ package com.cloud.network.rules;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.network.vpc.NetworkACLItem;
public class NetworkAclsRules extends RuleApplier {
diff --git a/server/src/com/cloud/network/rules/PasswordToRouterRules.java b/server/src/com/cloud/network/rules/PasswordToRouterRules.java
index 6a756336324..f2b681ccd26 100644
--- a/server/src/com/cloud/network/rules/PasswordToRouterRules.java
+++ b/server/src/com/cloud/network/rules/PasswordToRouterRules.java
@@ -17,10 +17,11 @@
package com.cloud.network.rules;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile;
diff --git a/server/src/com/cloud/network/rules/PrivateGatewayRules.java b/server/src/com/cloud/network/rules/PrivateGatewayRules.java
index b76880d428b..06554886dd4 100644
--- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java
+++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java
@@ -19,10 +19,11 @@ package com.cloud.network.rules;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.network.vpc.NetworkACLItem;
public class PrivateGatewayRules extends RuleApplier {
diff --git a/server/src/com/cloud/network/rules/RuleApplier.java b/server/src/com/cloud/network/rules/RuleApplier.java
index a3f42f1c5d2..ff4a97a18e2 100644
--- a/server/src/com/cloud/network/rules/RuleApplier.java
+++ b/server/src/com/cloud/network/rules/RuleApplier.java
@@ -18,6 +18,7 @@
package com.cloud.network.rules;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.exception.ResourceUnavailableException;
@@ -30,7 +31,6 @@ import com.cloud.network.lb.LoadBalancingRulesManager;
import com.cloud.network.router.NEWVirtualNetworkApplianceManager;
import com.cloud.network.router.RouterControlHelper;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.offerings.dao.NetworkOfferingDao;
import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.dao.DomainRouterDao;
diff --git a/server/src/com/cloud/network/rules/SshKeyToRouterRules.java b/server/src/com/cloud/network/rules/SshKeyToRouterRules.java
index 889415ad6cd..750fbd5f048 100644
--- a/server/src/com/cloud/network/rules/SshKeyToRouterRules.java
+++ b/server/src/com/cloud/network/rules/SshKeyToRouterRules.java
@@ -17,10 +17,11 @@
package com.cloud.network.rules;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile;
diff --git a/server/src/com/cloud/network/rules/StaticNatRules.java b/server/src/com/cloud/network/rules/StaticNatRules.java
index 9ee249a20b6..b37386c34b0 100644
--- a/server/src/com/cloud/network/rules/StaticNatRules.java
+++ b/server/src/com/cloud/network/rules/StaticNatRules.java
@@ -20,6 +20,8 @@ package com.cloud.network.rules;
import java.util.ArrayList;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
import com.cloud.agent.api.to.StaticNatRuleTO;
@@ -29,7 +31,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
public class StaticNatRules extends RuleApplier {
diff --git a/server/src/com/cloud/network/rules/UserdataPwdRules.java b/server/src/com/cloud/network/rules/UserdataPwdRules.java
index 606b2398ce1..f107906194b 100644
--- a/server/src/com/cloud/network/rules/UserdataPwdRules.java
+++ b/server/src/com/cloud/network/rules/UserdataPwdRules.java
@@ -17,11 +17,12 @@
package com.cloud.network.rules;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile;
diff --git a/server/src/com/cloud/network/rules/UserdataToRouterRules.java b/server/src/com/cloud/network/rules/UserdataToRouterRules.java
index d6cb406ec07..e3baeded889 100644
--- a/server/src/com/cloud/network/rules/UserdataToRouterRules.java
+++ b/server/src/com/cloud/network/rules/UserdataToRouterRules.java
@@ -17,12 +17,13 @@
package com.cloud.network.rules;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.Command;
import com.cloud.agent.manager.Commands;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile;
diff --git a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java
index eea4f6726f3..978e6fd922f 100644
--- a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java
+++ b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java
@@ -19,11 +19,12 @@ package com.cloud.network.rules;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
public class VpcIpAssociationRules extends RuleApplier {
diff --git a/server/src/com/cloud/network/rules/VpnRules.java b/server/src/com/cloud/network/rules/VpnRules.java
index 5fccb78ce4f..e50cf2d32fb 100644
--- a/server/src/com/cloud/network/rules/VpnRules.java
+++ b/server/src/com/cloud/network/rules/VpnRules.java
@@ -20,6 +20,8 @@ package com.cloud.network.rules;
import java.util.ArrayList;
import java.util.List;
+import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
+
import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.routing.VpnUsersCfgCommand;
import com.cloud.agent.manager.Commands;
@@ -28,7 +30,6 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.VpnUser;
import com.cloud.network.router.VirtualRouter;
-import com.cloud.network.topology.NetworkTopologyVisitor;
public class VpnRules extends RuleApplier {
diff --git a/server/src/com/cloud/network/topology/AdvancedNetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
similarity index 98%
rename from server/src/com/cloud/network/topology/AdvancedNetworkTopology.java
rename to server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
index f899ae69941..2d491d5d414 100644
--- a/server/src/com/cloud/network/topology/AdvancedNetworkTopology.java
+++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import java.util.List;
import java.util.Map;
diff --git a/server/src/com/cloud/network/topology/AdvancedNetworkVisitor.java b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
similarity index 99%
rename from server/src/com/cloud/network/topology/AdvancedNetworkVisitor.java
rename to server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
index ca9e997b78e..1b0716adada 100644
--- a/server/src/com/cloud/network/topology/AdvancedNetworkVisitor.java
+++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import java.util.List;
diff --git a/server/src/com/cloud/network/topology/BasicNetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
similarity index 99%
rename from server/src/com/cloud/network/topology/BasicNetworkTopology.java
rename to server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
index 6caa61ee2c5..4cd5326047a 100644
--- a/server/src/com/cloud/network/topology/BasicNetworkTopology.java
+++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import java.util.ArrayList;
import java.util.List;
diff --git a/server/src/com/cloud/network/topology/BasicNetworkVisitor.java b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
similarity index 98%
rename from server/src/com/cloud/network/topology/BasicNetworkVisitor.java
rename to server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
index b648e678f42..b70fe71c64d 100644
--- a/server/src/com/cloud/network/topology/BasicNetworkVisitor.java
+++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
diff --git a/server/src/com/cloud/network/topology/NetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java
similarity index 98%
rename from server/src/com/cloud/network/topology/NetworkTopology.java
rename to server/src/org/apache/cloudstack/network/topology/NetworkTopology.java
index 006ccc50859..54531d6d1b7 100644
--- a/server/src/com/cloud/network/topology/NetworkTopology.java
+++ b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import java.util.List;
import java.util.Map;
diff --git a/server/src/com/cloud/network/topology/NetworkTopologyContext.java b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyContext.java
similarity index 97%
rename from server/src/com/cloud/network/topology/NetworkTopologyContext.java
rename to server/src/org/apache/cloudstack/network/topology/NetworkTopologyContext.java
index 168c4cc8eda..42c9b5bfc11 100644
--- a/server/src/com/cloud/network/topology/NetworkTopologyContext.java
+++ b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyContext.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import java.util.Hashtable;
diff --git a/server/src/com/cloud/network/topology/NetworkTopologyVisitor.java b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
similarity index 98%
rename from server/src/com/cloud/network/topology/NetworkTopologyVisitor.java
rename to server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
index a4aaf2e2f5d..d925f16d699 100644
--- a/server/src/com/cloud/network/topology/NetworkTopologyVisitor.java
+++ b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package com.cloud.network.topology;
+package org.apache.cloudstack.network.topology;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.rules.DhcpRules;