You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/09/01 23:03:13 UTC

svn commit: r691061 - in /james/jsieve/trunk/src: main/java/org/apache/jsieve/ test/java/org/apache/jsieve/ test/java/org/apache/jsieve/junit/ test/java/org/apache/jsieve/junit/utils/ test/java/org/apache/jsieve/util/check/

Author: rdonkin
Date: Mon Sep  1 14:03:12 2008
New Revision: 691061

URL: http://svn.apache.org/viewvc?rev=691061&view=rev
Log:
SieveFactory is no longer a singleton. JSIEVE-31

Modified:
    james/jsieve/trunk/src/main/java/org/apache/jsieve/ConfigurationManager.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/ConfigurationManagerTest.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/utils/JUnitUtils.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/util/check/ScriptChecker.java

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/ConfigurationManager.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/ConfigurationManager.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/ConfigurationManager.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/ConfigurationManager.java Mon Sep  1 14:03:12 2008
@@ -53,11 +53,6 @@
     private static final String COMPARATORSMAP_PROPERTIES = "org/apache/jsieve/comparatorsmap.properties";
 
     /**
-     * The sole instance of the receiver.
-     */
-    static private ConfigurationManager fieldInstance;
-
-    /**
      * A Map of the Command names and their associated class names.
      */
     private Map fieldCommandMap;
@@ -72,16 +67,14 @@
      */
     private Map fieldComparatorMap;
 
-    //TODO: Temporary fix to allow Logger to be deleted
-    //TODO: inject
-    public static final Log log = LogFactory.getLog(ConditionManager.class);
+    private static final Log log = LogFactory.getLog("org.apache.jsieve");
     
     /**
      * Constructor for ConfigurationManager.
      * 
      * @throws SieveConfigurationException
      */
-    private ConfigurationManager() throws SieveConfigurationException {
+    public ConfigurationManager() throws SieveConfigurationException {
         super();
         try {
             parse();
@@ -95,59 +88,7 @@
             throw new SieveConfigurationException(e);
         }
     }
-
-    /**
-     * Returns the sole instance of the receiver, lazily initialised if
-     * required.
-     * 
-     * @return ConfigurationManager
-     */
-    static public synchronized ConfigurationManager getInstance()
-            throws SieveConfigurationException {
-        ConfigurationManager instance = null;
-        if (null == (instance = getInstanceBasic())) {
-            updateInstance();
-            return getInstance();
-        }
-        return instance;
-    }
-
-    /**
-     * Returns the sole instance of the receiver.
-     * 
-     * @return ConfigurationManager
-     */
-    static private ConfigurationManager getInstanceBasic() {
-        return fieldInstance;
-    }
-
-    /**
-     * Returns a new instance of the receiver.
-     * 
-     * @return ConfigurationManager
-     */
-    static protected ConfigurationManager computeInstance()
-            throws SieveConfigurationException {
-        return new ConfigurationManager();
-    }
-
-    /**
-     * Sets the instance.
-     * 
-     * @param instance
-     *                The instance to set
-     */
-    static protected void setInstance(ConfigurationManager instance) {
-        fieldInstance = instance;
-    }
-
-    /**
-     * Updates the instance.
-     */
-    static protected void updateInstance() throws SieveConfigurationException {
-        setInstance(computeInstance());
-    }
-
+    
     /**
      * <p>
      * Method getConfigStream answers an InputStream over the Sieve
@@ -163,7 +104,7 @@
      * @return InputStream
      * @throws IOException
      */
-    static protected InputStream getConfigStream(String configName) throws IOException {
+    private InputStream getConfigStream(String configName) throws IOException {
         InputStream stream = null;
         // Context classloader is usually right in a JEE evironment
         final ClassLoader contextClassLoader = Thread.currentThread()
@@ -190,7 +131,7 @@
      * 
      * @return Map
      */
-    public synchronized Map getCommandMap() {
+    public Map getCommandMap() {
         if (null == fieldCommandMap) {
             fieldCommandMap = new HashMap();
         }
@@ -203,7 +144,7 @@
      * 
      * @return Map
      */
-    public synchronized Map getTestMap() {
+    public Map getTestMap() {
         if (null == fieldTestMap) {
             fieldTestMap = new HashMap();
         }
@@ -216,7 +157,7 @@
      * 
      * @return Map
      */
-    public synchronized Map getComparatorMap() {
+    public Map getComparatorMap() {
         if (null == fieldComparatorMap) {
             fieldComparatorMap = new HashMap();
         }
@@ -230,7 +171,7 @@
      * @throws SAXException
      * @throws IOException
      */
-    protected void parse() throws SAXException, IOException {
+    private void parse() throws SAXException, IOException {
         InputStream is;
         Properties p;
         is = getConfigStream(COMMANDSMAP_PROPERTIES);
@@ -253,7 +194,7 @@
      * @param commandMap
      *                The commandMap to set
      */
-    protected synchronized void setCommandMap(Map commandMap) {
+    private void setCommandMap(Map commandMap) {
         fieldCommandMap = commandMap;
     }
 
@@ -263,7 +204,7 @@
      * @param testMap
      *                The testMap to set
      */
-    protected synchronized void setTestMap(Map testMap) {
+    private void setTestMap(Map testMap) {
         fieldTestMap = testMap;
     }
 
@@ -273,7 +214,7 @@
      * @param comparatorMap
      *                The comparatorMap to set
      */
-    protected synchronized void setComparatorMap(Map comparatorMap) {
+    private void setComparatorMap(Map comparatorMap) {
         fieldComparatorMap = comparatorMap;
     }
     
@@ -288,4 +229,8 @@
     public TestManager getTestManager() {
         return new TestManagerImpl(fieldTestMap);
     }
+    
+    public Log getLog() {
+        return log;
+    }
 }

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java Mon Sep  1 14:03:12 2008
@@ -59,11 +59,21 @@
  */
 public class SieveFactory {
 
+    private final CommandManager commandManager;
+    private final ComparatorManager comparatorManager;
+    private final TestManager testManager;
+    private final Log log;
+    
     /**
      * Constructor for SieveFactory.
      */
-    public SieveFactory() {
+    public SieveFactory(final CommandManager commandManager, final ComparatorManager comparatorManager,
+            final TestManager testManager, final Log log) {
         super();
+        this.commandManager = commandManager;
+        this.comparatorManager = comparatorManager;
+        this.testManager = testManager;
+        this.log = log;
     }
 
     /**
@@ -80,20 +90,16 @@
     public Node parse(InputStream inputStream) throws ParseException {
         try {
             final SimpleNode node = new SieveParser(inputStream, "UTF-8").start();
-            final CommandManager commandManager = ConfigurationManager.getInstance().getCommandManager();
-            final TestManager testManager = ConfigurationManager.getInstance().getTestManager();
             SieveValidationVisitor visitor = new SieveValidationVisitor(commandManager, testManager);
             node.jjtAccept(visitor, null);
             return node;
         } catch (ParseException ex) {
-            Log log = ConfigurationManager.log;
             if (log.isErrorEnabled())
                 log.error("Parse failed. Reason: " + ex.getMessage());
             if (log.isDebugEnabled())
                 log.debug("Parse failed.", ex);
             throw ex;
         } catch (SieveException ex) {
-            Log log = ConfigurationManager.log;
             if (log.isErrorEnabled())
                 log.error("Parse failed. Reason: " + ex.getMessage());
             if (log.isDebugEnabled())
@@ -124,10 +130,6 @@
      */
     public void evaluate(MailAdapter mail, Node startNode)
             throws SieveException {
-        final CommandManager commandManager = ConfigurationManager.getInstance().getCommandManager();
-        final ComparatorManager comparatorManager = ConfigurationManager.getInstance().getComparatorManager();
-        final TestManager testManager = ConfigurationManager.getInstance().getTestManager();
-        final Log log = ConfigurationManager.log;
         SieveContext context = new BaseSieveContext(commandManager, comparatorManager, testManager, log);
         SieveParserVisitor visitor = new SieveParserVisitorImpl(context);
         try {

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java Mon Sep  1 14:03:12 2008
@@ -35,8 +35,9 @@
     
     protected void setUp() throws Exception {
         super.setUp();
-        visitor = new SieveParserVisitorImpl(new BaseSieveContext(ConfigurationManager.getInstance().getCommandManager(), ConfigurationManager.getInstance().getComparatorManager(),
-                ConfigurationManager.getInstance().getTestManager(), LogFactory.getLog(SieveParserVisitorImplQuoteTest.class)));
+        final ConfigurationManager configurationManager = new ConfigurationManager();
+        visitor = new SieveParserVisitorImpl(new BaseSieveContext(configurationManager.getCommandManager(), configurationManager.getComparatorManager(),
+                configurationManager.getTestManager(), LogFactory.getLog(SieveParserVisitorImplQuoteTest.class)));
         data = new ArrayList();
         node = new ASTstring(100);
     }

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java Mon Sep  1 14:03:12 2008
@@ -40,8 +40,9 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        context = new BaseSieveContext(ConfigurationManager.getInstance().getCommandManager(), ConfigurationManager.getInstance().getComparatorManager(), 
-                ConfigurationManager.getInstance().getTestManager(),
+        ConfigurationManager configurationManager = new ConfigurationManager();
+        context = new BaseSieveContext(configurationManager.getCommandManager(), configurationManager.getComparatorManager(), 
+                configurationManager.getTestManager(),
                 LogFactory.getLog(AddressParseTest.class));
         mail = (SieveMailAdapter) JUnitUtils.createMail();
         address = new OpenedAddress();

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/ConfigurationManagerTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/ConfigurationManagerTest.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/ConfigurationManagerTest.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/ConfigurationManagerTest.java Mon Sep  1 14:03:12 2008
@@ -85,7 +85,7 @@
 
         boolean isTestPassed = false;
         try {
-            Map commandMap = ConfigurationManager.getInstance().getCommandMap();
+            Map commandMap = new ConfigurationManager().getCommandMap();
 
             Iterator mapIter = map.entrySet().iterator();
             while (mapIter.hasNext()) {
@@ -124,7 +124,7 @@
 
         boolean isTestPassed = false;
         try {
-            Map testMap = ConfigurationManager.getInstance().getTestMap();
+            Map testMap = new ConfigurationManager().getTestMap();
 
             Iterator mapIter = map.entrySet().iterator();
             while (mapIter.hasNext()) {
@@ -155,8 +155,7 @@
 
         boolean isTestPassed = false;
         try {
-            Map comparatorMap = ConfigurationManager.getInstance()
-                    .getComparatorMap();
+            Map comparatorMap = new ConfigurationManager().getComparatorMap();
 
             Iterator mapIter = map.entrySet().iterator();
             while (mapIter.hasNext()) {

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/utils/JUnitUtils.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/utils/JUnitUtils.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/utils/JUnitUtils.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/utils/JUnitUtils.java Mon Sep  1 14:03:12 2008
@@ -26,6 +26,7 @@
 import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.jsieve.ConfigurationManager;
 import org.apache.jsieve.SieveFactory;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.mail.MailAdapter;
@@ -46,7 +47,9 @@
     static public void interpret(MailAdapter mail, String script)
         throws SieveException, ParseException
     {
-        new SieveFactory().interpret(
+        ConfigurationManager configuration = new ConfigurationManager();
+        new SieveFactory(configuration.getCommandManager(), configuration.getComparatorManager(),
+                configuration.getTestManager(), configuration.getLog()).interpret(
             mail,
             new ByteArrayInputStream(script.getBytes()));
     }
@@ -61,7 +64,9 @@
     static public void parse(String script)
         throws SieveException, ParseException
     {
-        new SieveFactory().parse(
+        ConfigurationManager configuration = new ConfigurationManager();
+        new SieveFactory(configuration.getCommandManager(), configuration.getComparatorManager(),
+                configuration.getTestManager(), configuration.getLog()).parse(
             new ByteArrayInputStream(script.getBytes()));
     }
     

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/util/check/ScriptChecker.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/util/check/ScriptChecker.java?rev=691061&r1=691060&r2=691061&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/util/check/ScriptChecker.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/util/check/ScriptChecker.java Mon Sep  1 14:03:12 2008
@@ -28,6 +28,7 @@
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.jsieve.ConfigurationManager;
 import org.apache.jsieve.SieveFactory;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.mail.ActionFileInto;
@@ -85,7 +86,9 @@
         adapter.setMail(mimeMessage);
         Results results;
         try {
-            new SieveFactory().interpret(adapter, script);
+            ConfigurationManager configuration = new ConfigurationManager();
+            new SieveFactory(configuration.getCommandManager(), configuration.getComparatorManager(),
+                    configuration.getTestManager(), configuration.getLog()).interpret(adapter, script);
             final List executedActions = adapter.getExecutedActions();
             results = new Results(executedActions);
         } catch (ParseException e) {



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org