org.ow2.clif.storage.lib.filestorage
Class ConsoleFileStorageImpl

java.lang.Object
  extended by org.ow2.clif.storage.lib.filestorage.ConsoleFileStorageImpl
All Implemented Interfaces:
org.objectweb.fractal.api.control.BindingController, StorageAdmin, StorageRead

public class ConsoleFileStorageImpl
extends java.lang.Object
implements StorageAdmin, org.objectweb.fractal.api.control.BindingController, StorageRead

Part of the storage. This part is deployed in the console

Author:
Julien Buret, Nicolas Droze, Bruno Dillenseger

Field Summary
protected  java.util.Map<java.lang.String,StorageProxyAdmin> distributedStorage
           
protected  java.math.BigInteger eventIteratorKey
           
protected  java.util.Map<java.math.BigInteger,org.ow2.clif.storage.lib.filestorage.ConsoleFileStorageImpl.EventIterator> eventIterators
           
protected  java.io.BufferedWriter test
           
protected  java.lang.String testDirname
           
protected  java.io.Serializable testId
           
 
Fields inherited from interface org.ow2.clif.storage.api.StorageAdmin
STORAGE_ADMIN
 
Fields inherited from interface org.ow2.clif.storage.api.StorageRead
STORAGE_READ
 
Constructor Summary
ConsoleFileStorageImpl()
           
 
Method Summary
 void bindFc(java.lang.String clientItfName, java.lang.Object serverItf)
           
 void closeEventIterator(java.io.Serializable iteratorKey)
          Discards the iterator associated to the given key, possibly releasing resources.
 void collect(java.io.Serializable selBladesId, CollectListener listener)
          Collects the latest test data
 long countEvents(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter)
          Counts the number of available events matching a given filter.
 java.util.Properties getBladeProperties(java.lang.String testName, java.lang.String bladeId)
          Gets the java system properties for the given blade from the given test run
 java.lang.String[] getEventFieldLabels(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel)
          Gets the labels of fields hold by a given event type.
 java.io.Serializable getEventIterator(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter)
          Creates an event iterator.
 BladeEvent[] getEvents(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter, long fromIndex, int count)
          Retrieves a given number of events matching a given filter, from a given index.
 BladeEvent[] getNextEvents(java.io.Serializable iteratorKey, int count)
          Gets next events from the given event iterator.
 BladeDescriptor[] getTestPlan(java.lang.String testName, BladeFilter filter)
          Gets the test plan definition for a given test run name.
 TestDescriptor[] getTests(TestFilter filter)
          Gets a list of test runs matching a given filter.
 java.lang.String[] listFc()
           
 java.lang.Object lookupFc(java.lang.String clientItfName)
           
 void newTest(java.io.Serializable testId, java.util.Map testPlan)
          Inform the storage system the beginning of a new test
 void terminate()
          Terminate the storage system
 void unbindFc(java.lang.String clientItfName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

distributedStorage

protected java.util.Map<java.lang.String,StorageProxyAdmin> distributedStorage

test

protected java.io.BufferedWriter test

testDirname

protected java.lang.String testDirname

testId

protected java.io.Serializable testId

eventIterators

protected java.util.Map<java.math.BigInteger,org.ow2.clif.storage.lib.filestorage.ConsoleFileStorageImpl.EventIterator> eventIterators

eventIteratorKey

protected java.math.BigInteger eventIteratorKey
Constructor Detail

ConsoleFileStorageImpl

public ConsoleFileStorageImpl()
Method Detail

lookupFc

public java.lang.Object lookupFc(java.lang.String clientItfName)
Specified by:
lookupFc in interface org.objectweb.fractal.api.control.BindingController

bindFc

public void bindFc(java.lang.String clientItfName,
                   java.lang.Object serverItf)
Specified by:
bindFc in interface org.objectweb.fractal.api.control.BindingController

unbindFc

public void unbindFc(java.lang.String clientItfName)
Specified by:
unbindFc in interface org.objectweb.fractal.api.control.BindingController

listFc

public java.lang.String[] listFc()
Specified by:
listFc in interface org.objectweb.fractal.api.control.BindingController

newTest

public void newTest(java.io.Serializable testId,
                    java.util.Map testPlan)
             throws ClifException
Inform the storage system the beginning of a new test

Specified by:
newTest in interface StorageAdmin
Parameters:
testPlan - Map of scenario deployment definitions, indexed by a unique identifier
testId - test identifier object
Throws:
ClifException
See Also:
DeployDefinition

collect

public void collect(java.io.Serializable selBladesId,
                    CollectListener listener)
Description copied from interface: StorageAdmin
Collects the latest test data

Specified by:
collect in interface StorageAdmin

terminate

public void terminate()
Terminate the storage system

Specified by:
terminate in interface StorageAdmin

getTests

public TestDescriptor[] getTests(TestFilter filter)
                          throws ClifException
Description copied from interface: StorageRead
Gets a list of test runs matching a given filter.

Specified by:
getTests in interface StorageRead
Parameters:
filter - only tests matching this filter will be retained
Returns:
a browser object to browse among available test execution results
Throws:
ClifException

getTestPlan

public BladeDescriptor[] getTestPlan(java.lang.String testName,
                                     BladeFilter filter)
                              throws ClifException
Description copied from interface: StorageRead
Gets the test plan definition for a given test run name.

Specified by:
getTestPlan in interface StorageRead
Parameters:
testName - the test run name
filter - retains only blades (injectors, probes) accepted by this filter. If null, all blades are retained.
Returns:
an array of descriptors for blades composing the test run and accepted by the optional filter.
Throws:
ClifException

getBladeProperties

public java.util.Properties getBladeProperties(java.lang.String testName,
                                               java.lang.String bladeId)
                                        throws ClifException
Description copied from interface: StorageRead
Gets the java system properties for the given blade from the given test run

Specified by:
getBladeProperties in interface StorageRead
Parameters:
testName - the test run name
bladeId - the blade identifier
Returns:
the Java system properties for the given blade
Throws:
ClifException
See Also:
TestDescriptor.getName(), BladeDescriptor.getId()

getEventFieldLabels

public java.lang.String[] getEventFieldLabels(java.lang.String testName,
                                              java.lang.String bladeId,
                                              java.lang.String eventTypeLabel)
Description copied from interface: StorageRead
Gets the labels of fields hold by a given event type.

Specified by:
getEventFieldLabels in interface StorageRead
Parameters:
testName - the test run name
bladeId - the blade identifier from the given test run
eventTypeLabel - the label of the event type
Returns:
an array of event field labels provided by the given event type

getEventIterator

public java.io.Serializable getEventIterator(java.lang.String testName,
                                             java.lang.String bladeId,
                                             java.lang.String eventTypeLabel,
                                             EventFilter filter)
                                      throws ClifException
Description copied from interface: StorageRead
Creates an event iterator.

Specified by:
getEventIterator in interface StorageRead
Parameters:
testName - the test name to retrieve events from
bladeId - the blade identifier in this test to retrieve events from
eventTypeLabel - the type label of the retrieved events
filter - the filter object to be used for event selection. If null, the iterator will return all events. The filter object may throw a NoMoreEvent exception, in which case current iterator step stops and currently selected events are returned.
Returns:
the iterator key to be used to iterate on getting events, and then to discard the iterator when done
Throws:
ClifException - the given test, blade, or event type could not be found
See Also:
StorageRead.getNextEvents(Serializable, int), StorageRead.closeEventIterator(Serializable)

getNextEvents

public BladeEvent[] getNextEvents(java.io.Serializable iteratorKey,
                                  int count)
                           throws ClifException
Description copied from interface: StorageRead
Gets next events from the given event iterator.

Specified by:
getNextEvents in interface StorageRead
Parameters:
iteratorKey - the key for the target event iterator
count - the number of event to get (at most)
Returns:
selected events
Throws:
ClifException
See Also:
StorageRead.getEventIterator(String, String, String, EventFilter), StorageRead.closeEventIterator(Serializable)

closeEventIterator

public void closeEventIterator(java.io.Serializable iteratorKey)
Description copied from interface: StorageRead
Discards the iterator associated to the given key, possibly releasing resources.

Specified by:
closeEventIterator in interface StorageRead
Parameters:
iteratorKey - the key for the target event iterator

getEvents

public BladeEvent[] getEvents(java.lang.String testName,
                              java.lang.String bladeId,
                              java.lang.String eventTypeLabel,
                              EventFilter filter,
                              long fromIndex,
                              int count)
                       throws ClifException
Description copied from interface: StorageRead
Retrieves a given number of events matching a given filter, from a given index.

Specified by:
getEvents in interface StorageRead
Parameters:
testName - the test name to retrieve events from
bladeId - the blade identifier in this test to retrieve events from
eventTypeLabel - the type label of the retrieved events
filter - the filter object to be used for event selection. If null, all events are selected. If the filter throws a NoMoreEvent exception, the selection process stops, and currently selected events are returned.
fromIndex - the index of the first event to be considered (in other words, events in range 0..fromIndex-1 are ignored). If negative and count parameter is greater than zero, then the latest events will be retrieved.
count - the maximum number of events to retrieve. If negative, the number of retrieved events is not limited.
Returns:
selected blade events
Throws:
ClifException

countEvents

public long countEvents(java.lang.String testName,
                        java.lang.String bladeId,
                        java.lang.String eventTypeLabel,
                        EventFilter filter)
                 throws ClifException
Description copied from interface: StorageRead
Counts the number of available events matching a given filter.

Specified by:
countEvents in interface StorageRead
Parameters:
testName - the test name to retrieve events from
bladeId - the blade identifier in this test to retrieve events from
eventTypeLabel - the type label of the retrieved events
filter - the filter object to be used for event selection. If null, all events are counted. Counting stops before completion if the filter object throws a NoMoreEvent exception, in which case count value before exception is returned.
Returns:
the number of available blade events matching the provided filter.
Throws:
ClifException