Author: alessio.soldano(a)jboss.com
Date: 2007-12-11 19:06:42 -0500 (Tue, 11 Dec 2007)
New Revision: 5262
Added:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/recording/RecordBufferProcessor.java
Modified:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointHandlerDeploymentAspect.java
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpoint.java
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpointMBean.java
Log:
Implemented MessageBufferRecord and temporarily added some methods in the managed
endpoint
Modified:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointHandlerDeploymentAspect.java
===================================================================
---
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointHandlerDeploymentAspect.java 2007-12-11
22:29:42 UTC (rev 5261)
+++
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/deployment/EndpointHandlerDeploymentAspect.java 2007-12-12
00:06:42 UTC (rev 5262)
@@ -26,8 +26,8 @@
import java.util.LinkedList;
import java.util.List;
+import org.jboss.wsf.framework.management.recording.RecordBufferProcessor;
import org.jboss.wsf.framework.management.recording.RecordDumpProcessor;
-import org.jboss.wsf.framework.management.recording.RecordWriterProcessor;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.deployment.Deployment;
@@ -79,7 +79,7 @@
//TODO!! still to be configured...
List<RecordProcessor> recordProcessorList = new
LinkedList<RecordProcessor>();
- recordProcessorList.add(new RecordWriterProcessor());
+ recordProcessorList.add(new RecordBufferProcessor());
recordProcessorList.add(new RecordDumpProcessor());
ep.setRecordProcessors(recordProcessorList);
Modified:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpoint.java
===================================================================
---
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpoint.java 2007-12-11
22:29:42 UTC (rev 5261)
+++
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpoint.java 2007-12-12
00:06:42 UTC (rev 5262)
@@ -24,7 +24,10 @@
// $Id: ManagedEndpointRegistry.java 3146 2007-05-18 22:55:26Z thomas.diesler(a)jboss.com
$
import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import org.jboss.wsf.framework.management.recording.RecordBufferProcessor;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.management.EndpointMetrics;
import org.jboss.wsf.spi.management.recording.Record;
@@ -129,4 +132,36 @@
}
}
}
+
+ public void addRecordProcessor(RecordProcessor processor)
+ {
+ this.getRecordProcessors().add(processor);
+ }
+
+ public List<RecordProcessor> getRecordProcessors()
+ {
+ return endpoint.getRecordProcessors();
+ }
+
+ public void setRecordProcessors(List<RecordProcessor> processor)
+ {
+ endpoint.setRecordProcessors(processor);
+ }
+
+ public String getClientHosts()
+ {
+ StringBuffer result = new StringBuffer();
+ for (RecordProcessor processor : endpoint.getRecordProcessors())
+ {
+ if (processor instanceof RecordBufferProcessor)
+ {
+ Set<String> set = ((RecordBufferProcessor)processor).getClientHosts();
+ for (String s : set)
+ {
+ result.append(s+" ");
+ }
+ }
+ }
+ return result.toString();
+ }
}
Modified:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpointMBean.java
===================================================================
---
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpointMBean.java 2007-12-11
22:29:42 UTC (rev 5261)
+++
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/ManagedEndpointMBean.java 2007-12-12
00:06:42 UTC (rev 5262)
@@ -22,8 +22,10 @@
package org.jboss.wsf.framework.management;
import java.util.Date;
+import java.util.List;
import org.jboss.wsf.spi.management.recording.Record;
+import org.jboss.wsf.spi.management.recording.RecordProcessor;
/**
* MBean interface.
@@ -58,4 +60,12 @@
void setRecording(boolean value);
void processRecord(Record record);
+
+ void addRecordProcessor(RecordProcessor processor);
+
+ List<RecordProcessor> getRecordProcessors();
+
+ void setRecordProcessors(List<RecordProcessor> processors);
+
+ public String getClientHosts();
}
Added:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/recording/RecordBufferProcessor.java
===================================================================
---
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/recording/RecordBufferProcessor.java
(rev 0)
+++
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/recording/RecordBufferProcessor.java 2007-12-12
00:06:42 UTC (rev 5262)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.framework.management.recording;
+
+//$Id$
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import org.jboss.wsf.spi.management.recording.Record;
+import org.jboss.wsf.spi.management.recording.Record.MessageType;
+
+/**
+ *
+ * @author alessio.soldano(a)jboss.com
+ * @since 12-Dec-2007
+ */
+public class RecordBufferProcessor extends AbstractRecordProcessor
+{
+
+ private Map<Long, List<Record>> recentRecords =
Collections.synchronizedMap(new HashMap<Long, List<Record>>());
+ private ConcurrentLinkedQueue<Long> recentRecordGroups = new
ConcurrentLinkedQueue<Long>();
+ private int size = 0;
+
+ private int maxSize = 50;
+
+ @Override
+ public void processRecord(Record record)
+ {
+ synchronized (recentRecords)
+ {
+ if (size >= maxSize)
+ {
+ Long id = recentRecordGroups.poll();
+ if (id != null)
+ {
+ recentRecords.remove(id);
+ size--;
+ }
+ }
+ List<Record> list = recentRecords.get(record.getGroupID());
+ if (list == null)
+ {
+ list = new LinkedList<Record>();
+ recentRecords.put(record.getGroupID(), list);
+ }
+ list.add(record);
+ size++;
+ }
+ }
+
+ public Map<Long, List<Record>> getRecentRecords()
+ {
+ synchronized (recentRecords)
+ {
+ return new HashMap<Long, List<Record>>(recentRecords);
+ }
+ }
+
+ public Set<String> getClientHosts()
+ {
+ Map<Long, List<Record>> map = this.getRecentRecords();
+ Set<String> hosts = new HashSet<String>();
+ for (List<Record> list : map.values())
+ {
+ for (Record record : list)
+ {
+ if (MessageType.INBOUND.equals(record.getMessageType()) &&
record.getSourceHost() != null)
+ {
+ hosts.add(record.getSourceHost());
+ }
+ }
+ }
+ return hosts;
+ }
+
+ public Map<Long, List<Record>> getRecords(String clientHost)
+ {
+ Map<Long, List<Record>> map = this.getRecentRecords();
+ Map<Long, List<Record>> result = new HashMap<Long,
List<Record>>();
+ for (List<Record> list : map.values())
+ {
+ for (Record record : list)
+ {
+ if (MessageType.INBOUND.equals(record.getMessageType())
+ && ((clientHost == null && record.getSourceHost() ==
null) || clientHost.equalsIgnoreCase(record.getSourceHost())))
+ {
+ result.put(record.getGroupID(), list);
+ break;
+ }
+ }
+ }
+ return result;
+ }
+
+}
Property changes on:
framework/branches/asoldano/trunk/src/main/java/org/jboss/wsf/framework/management/recording/RecordBufferProcessor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF