modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/AlertDefinitionHandler.java
| 31 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ConfigurationHistoryHandler.java
| 27 +-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/InventorySummaryHandler.java
| 35 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
| 43 +---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
| 34 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
| 34 +--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportFormatHelper.java
| 96 ++++++++++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportHelper.java
| 88 ---------
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/SuspectMetricHandler.java
| 19 -
9 files changed, 196 insertions(+), 211 deletions(-)
New commits:
commit 46804facb6bcad383d8b82b8b4c78426824bc47f
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Thu Mar 29 07:06:18 2012 -0700
[BZ 800453] Export Csv Reports. Changed ReportHelper to ReportFormatHelper. Added
proper handling of null dates.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/AlertDefinitionHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/AlertDefinitionHandler.java
index c84c446..1dc8641 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/AlertDefinitionHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/AlertDefinitionHandler.java
@@ -1,19 +1,5 @@
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.StreamingOutput;
-import javax.ws.rs.core.UriInfo;
-
import org.rhq.core.domain.alert.AlertDefinition;
import org.rhq.core.domain.criteria.AlertDefinitionCriteria;
import org.rhq.core.domain.criteria.ResourceCriteria;
@@ -26,7 +12,20 @@ import org.rhq.enterprise.server.rest.SetCallerInterceptor;
import org.rhq.enterprise.server.util.CriteriaQuery;
import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.cleanForCSV;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.StreamingOutput;
+import javax.ws.rs.core.UriInfo;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Map;
+import java.util.TreeMap;
+
+import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
@Interceptors(SetCallerInterceptor.class)
@Stateless
@@ -81,7 +80,7 @@ public class AlertDefinitionHandler extends AbstractRestBean implements
AlertDef
+ alertDefinition.getEnabled() + ","
+ alertDefinition.getPriority() + ","
+ cleanForCSV(getParentName(resource)) + ","
- +
cleanForCSV(ReportHelper.parseAncestry(resource.getAncestry())) + ","
+ +
cleanForCSV(ReportFormatHelper.parseAncestry(resource.getAncestry())) + ","
+ getDetailsURL(alertDefinition);
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ConfigurationHistoryHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ConfigurationHistoryHandler.java
index 39a25d9..05e1f6c 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ConfigurationHistoryHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ConfigurationHistoryHandler.java
@@ -1,8 +1,14 @@
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
+import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
+import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
+import org.rhq.core.domain.util.PageList;
+import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
+import org.rhq.enterprise.server.rest.AbstractRestBean;
+import org.rhq.enterprise.server.rest.SetCallerInterceptor;
+import org.rhq.enterprise.server.util.CriteriaQuery;
+import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
import javax.ejb.EJB;
import javax.ejb.Stateless;
@@ -12,19 +18,12 @@ import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.StreamingOutput;
import javax.ws.rs.core.UriInfo;
-
-import org.rhq.core.domain.configuration.ResourceConfigurationUpdate;
-import org.rhq.core.domain.criteria.ResourceConfigurationUpdateCriteria;
-import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.server.configuration.ConfigurationManagerLocal;
-import org.rhq.enterprise.server.rest.AbstractRestBean;
-import org.rhq.enterprise.server.rest.SetCallerInterceptor;
-import org.rhq.enterprise.server.util.CriteriaQuery;
-import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
+import java.io.IOException;
+import java.io.OutputStream;
import static org.rhq.core.domain.util.PageOrdering.ASC;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.cleanForCSV;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.formatDateTime;
+import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
+import static
org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.formatDateTime;
@Interceptors(SetCallerInterceptor.class)
@Stateless
@@ -68,7 +67,7 @@ public class ConfigurationHistoryHandler extends AbstractRestBean
implements Con
+
formatDateTime(configurationUpdate.getCreatedTime())+","
+
formatDateTime(configurationUpdate.getModifiedTime())+","
+ configurationUpdate.getStatus()+","
- +
cleanForCSV(ReportHelper.parseAncestry(configurationUpdate.getResource().getAncestry())) +
","
+ +
cleanForCSV(ReportFormatHelper.parseAncestry(configurationUpdate.getResource().getAncestry()))
+ ","
+ getDetailsURL(configurationUpdate);
//@todo: check dates, user, update-type
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/InventorySummaryHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/InventorySummaryHandler.java
index d1d0d37..55ee582 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/InventorySummaryHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/InventorySummaryHandler.java
@@ -18,27 +18,6 @@
*/
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Request;
-import javax.ws.rs.core.StreamingOutput;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-
import org.rhq.core.domain.criteria.ResourceCriteria;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.ResourceInstallCount;
@@ -49,6 +28,18 @@ import org.rhq.enterprise.server.rest.SetCallerInterceptor;
import org.rhq.enterprise.server.util.CriteriaQuery;
import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.*;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.*;
+
import static org.rhq.core.domain.resource.InventoryStatus.COMMITTED;
import static org.rhq.core.domain.util.PageOrdering.ASC;
@@ -178,7 +169,7 @@ public class InventorySummaryHandler extends AbstractRestBean
implements Invento
}
protected String toCSV(Resource resource) {
- return resource.getName() + "," +
ReportHelper.parseAncestry(resource.getAncestry()) + "," +
+ return resource.getName() + "," +
ReportFormatHelper.parseAncestry(resource.getAncestry()) + "," +
resource.getDescription() + "," +
resource.getResourceType().getName() + "," + resource.getVersion() +
"," + resource.getCurrentAvailability().getAvailabilityType();
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
index a68cb82..f4687db 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
@@ -1,29 +1,8 @@
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.StreamingOutput;
-import javax.ws.rs.core.UriInfo;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import org.rhq.core.domain.alert.Alert;
-import org.rhq.core.domain.alert.AlertCondition;
-import org.rhq.core.domain.alert.AlertConditionCategory;
-import org.rhq.core.domain.alert.AlertConditionLog;
-import org.rhq.core.domain.alert.AlertConditionOperator;
-import org.rhq.core.domain.alert.AlertPriority;
+import org.rhq.core.domain.alert.*;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.util.PageList;
@@ -33,8 +12,22 @@ import org.rhq.enterprise.server.rest.SetCallerInterceptor;
import org.rhq.enterprise.server.util.CriteriaQuery;
import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.cleanForCSV;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.formatDateTime;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.StreamingOutput;
+import javax.ws.rs.core.UriInfo;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
+import static
org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.formatDateTime;
@Interceptors(SetCallerInterceptor.class)
@Stateless
@@ -87,7 +80,7 @@ public class RecentAlertHandler extends AbstractRestBean implements
RecentAlertL
alert.getAlertDefinition().getPriority() + "," +
getStatus(alert) + "," +
cleanForCSV(alert.getAlertDefinition().getResource().getName()) +
"," +
-
cleanForCSV(ReportHelper.parseAncestry(alert.getAlertDefinition().getResource().getAncestry()))
+
cleanForCSV(ReportFormatHelper.parseAncestry(alert.getAlertDefinition().getResource().getAncestry()))
+ "," + getDetailsURL(alert);
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
index 6a56fb9..fb30273 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
@@ -1,22 +1,7 @@
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.StreamingOutput;
-import javax.ws.rs.core.UriInfo;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.rhq.core.domain.criteria.DriftCriteria;
import org.rhq.core.domain.criteria.GenericDriftCriteria;
import org.rhq.core.domain.drift.DriftCategory;
@@ -28,8 +13,21 @@ import org.rhq.enterprise.server.rest.SetCallerInterceptor;
import org.rhq.enterprise.server.util.CriteriaQuery;
import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.cleanForCSV;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.formatDateTime;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.StreamingOutput;
+import javax.ws.rs.core.UriInfo;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
+import static
org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.formatDateTime;
@Interceptors(SetCallerInterceptor.class)
@Stateless
@@ -108,7 +106,7 @@ public class RecentDriftHandler extends AbstractRestBean implements
RecentDriftL
drift.getDrift().getCategory() + "," +
drift.getDrift().getPath() + "," +
cleanForCSV(drift.getResource().getName()) +","+
-
cleanForCSV(ReportHelper.parseAncestry(drift.getResource().getAncestry())) + ","
+
+
cleanForCSV(ReportFormatHelper.parseAncestry(drift.getResource().getAncestry())) +
"," +
getDetailsURL(drift);
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
index 0431735..3ce9a93 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
@@ -1,22 +1,7 @@
package org.rhq.enterprise.server.rest.reporting;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.StreamingOutput;
-import javax.ws.rs.core.UriInfo;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.ResourceOperationHistory;
@@ -27,8 +12,21 @@ import org.rhq.enterprise.server.rest.SetCallerInterceptor;
import org.rhq.enterprise.server.util.CriteriaQuery;
import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.cleanForCSV;
-import static org.rhq.enterprise.server.rest.reporting.ReportHelper.formatDateTime;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.StreamingOutput;
+import javax.ws.rs.core.UriInfo;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
+import static
org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.formatDateTime;
@Interceptors(SetCallerInterceptor.class)
@Stateless
@@ -79,7 +77,7 @@ public class RecentOperationsHandler extends AbstractRestBean implements
RecentO
operation.getSubjectName() + "," +
operation.getStatus() + "," +
cleanForCSV(operation.getResource().getName()) +","+
-
cleanForCSV(ReportHelper.parseAncestry(operation.getResource().getAncestry())) +
"," +
+
cleanForCSV(ReportFormatHelper.parseAncestry(operation.getResource().getAncestry())) +
"," +
getDetailsURL(operation);
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportFormatHelper.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportFormatHelper.java
new file mode 100644
index 0000000..9e0f533
--- /dev/null
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportFormatHelper.java
@@ -0,0 +1,96 @@
+/*
+ *
+ * * RHQ Management Platform
+ * * Copyright (C) 2005-2012 Red Hat, Inc.
+ * * All rights reserved.
+ * *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation version 2 of the License.
+ * *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ * *
+ * * You should have received a copy of the GNU General Public License
+ * * along with this program; if not, write to the Free Software
+ * * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+package org.rhq.enterprise.server.rest.reporting;
+
+import org.rhq.core.domain.resource.Resource;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+/**
+ * Formatting tools for rest reporting.
+ */
+public class ReportFormatHelper {
+
+ private ReportFormatHelper(){
+ // This is just a static utility class
+ }
+
+ /**
+ * Strip out any invalid characters from CSV data.
+ * @param input
+ * @return Cleaned String suitable for inclusion in CSV file
+ */
+ public static String cleanForCSV(String input){
+ if (input == null) {
+ return " ";
+ }
+ return input.replace(',',' ').replace('\n', '
');
+ }
+
+ /**
+ * Standard Date/time format for CSV files
+ * @param epochMillis
+ * @return String formatted string (i.e. '11/4/03 8:14 PM')
+ */
+ public static String formatDateTime(long epochMillis){
+ if(epochMillis != 0){
+ Date date = new Date(epochMillis);
+ return DateFormat.getInstance().format(date);
+ }else {
+ return " ";
+ }
+ }
+
+
+ /**
+ * Standard Date/time format for CSV files
+ * @param epochMillis
+ * @return String formatted string (i.e. '11/4/03')
+ */
+ public static String formatDate(long epochMillis){
+ if(epochMillis != 0){
+ Date date = new Date(epochMillis);
+ return DateFormat.getDateInstance().format(date);
+ }else {
+ return " ";
+ }
+ }
+
+ public static String parseAncestry(String ancestry) {
+ if (null == ancestry) {
+ return "";
+ }
+
+ StringBuilder builder = new StringBuilder();
+ String[] ancestryEntries = ancestry.split(Resource.ANCESTRY_DELIM);
+ for (int i = 0; i < ancestryEntries.length; ++i) {
+ String[] entryTokens =
ancestryEntries[i].split(Resource.ANCESTRY_ENTRY_DELIM);
+ String ancestorName = entryTokens[2];
+ builder.append((i > 0) ? " < " : "");
+ builder.append(ancestorName);
+
+ }
+
+ return builder.toString();
+ }
+
+}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportHelper.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportHelper.java
deleted file mode 100644
index 8b0b043..0000000
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/ReportHelper.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *
- * * RHQ Management Platform
- * * Copyright (C) 2005-2012 Red Hat, Inc.
- * * All rights reserved.
- * *
- * * This program is free software; you can redistribute it and/or modify
- * * it under the terms of the GNU General Public License as published by
- * * the Free Software Foundation version 2 of the License.
- * *
- * * This program is distributed in the hope that it will be useful,
- * * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * * GNU General Public License for more details.
- * *
- * * You should have received a copy of the GNU General Public License
- * * along with this program; if not, write to the Free Software
- * * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-package org.rhq.enterprise.server.rest.reporting;
-
-import java.text.DateFormat;
-import java.util.Date;
-
-import org.rhq.core.domain.resource.Resource;
-
-/**
- * Formatting tools for rest reporting.
- */
-public class ReportHelper {
-
- private ReportHelper(){
- // This is just a static utility class
- }
-
- /**
- * Strip out any invalid characters from CSV data.
- * @param input
- * @return Cleaned String suitable for inclusion in CSV file
- */
- public static String cleanForCSV(String input){
- if (input == null) {
- return " ";
- }
- return input.replace(',',' ').replace('\n', '
');
- }
-
- /**
- * Standard Date/time format for CSV files
- * @param epochMillis
- * @return String formatted string (i.e. '11/4/03 8:14 PM')
- */
- public static String formatDateTime(long epochMillis){
- Date date = new Date(epochMillis);
- return DateFormat.getInstance().format(date);
- }
-
-
- /**
- * Standard Date/time format for CSV files
- * @param epochMillis
- * @return String formatted string (i.e. '11/4/03')
- */
- public static String formatDate(long epochMillis){
- Date date = new Date(epochMillis);
- return DateFormat.getDateInstance().format(date);
- }
-
- public static String parseAncestry(String ancestry) {
- if (null == ancestry) {
- return "";
- }
-
- StringBuilder builder = new StringBuilder();
- String[] ancestryEntries = ancestry.split(Resource.ANCESTRY_DELIM);
- for (int i = 0; i < ancestryEntries.length; ++i) {
- String[] entryTokens =
ancestryEntries[i].split(Resource.ANCESTRY_ENTRY_DELIM);
- String ancestorName = entryTokens[2];
- builder.append((i > 0) ? " < " : "");
- builder.append(ancestorName);
-
- }
-
- return builder.toString();
- }
-
-}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/SuspectMetricHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/SuspectMetricHandler.java
index 607183f..c2b4726 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/SuspectMetricHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/SuspectMetricHandler.java
@@ -1,16 +1,7 @@
package org.rhq.enterprise.server.rest.reporting;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.interceptor.Interceptors;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
@@ -19,6 +10,14 @@ import
org.rhq.enterprise.server.measurement.MeasurementOOBManagerLocal;
import org.rhq.enterprise.server.rest.AbstractRestBean;
import org.rhq.enterprise.server.rest.SetCallerInterceptor;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
@Interceptors(SetCallerInterceptor.class)
@Stateless
public class SuspectMetricHandler extends AbstractRestBean implements SuspectMetricLocal
{
@@ -53,7 +52,7 @@ public class SuspectMetricHandler extends AbstractRestBean implements
SuspectMet
for (MeasurementOOBComposite oobComposite : comps) {
sb.append( oobComposite.getResourceName());
sb.append(",");
-
sb.append(ReportHelper.parseAncestry(oobComposite.getResourceAncestry()));
+
sb.append(ReportFormatHelper.parseAncestry(oobComposite.getResourceAncestry()));
sb.append(",");
sb.append( oobComposite.getUnits()); // Metric
sb.append(",");