test_class.declarator: sm = null
test_class.modifier: private static
test_class.original_string: private static StorageManager sm = null;
test_class.type: StorageManager
test_class.var_name: sm
test_class.declarator: addressing= new AddressBean[] {new AddressBean("mock-test")}
test_class.modifier: private
test_class.original_string: private AddressBean[] addressing= new AddressBean[] {new AddressBean("mock-test")};
test_class.type: AddressBean[]
test_class.var_name: addressing
test_class.file: modules/x-gsn/src/main/java/org/openiot/gsn/TestVSensorLoader.java
test_class.identifier: TestVSensorLoader
test_case.body: @Test
  	public void testReloadingVirtualSensor() throws InstantiationException, IllegalAccessException, SQLException {
  		VSensorLoader loader = new VSensorLoader();
  		InputStream is = new InputStream();
  		StreamSource 	ss = new StreamSource().setAlias("my-stream1").setAddressing(addressing).setSqlQuery("select * from wrapper").setRawHistorySize("2").setInputStream(is);		
  		ss.setSamplingRate(1);
  		assertTrue(ss.validate());
  //		assertTrue(loader.prepareStreamSource(is,ss));
  		assertTrue(sm.tableExists(ss.getWrapper().getDBAliasInStr()));
  		assertTrue(sm.tableExists(ss.getUIDStr()));
  		assertFalse(is.getRenamingMapping().isEmpty());
  		loader.releaseStreamSource(ss);
  		assertTrue(is.getRenamingMapping().isEmpty());
  		assertFalse(sm.tableExists(ss.getUIDStr()));
  		assertFalse(ss.getWrapper().isActive());
  		assertFalse(sm.tableExists(ss.getWrapper().getDBAliasInStr()));
  		assertTrue(is.getRenamingMapping().isEmpty());
  		ss = new StreamSource().setAlias("my-stream1").setAddressing(addressing).setSqlQuery("select * from wrapper").setRawHistorySize("2").setInputStream(is);		
  		ss.setSamplingRate(1);
  //		assertTrue(loader.prepareStreamSource(is,ss));
  		
  	}
