[prev in list] [next in list] [prev in thread] [next in thread]
List: opennms-cvs
Subject: [opennms-cvs] SF.net SVN: opennms: [7962]
From: ayresb () users ! sourceforge ! net
Date: 2007-11-29 17:51:57
Message-ID: E1IxnYL-0003jl-GH () sc8-pr-svn3 ! sourceforge ! net
[Download RAW message or body]
Revision: 7962
http://opennms.svn.sourceforge.net/opennms/?rev=7962&view=rev
Author: ayresb
Date: 2007-11-29 09:51:55 -0800 (Thu, 29 Nov 2007)
Log Message:
-----------
Fix some IP sorts to be numerical sorts by octet instead of character sorts,
for example 1,2,11... instead of 1,11,2...
Modified Paths:
--------------
opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java
opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp
Modified: opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java
===================================================================
--- opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java 2007-11-29 \
15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java 2007-11-29 \
17:51:55 UTC (rev 7962) @@ -46,6 +46,8 @@
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -57,6 +59,7 @@
import org.apache.log4j.Category;
import org.opennms.core.resource.Vault;
+import org.opennms.core.utils.IPSorter;
import org.opennms.core.utils.ThreadCategory;
import org.opennms.netmgt.EventConstants;
import org.opennms.netmgt.dao.CategoryDao;
@@ -101,6 +104,8 @@
private NetworkElementFactory() {
}
+ private static final Comparator<Interface> INTERFACE_COMPARATOR = new \
InterfaceComparator(); +
/**
* Translate a node id into a human-readable node label. Note these values
* are not cached.
@@ -659,7 +664,7 @@
Connection conn = Vault.getDbConnection();
try {
- PreparedStatement stmt = conn.prepareStatement("SELECT * FROM \
IPINTERFACE WHERE NODEID = ? AND ISMANAGED != 'D' ORDER BY IPADDR, IFINDEX"); + \
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM IPINTERFACE WHERE \
NODEID = ? AND ISMANAGED != 'D' ORDER BY IFINDEX"); stmt.setInt(1, nodeId);
ResultSet rs = stmt.executeQuery();
@@ -984,6 +989,7 @@
intfs.add(intf);
}
+ Collections.sort(intfs, INTERFACE_COMPARATOR);
return (Interface[]) intfs.toArray(new Interface[intfs.size()]);
}
@@ -2463,4 +2469,27 @@
return theirNodes.toArray(new Node[0]);
}
+ public static class InterfaceComparator implements Comparator<Interface> {
+ public int compare(Interface o1, Interface o2) {
+
+ // Sort by IP first if the IPs are non-0.0.0.0
+ if (!"0.0.0.0".equals(o1.getIpAddress()) && \
!"0.0.0.0".equals(o2.getIpAddress())) { + if \
(IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { + return 1;
+ } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { + return -1;
+ } else {
+ return 0;
+ }
+ } else {
+ // Sort IPs that are non-0.0.0.0 so they are first
+ if (!"0.0.0.0".equals(o1.getIpAddress())) {
+ return -1;
+ } else if (!"0.0.0.0".equals(o2.getIpAddress())) {
+ return 1;
+ }
+ }
+ return 0;
+ }
+ }
}
Modified: opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
===================================================================
--- opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java 2007-11-29 \
15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java 2007-11-29 \
17:51:55 UTC (rev 7962) @@ -17,6 +17,7 @@
import org.hibernate.type.IntegerType;
import org.hibernate.type.StringType;
import org.hibernate.type.Type;
+import org.opennms.core.utils.IPSorter;
import org.opennms.netmgt.config.siteStatusViews.Category;
import org.opennms.netmgt.config.siteStatusViews.RowDef;
import org.opennms.netmgt.config.siteStatusViews.Rows;
@@ -357,8 +358,12 @@
// Sort by IP first if the IPs are non-0.0.0.0
if (!"0.0.0.0".equals(o1.getIpAddress()) && \
!"0.0.0.0".equals(o2.getIpAddress())) {
- if ((diff = o1.getIpAddress().compareTo(o2.getIpAddress())) != 0) {
- return diff;
+ if (IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { + return 1;
+ } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { + return -1;
+ } else {
+ return 0;
}
} else {
// Sort IPs that are non-0.0.0.0 so they are first
@@ -417,8 +422,12 @@
// Sort by IP first if the IPs are non-0.0.0.0
if (!"0.0.0.0".equals(o1.getIpAddress()) && \
!"0.0.0.0".equals(o2.getIpAddress())) {
- if ((diff = o1.getIpAddress().compareTo(o2.getIpAddress())) != 0) {
- return diff;
+ if (IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { + return 1;
+ } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { + return -1;
+ } else {
+ return 0;
}
} else {
// Sort IPs that are non-0.0.0.0 so they are first
Modified: opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp
===================================================================
--- opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp 2007-11-29 \
15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp 2007-11-29 \
17:51:55 UTC (rev 7962) @@ -66,18 +66,7 @@
private double m_warningThreshold;
private ServiceNameComparator m_serviceComparator = new ServiceNameComparator();
- private InterfaceIpAddressComparator m_interfaceComparator = new \
InterfaceIpAddressComparator();
- public Interface[] getInterfaces(int nodeId) throws java.sql.SQLException {
- Interface[] intfs = NetworkElementFactory.getActiveInterfacesOnNode(nodeId);
-
- if (intfs != null) {
- Arrays.sort(intfs, m_interfaceComparator);
- }
-
- return intfs;
- }
-
public Service[] getServices(Interface intf) throws java.sql.SQLException {
Assert.notNull(intf, "intf argument cannot be null");
@@ -154,7 +143,7 @@
</tr>
<% if (overallRtcValue >= 0) { %>
- <% Interface[] availIntfs = getInterfaces(nodeId); %>
+ <% Interface[] availIntfs = \
NetworkElementFactory.getActiveInterfacesOnNode(nodeId); %>
<% for( int i=0; i < availIntfs.length; i++ ) { %>
<% Interface intf = availIntfs[i]; %>
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list
To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic