Works like a charm. Thanks Jarl. public static void init(ARPluginContext context) { context.logMessage(context.getPluginInfo(), ARPluginContext.PLUGIN_LOG_LEVEL_INFO, "init() called - " + Thread.currentThread().getName()); }
public void initialize(ARPluginContext context) { context.logMessage(context.getPluginInfo(), ARPluginContext.PLUGIN_LOG_LEVEL_INFO, "initialize() called - " + Thread.currentThread().getName()); } [user@server log]$ cat PluginSvr-Main.log |grep 'init()' 2012-01-25 12:41:17,577 [main ] INFO - <PLUGIN>init() called - main [user@server log]$ cat PluginSvr-Main.log |grep 'initialize()' 2012-01-25 12:41:17,635 [pool-2-thread-3 ] INFO - <PLUGIN>initialize() called - pool-2-thread-3 2012-01-25 12:41:17,641 [pool-2-thread-1 ] INFO - <PLUGIN>initialize() called - pool-2-thread-1 2012-01-25 12:41:17,644 [pool-2-thread-6 ] INFO - <PLUGIN>initialize() called - pool-2-thread-6 2012-01-25 12:41:17,648 [pool-2-thread-9 ] INFO - <PLUGIN>initialize() called - pool-2-thread-9 2012-01-25 12:41:17,651 [pool-2-thread-2 ] INFO - <PLUGIN>initialize() called - pool-2-thread-2 2012-01-25 12:41:17,653 [pool-2-thread-5 ] INFO - <PLUGIN>initialize() called - pool-2-thread-5 2012-01-25 12:41:17,658 [pool-2-thread-10 ] INFO - <PLUGIN>initialize() called - pool-2-thread-10 2012-01-25 12:41:17,648 [pool-2-thread-4 ] INFO - <PLUGIN>initialize() called - pool-2-thread-4 2012-01-25 12:41:17,662 [pool-2-thread-7 ] INFO - <PLUGIN>initialize() called - pool-2-thread-7 2012-01-25 12:41:17,664 [pool-2-thread-8 ] INFO - <PLUGIN>initialize() called - pool-2-thread-8 On Wed, Jan 25, 2012 at 2:56 AM, Jarl Grøneng <jarl.gron...@gmail.com> wrote: > Hi, > > I'm quite sure this works like you want: > > > > public class FilterAPITest2 extends ARFilterAPIPlugin { > ... > ... > private static String username = null; > > public static void init(ARPluginContext context){ > context.logMessage(pluginInfo, > ARPluginContext.PLUGIN_LOG_LEVEL_DEBUG, "getConfigItem()"); > username = context.getConfigItem("username"); > } > ... > ... > } > > -- > J > > 2012/1/24 Axton <axton.gr...@gmail.com>: >> The ARFilterAPIPluggable Interface implements or inherits the following >> methods: >> >> filterAPICall >> initialize >> onEvent >> terminate >> >> I am trying to find the best way to initialize plugins where I have >> both static fields and instance fields in the classes that make up the >> plugin. I can easily use the initialize method to set the instance >> fields because initialize is called for each thread the plugin servers >> starts. This does not work so well with the static fields because all >> the different threads step on each other trying to write to the static >> fields. The static fields are good for things like reading a >> properties file into a Properties object (no need to read/store it 10 >> times). If I implement Runnable on the plugin class and add a log >> line to the initialize method: >> >> context.logMessage(context.getPluginInfo(), >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext.PLUGIN_LOG_LEVEL_INFO, >> "initialize called - " + Thread.currentThread().getName()); >> >> The logs show that initialize is called for every thread (10 in this case): >> >> 2012-01-24 14:20:51,516 [pool-2-thread-6 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-6 >> 2012-01-24 14:20:51,515 [pool-2-thread-5 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-5 >> 2012-01-24 14:20:51,536 [pool-2-thread-10 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-10 >> 2012-01-24 14:20:51,538 [pool-2-thread-8 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-8 >> 2012-01-24 14:20:51,557 [pool-2-thread-4 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-4 >> 2012-01-24 14:20:51,560 [pool-2-thread-3 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-3 >> 2012-01-24 14:20:51,562 [pool-2-thread-2 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-2 >> 2012-01-24 14:20:51,565 [pool-2-thread-7 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-7 >> 2012-01-24 14:20:51,568 [pool-2-thread-1 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-1 >> 2012-01-24 14:20:51,571 [pool-2-thread-9 ] INFO >> com.bmc.arsys.pluginsvr.plugins.ARPluginContext - <PLUGIN>initialize >> called - pool-2-thread-9 >> >> >> I can use the thread name to isolate these types of tasks to a single >> thread, but there are no guarantees this will work with the next >> release of ARS: >> >> if (Thread.currentThread().getName().endsWith("thread-1")) >> >> >> Is there a better way to achieve this? >> >> The C based plugin framework provides functions to address this need: >> * ARPluginCreateInstance >> * ARPluginDeleteInstance >> ARPluginEvent >> ARPluginIdentify >> * ARPluginInitialization >> ARPluginSetProperties >> * ARPluginTermination >> >> But these seem to be missing from the Java implementation. >> >> Thanks, >> Axton Grams >> >> _______________________________________________________________________________ >> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org >> attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" > > _______________________________________________________________________________ > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org > attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"