test_case.class_method_signature: TestVSensorLoader.testReloadingVirtualSensor()
test_case.full_signature: @Test public void testReloadingVirtualSensor()
test_case.identifier: testReloadingVirtualSensor
test_case.invocations: setInputStream setRawHistorySize setSqlQuery setAddressing setAlias setSamplingRate assertTrue validate assertTrue tableExists getDBAliasInStr getWrapper assertTrue tableExists getUIDStr assertFalse isEmpty getRenamingMapping releaseStreamSource assertTrue isEmpty getRenamingMapping assertFalse tableExists getUIDStr assertFalse isActive getWrapper assertFalse tableExists getDBAliasInStr getWrapper assertTrue isEmpty getRenamingMapping setInputStream setRawHistorySize setSqlQuery setAddressing setAlias setSamplingRate
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testReloadingVirtualSensor()
focal_class.declarator: VSENSOR_POOL                        = "VSENSOR-POOL"
focal_class.modifier: public static final
focal_class.original_string: public static final String                                     VSENSOR_POOL                        = "VSENSOR-POOL";
focal_class.type: String
focal_class.var_name: VSENSOR_POOL
focal_class.declarator: STREAM_SOURCE                       = "STREAM-SOURCE"
focal_class.modifier: public static final
focal_class.original_string: public static final String                                     STREAM_SOURCE                       = "STREAM-SOURCE";
focal_class.type: String
focal_class.var_name: STREAM_SOURCE
focal_class.declarator: INPUT_STREAM                        = "INPUT-STREAM"
focal_class.modifier: public static final
focal_class.original_string: public static final String                                     INPUT_STREAM                        = "INPUT-STREAM";
focal_class.type: String
focal_class.var_name: INPUT_STREAM
focal_class.declarator: logger                              = LoggerFactory.getLogger ( VSensorLoader.class )
focal_class.modifier: private static transient
focal_class.original_string: private static transient Logger                                logger                              = LoggerFactory.getLogger ( VSensorLoader.class );
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: activeWrappers                   = new ArrayList< AbstractWrapper >( )
focal_class.modifier: private  final
focal_class.original_string: private  final List < AbstractWrapper > activeWrappers                   = new ArrayList< AbstractWrapper >( );
focal_class.type: List < AbstractWrapper >
focal_class.var_name: activeWrappers
focal_class.declarator: pluginsDir
focal_class.modifier: private
focal_class.original_string: private String                                                 pluginsDir;
focal_class.type: String
focal_class.var_name: pluginsDir
focal_class.declarator: isActive                              = true
focal_class.modifier: private
focal_class.original_string: private boolean                                                isActive                              = true;
focal_class.type: boolean
focal_class.var_name: isActive
focal_class.declarator: VSENSOR_LOADER_THREAD_COUNTER       = 0
focal_class.modifier: private static
focal_class.original_string: private static int                                             VSENSOR_LOADER_THREAD_COUNTER       = 0;
focal_class.type: int
focal_class.var_name: VSENSOR_LOADER_THREAD_COUNTER
focal_class.declarator: singleton = null
focal_class.modifier: private static
focal_class.original_string: private static VSensorLoader singleton = null;
focal_class.type: VSensorLoader
focal_class.var_name: singleton
focal_class.declarator: changeListeners = new ArrayList<VSensorStateChangeListener>()
focal_class.modifier: private
focal_class.original_string: private ArrayList<VSensorStateChangeListener> changeListeners = new ArrayList<VSensorStateChangeListener>();
focal_class.type: ArrayList<VSensorStateChangeListener>
focal_class.var_name: changeListeners
focal_class.file: modules/x-gsn/src/main/java/org/openiot/gsn/VSensorLoader.java
focal_class.identifier: VSensorLoader
focal_class.class_method_signature: VSensorLoader.addVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.full_signature: public void addVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.identifier: addVSensorStateChangeListener
focal_class.modifiers: public
focal_class.parameters: (VSensorStateChangeListener listener)
focal_class.return: void
focal_class.signature: void addVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.class_method_signature: VSensorLoader.removeVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.full_signature: public void removeVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.identifier: removeVSensorStateChangeListener
focal_class.modifiers: public
focal_class.parameters: (VSensorStateChangeListener listener)
focal_class.return: void
focal_class.signature: void removeVSensorStateChangeListener(VSensorStateChangeListener listener)
focal_class.class_method_signature: VSensorLoader.fireVSensorLoading(VSensorConfig config)
focal_class.full_signature: public boolean fireVSensorLoading(VSensorConfig config)
focal_class.identifier: fireVSensorLoading
focal_class.modifiers: public
focal_class.parameters: (VSensorConfig config)
focal_class.return: boolean
focal_class.signature: boolean fireVSensorLoading(VSensorConfig config)
focal_class.class_method_signature: VSensorLoader.fireVSensorUnLoading(VSensorConfig config)
focal_class.full_signature: public boolean fireVSensorUnLoading(VSensorConfig config)
focal_class.identifier: fireVSensorUnLoading
focal_class.modifiers: public
focal_class.parameters: (VSensorConfig config)
focal_class.return: boolean
focal_class.signature: boolean fireVSensorUnLoading(VSensorConfig config)
focal_class.class_method_signature: VSensorLoader.VSensorLoader()
focal_class.full_signature: public  VSensorLoader()
focal_class.identifier: VSensorLoader
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  VSensorLoader()
focal_class.class_method_signature: VSensorLoader.VSensorLoader( String pluginsPath )
focal_class.full_signature: public  VSensorLoader( String pluginsPath )
focal_class.identifier: VSensorLoader
focal_class.modifiers: public
focal_class.parameters: ( String pluginsPath )
focal_class.signature:  VSensorLoader( String pluginsPath )
focal_class.class_method_signature: VSensorLoader.getInstance(String path)
focal_class.full_signature: public static VSensorLoader getInstance(String path)
focal_class.identifier: getInstance
focal_class.modifiers: public static
focal_class.parameters: (String path)
focal_class.return: VSensorLoader
focal_class.signature: VSensorLoader getInstance(String path)
focal_class.class_method_signature: VSensorLoader.startLoading()
focal_class.full_signature: public void startLoading()
focal_class.identifier: startLoading
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startLoading()
focal_class.class_method_signature: VSensorLoader.run( )
focal_class.full_signature: public void run( )
focal_class.identifier: run
focal_class.modifiers: public
focal_class.parameters: ( )
focal_class.return: void
focal_class.signature: void run( )
focal_class.class_method_signature: VSensorLoader.loadVirtualSensor(String vsConfigurationFileContent, String fileName)
focal_class.full_signature: public void loadVirtualSensor(String vsConfigurationFileContent, String fileName)
focal_class.identifier: loadVirtualSensor
focal_class.modifiers: public
focal_class.parameters: (String vsConfigurationFileContent, String fileName)
focal_class.return: void
focal_class.signature: void loadVirtualSensor(String vsConfigurationFileContent, String fileName)
focal_class.class_method_signature: VSensorLoader.buildVSensorConfig(String fileContent)
focal_class.full_signature: private VSensorConfig buildVSensorConfig(String fileContent)
focal_class.identifier: buildVSensorConfig
focal_class.modifiers: private
focal_class.parameters: (String fileContent)
focal_class.return: VSensorConfig
focal_class.signature: VSensorConfig buildVSensorConfig(String fileContent)
focal_class.class_method_signature: VSensorLoader.getVSConfigurationFilePath(String fileName)
focal_class.full_signature: public static String getVSConfigurationFilePath(String fileName)
focal_class.identifier: getVSConfigurationFilePath
focal_class.modifiers: public static
focal_class.parameters: (String fileName)
focal_class.return: String
focal_class.signature: String getVSConfigurationFilePath(String fileName)
focal_class.class_method_signature: VSensorLoader.loadPlugin()
focal_class.full_signature: public synchronized void loadPlugin()
focal_class.identifier: loadPlugin
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadPlugin()
focal_class.class_method_signature: VSensorLoader.loadPlugin(String fileFilterName)
focal_class.full_signature: public synchronized boolean loadPlugin(String fileFilterName)
focal_class.identifier: loadPlugin
focal_class.modifiers: public synchronized
focal_class.parameters: (String fileFilterName)
focal_class.return: boolean
focal_class.signature: boolean loadPlugin(String fileFilterName)
focal_class.class_method_signature: VSensorLoader.loadPlugin(VSensorConfig vs)
focal_class.full_signature: private synchronized boolean loadPlugin(VSensorConfig vs)
focal_class.identifier: loadPlugin
focal_class.modifiers: private synchronized
focal_class.parameters: (VSensorConfig vs)
focal_class.return: boolean
focal_class.signature: boolean loadPlugin(VSensorConfig vs)
focal_class.class_method_signature: VSensorLoader.removeVirtualSensor(VSensorConfig configFile)
focal_class.full_signature: private void removeVirtualSensor(VSensorConfig configFile)
focal_class.identifier: removeVirtualSensor
focal_class.modifiers: private
focal_class.parameters: (VSensorConfig configFile)
focal_class.return: void
focal_class.signature: void removeVirtualSensor(VSensorConfig configFile)
focal_class.class_method_signature: VSensorLoader.isVirtualSensorValid(VSensorConfig configuration)
focal_class.full_signature: public boolean isVirtualSensorValid(VSensorConfig configuration)
focal_class.identifier: isVirtualSensorValid
focal_class.modifiers: public
focal_class.parameters: (VSensorConfig configuration)
focal_class.return: boolean
focal_class.signature: boolean isVirtualSensorValid(VSensorConfig configuration)
focal_class.class_method_signature: VSensorLoader.isValidJavaIdentifier(final String name)
focal_class.full_signature: static protected boolean isValidJavaIdentifier(final String name)
focal_class.identifier: isValidJavaIdentifier
focal_class.modifiers: static protected
focal_class.parameters: (final String name)
focal_class.return: boolean
focal_class.signature: boolean isValidJavaIdentifier(final String name)
focal_class.class_method_signature: VSensorLoader.removeAllVSResources( VirtualSensor pool )
focal_class.full_signature: public void removeAllVSResources( VirtualSensor pool )
focal_class.identifier: removeAllVSResources
focal_class.modifiers: public
focal_class.parameters: ( VirtualSensor pool )
focal_class.return: void
focal_class.signature: void removeAllVSResources( VirtualSensor pool )
focal_class.class_method_signature: VSensorLoader.releaseStreamSource(StreamSource streamSource)
focal_class.full_signature: public void releaseStreamSource(StreamSource streamSource)
focal_class.identifier: releaseStreamSource
focal_class.modifiers: public
focal_class.parameters: (StreamSource streamSource)
focal_class.return: void
focal_class.signature: void releaseStreamSource(StreamSource streamSource)
focal_class.class_method_signature: VSensorLoader.getUpdateStatus(String virtualSensorsPath)
focal_class.full_signature: public static Modifications getUpdateStatus(String virtualSensorsPath)
focal_class.identifier: getUpdateStatus
focal_class.modifiers: public static
focal_class.parameters: (String virtualSensorsPath)
focal_class.return: Modifications
focal_class.signature: Modifications getUpdateStatus(String virtualSensorsPath)
focal_class.class_method_signature: VSensorLoader.getUpdateStatus(String virtualSensorsPath, String filterFileName)
focal_class.full_signature: public static Modifications getUpdateStatus(String virtualSensorsPath, String filterFileName)
focal_class.identifier: getUpdateStatus
focal_class.modifiers: public static
focal_class.parameters: (String virtualSensorsPath, String filterFileName)
focal_class.return: Modifications
focal_class.signature: Modifications getUpdateStatus(String virtualSensorsPath, String filterFileName)
focal_class.class_method_signature: VSensorLoader.createInputStreams( VirtualSensor pool )
focal_class.full_signature: public boolean createInputStreams( VirtualSensor pool )
focal_class.identifier: createInputStreams
focal_class.modifiers: public
focal_class.parameters: ( VirtualSensor pool )
focal_class.return: boolean
focal_class.signature: boolean createInputStreams( VirtualSensor pool )
focal_class.class_method_signature: VSensorLoader.findWrapper(AddressBean addressBean)
focal_class.full_signature: public AbstractWrapper findWrapper(AddressBean addressBean)
focal_class.identifier: findWrapper
focal_class.modifiers: public
focal_class.parameters: (AddressBean addressBean)
focal_class.return: AbstractWrapper
focal_class.signature: AbstractWrapper findWrapper(AddressBean addressBean)
focal_class.class_method_signature: VSensorLoader.prepareStreamSource( VSensorConfig vsensorConfig,InputStream inputStream , StreamSource streamSource  )
focal_class.full_signature: public boolean prepareStreamSource( VSensorConfig vsensorConfig,InputStream inputStream , StreamSource streamSource  )
focal_class.identifier: prepareStreamSource
focal_class.modifiers: public
focal_class.parameters: ( VSensorConfig vsensorConfig,InputStream inputStream , StreamSource streamSource  )
focal_class.return: boolean
focal_class.signature: boolean prepareStreamSource( VSensorConfig vsensorConfig,InputStream inputStream , StreamSource streamSource  )
focal_class.class_method_signature: VSensorLoader.prepareStreamSource( StreamSource streamSource ,DataField[] outputformat, AbstractWrapper wrapper )
focal_class.full_signature: public boolean prepareStreamSource( StreamSource streamSource ,DataField[] outputformat, AbstractWrapper wrapper )
focal_class.identifier: prepareStreamSource
focal_class.modifiers: public
focal_class.parameters: ( StreamSource streamSource ,DataField[] outputformat, AbstractWrapper wrapper )
focal_class.return: boolean
focal_class.signature: boolean prepareStreamSource( StreamSource streamSource ,DataField[] outputformat, AbstractWrapper wrapper )
focal_class.class_method_signature: VSensorLoader.stopLoading( )
focal_class.full_signature: public void stopLoading( )
focal_class.identifier: stopLoading
focal_class.modifiers: public
focal_class.parameters: ( )
focal_class.return: void
focal_class.signature: void stopLoading( )
focal_class.superclass: extends Thread
focal_method.body: public void releaseStreamSource(StreamSource streamSource) {
          final AbstractWrapper wrapper = streamSource.getWrapper ( );
          streamSource.getInputStream().getRenamingMapping().remove(streamSource.getAlias());
          try {
              wrapper.removeListener(streamSource);
          } catch (SQLException e) {
              logger.error(e.getMessage(),e);
              logger.error("Release the resources failed !");
          }
          if ( !wrapper.isActive()) {//This stream source is the only listener
              logger.debug("The wrapper:"+wrapper.getName()+" is removed.");
              activeWrappers.remove ( wrapper );
          }else {
              logger.debug("The wrapper:"+wrapper.getName()+" is not released as it is still used by other virtual sensors.");
          }
      }
focal_method.class_method_signature: VSensorLoader.releaseStreamSource(StreamSource streamSource)
focal_method.full_signature: public void releaseStreamSource(StreamSource streamSource)
focal_method.identifier: releaseStreamSource
focal_method.invocations: getWrapper remove getRenamingMapping getInputStream getAlias removeListener error getMessage error isActive debug getName remove debug getName
focal_method.modifiers: public
focal_method.parameters: (StreamSource streamSource)
focal_method.return: void
focal_method.signature: void releaseStreamSource(StreamSource streamSource)