]> git.mxchange.org Git - hub.git/commitdiff
News Updated, filters renamed/commented:
authorRoland Häder <roland@mxchange.org>
Mon, 3 Aug 2009 23:11:43 +0000 (23:11 +0000)
committerRoland Häder <roland@mxchange.org>
Mon, 3 Aug 2009 23:11:43 +0000 (23:11 +0000)
- NEWS file updated to reflact some latest changes
- Filters for newly added 'shutdown' filter chain added
- The main while() loop is commented out, which is fine at the momement
- Some filter class templates renamed
- Filter chain 'hub_activation' renamed to 'activation'

24 files changed:
.gitattributes
application/hub/class_ApplicationHelper.php
application/hub/config.php
application/hub/main/commands/console/class_HubConsoleMainCommand.php
application/hub/main/controller/console/class_HubConsoleDefaultNewsController.php
application/hub/main/filter/activation/class_ [deleted file]
application/hub/main/filter/activation/class_HubActivation [new file with mode: 0644]
application/hub/main/filter/bootstrap/class_ [deleted file]
application/hub/main/filter/bootstrap/class_HubBootstrap [new file with mode: 0644]
application/hub/main/filter/bootstrap/class_HubBootstrapAquireHubIdFilter.php
application/hub/main/filter/bootstrap/class_HubBootstrapExtraBootstrappingFilter.php
application/hub/main/filter/bootstrap/class_HubBootstrapGenSessionIdFilter.php
application/hub/main/filter/bootstrap/class_HubBootstrapInitQueuesFilter.php
application/hub/main/filter/bootstrap/class_HubBootstrapListenerPoolFilter.php
application/hub/main/filter/bootstrap/class_HubBootstrapRestoreNodeListFilter.php
application/hub/main/filter/class_
application/hub/main/filter/console/class_Console
application/hub/main/filter/console/class_ConsoleWelcomeTeaserFilter.php
application/hub/main/filter/shutdown/.htaccess [new file with mode: 0644]
application/hub/main/filter/shutdown/class_HubShutdown [new file with mode: 0644]
application/hub/main/filter/shutdown/class_HubShutdownFlushNodeListFilter.php [new file with mode: 0644]
application/hub/main/filter/shutdown/class_HubShutdownShutdownNodeFilter.php [new file with mode: 0644]
application/hub/main/pools/listener/class_DefaultListenerPool.php
docs/NEWS

index 2888cdc48418ba5635c10a6d9097bd518d808ca5..093115c13f367070dc9297ebddad84d721af9746 100644 (file)
@@ -60,9 +60,9 @@ application/hub/main/database/wrapper/class_NodeInformationDatabaseWrapper.php -
 application/hub/main/database/wrapper/class_NodeListDatabaseWrapper.php -text
 application/hub/main/filter/.htaccess -text
 application/hub/main/filter/activation/.htaccess -text
-application/hub/main/filter/activation/class_ -text
+application/hub/main/filter/activation/class_HubActivation -text
 application/hub/main/filter/bootstrap/.htaccess -text
-application/hub/main/filter/bootstrap/class_ -text
+application/hub/main/filter/bootstrap/class_HubBootstrap -text
 application/hub/main/filter/bootstrap/class_HubBootstrapAquireHubIdFilter.php -text
 application/hub/main/filter/bootstrap/class_HubBootstrapExtraBootstrappingFilter.php -text
 application/hub/main/filter/bootstrap/class_HubBootstrapGenSessionIdFilter.php -text
@@ -76,6 +76,10 @@ application/hub/main/filter/console/class_ConsoleWelcomeTeaserFilter.php -text
 application/hub/main/filter/node/.htaccess -text
 application/hub/main/filter/node/class_Node -text
 application/hub/main/filter/node/class_NodeInitializationFilter.php -text
+application/hub/main/filter/shutdown/.htaccess -text
+application/hub/main/filter/shutdown/class_HubShutdown -text
+application/hub/main/filter/shutdown/class_HubShutdownFlushNodeListFilter.php -text
+application/hub/main/filter/shutdown/class_HubShutdownShutdownNodeFilter.php -text
 application/hub/main/listener/.htaccess -text
 application/hub/main/listener/class_ -text
 application/hub/main/listener/class_BaseListener.php -text
index 61afb7bf97e014d46ff6f632db75d08c3cb1f453..74f32fea9924a7a91fe436fe57fcb2da312291cf 100644 (file)
@@ -208,8 +208,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica
                // -------------------------- Shutdown phase --------------------------
                // Shutting down the hub by saying "good bye" to all connected clients
                // and other hubs, flushing all queues and caches.
-               $this->controllerInstance->executeShutdownFilters($requestInstance, $responseInstance);
-               //$nodeInstance->doShutdown();
+               $this->getControllerInstance()->executeShutdownFilters($requestInstance, $responseInstance);
        }
 
        /**
index 075390038e073fb81fb69305df02c51c138914f6..9779811228aa69c3435f706bdd4afce4e5b92c35 100644 (file)
@@ -123,6 +123,12 @@ $cfg->setConfigEntry('hub_bootstrap_extra_bootstrap_filter', 'HubBootstrapExtraB
 // CFG: HUB-BOOTSTRAP-LISTENER-POOL-FILTER
 $cfg->setConfigEntry('hub_bootstrap_listener_pool_filter', 'HubBootstrapListenerPoolFilter');
 
+// CFG: HUB-SHUTDOWN-FLUSH-NODE-LIST-FILTER
+$cfg->setConfigEntry('hub_shutdown_flush_node_list_filter', 'HubShutdownFlushNodeListFilter');
+
+// CFG: HUB-SHUTDOWN-SHUTDOWN-NODE-FILTER
+$cfg->setConfigEntry('hub_shutdown_shutdown_node_filter', 'HubShutdownShutdownNodeFilter');
+
 // CFG: NEWS-READER-CLASS
 $cfg->setConfigEntry('news_reader_class', 'ConsoleNewsReader');
 
index 996298827186cb56fb61a084001de5554ef0c590..13bec9ac151f955167a25311785a7679c1688260 100644 (file)
@@ -98,8 +98,8 @@ class HubConsoleMainCommand extends BaseCommand implements Commandable {
                // This is the main loop. Queried calls should come back here very fast
                // so the whole application runs on nice speed. This while-loop goes
                // until the hub is no longer active.
-               while ($nodeInstance->isHubActive()) {
-               } // END - while
+               //while ($nodeInstance->isHubActive()) {
+               //} // END - while
        }
 
        /**
@@ -124,6 +124,10 @@ class HubConsoleMainCommand extends BaseCommand implements Commandable {
                $controllerInstance->addBootstrapFilter(ObjectFactory::createObjectByConfiguredName('hub_bootstrap_listener_pool_filter'));
 
                // Add hub activation filters
+
+               // Add shutdown filters
+               $controllerInstance->addShutdownFilter(ObjectFactory::createObjectByConfiguredName('hub_shutdown_flush_node_list_filter'));
+               $controllerInstance->addShutdownFilter(ObjectFactory::createObjectByConfiguredName('hub_shutdown_shutdown_node_filter'));
        }
 }
 
index ed9fbe8bed835f1403b9f4635ddf562605b4a920..9c2068eb62b82291a8db729528ce26888a82a877 100644 (file)
@@ -31,9 +31,10 @@ class HubConsoleDefaultNewsController extends BaseController implements Controll
                // Call parent constructor
                parent::__construct(__CLASS__);
 
-               // Init additional filter groups
-               $this->initFilterChain('bootstrap');
-               $this->initFilterChain('hub_activation');
+               // Init additional filter chains
+               foreach (array('bootstrap', 'activation', 'shutdown') as $filterChain) {
+                       $this->initFilterChain($filterChain);
+               } // END - foreach
        }
 
        /**
@@ -115,7 +116,7 @@ class HubConsoleDefaultNewsController extends BaseController implements Controll
         * @return      void
         */
        public function addHubActivationFilter (Filterable $filterInstance) {
-               $this->addFilter('hub_activation', $filterInstance);
+               $this->addFilter('activation', $filterInstance);
        }
 
        /**
@@ -126,7 +127,28 @@ class HubConsoleDefaultNewsController extends BaseController implements Controll
         * @return      void
         */
        public function executeHubActivationFilters (Requestable $requestInstance, Responseable $responseInstance) {
-               $this->executeFilters('hub_activation', $requestInstance, $responseInstance);
+               $this->executeFilters('activation', $requestInstance, $responseInstance);
+       }
+
+       /**
+        * Add a shutdown filter
+        *
+        * @param       $filterInstance         A Filterable class
+        * @return      void
+        */
+       public function addShutdownFilter (Filterable $filterInstance) {
+               $this->addFilter('shutdown', $filterInstance);
+       }
+
+       /**
+        * Executes all shutdown filters
+        *
+        * @param       $requestInstance        A Requestable class
+        * @param       $responseInstance       A Responseable class
+        * @return      void
+        */
+       public function executeShutdownFilters (Requestable $requestInstance, Responseable $responseInstance) {
+               $this->executeFilters('shutdown', $requestInstance, $responseInstance);
        }
 }
 
diff --git a/application/hub/main/filter/activation/class_ b/application/hub/main/filter/activation/class_
deleted file mode 100644 (file)
index eae234f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * A ??? filter for hub activation
- *
- * @author             Roland Haeder <webmaster@ship-simu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class HubActivation???Filter extends BaseFilter implements Filterable {
-       /**
-        * Protected constructor
-        *
-        * @return      void
-        */
-       protected function __construct () {
-               // Call parent constructor
-               parent::__construct(__CLASS__);
-       }
-
-       /**
-        * Creates an instance of this filter class
-        *
-        * @return      $filterInstance         An instance of this filter class
-        */
-       public final static function createHubActivation???Filter () {
-               // Get a new instance
-               $filterInstance = new HubActivation???Filter();
-
-               // Return the instance
-               return $filterInstance;
-       }
-
-       /**
-        * Executes the filter with given request and response objects
-        *
-        * @param       $requestInstance        An instance of a class with an Requestable interface
-        * @param       $responseInstance       An instance of a class with an Responseable interface
-        * @return      void
-        * @todo        0% done
-        */
-       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
-               // Get node instance
-               $nodeInstance = Registry::getRegistry()->getInstance('node');
-
-               // Sanity-check on it
-               if (is_null($nodeInstance)) {
-                       // Throws a FilterChainException to stop further processing
-                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
-               } // END - if
-
-               // Now do something
-               $this->partialStub('Please implement this step.');
-       }
-}
-
-// [EOF]
-?>
diff --git a/application/hub/main/filter/activation/class_HubActivation b/application/hub/main/filter/activation/class_HubActivation
new file mode 100644 (file)
index 0000000..5c3d3dd
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * A ??? filter for hub activation
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubActivation???Filter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubActivation???Filter () {
+               // Get a new instance
+               $filterInstance = new HubActivation???Filter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/filter/bootstrap/class_ b/application/hub/main/filter/bootstrap/class_
deleted file mode 100644 (file)
index 25b2ee3..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * A ??? filter for bootstrapping
- *
- * @author             Roland Haeder <webmaster@ship-simu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class HubBootstrap???Filter extends BaseFilter implements Filterable {
-       /**
-        * Protected constructor
-        *
-        * @return      void
-        */
-       protected function __construct () {
-               // Call parent constructor
-               parent::__construct(__CLASS__);
-       }
-
-       /**
-        * Creates an instance of this filter class
-        *
-        * @return      $filterInstance         An instance of this filter class
-        */
-       public final static function createHubBootstrap???Filter () {
-               // Get a new instance
-               $filterInstance = new HubBootstrap???Filter();
-
-               // Return the instance
-               return $filterInstance;
-       }
-
-       /**
-        * Executes the filter with given request and response objects
-        *
-        * @param       $requestInstance        An instance of a class with an Requestable interface
-        * @param       $responseInstance       An instance of a class with an Responseable interface
-        * @return      void
-        * @todo        0% done
-        */
-       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
-               // Get node instance
-               $nodeInstance = Registry::getRegistry()->getInstance('node');
-
-               // Sanity-check on it
-               if (is_null($nodeInstance)) {
-                       // Throws a FilterChainException to stop further processing
-                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
-               } // END - if
-
-               // Now do something
-               $this->partialStub('Please implement this step.');
-       }
-}
-
-// [EOF]
-?>
diff --git a/application/hub/main/filter/bootstrap/class_HubBootstrap b/application/hub/main/filter/bootstrap/class_HubBootstrap
new file mode 100644 (file)
index 0000000..25b2ee3
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * A ??? filter for bootstrapping
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubBootstrap???Filter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubBootstrap???Filter () {
+               // Get a new instance
+               $filterInstance = new HubBootstrap???Filter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
index 7d3fed1bb8fc1d9fa6a13da66794fb4d92e2b293..8046882d7e1927d221e781beccd6858ece45182e 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapAquireHubIdFilter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index 9c77572a10e79c8b477d49e72557cf7dcdaf57f1..ed47a082f67a1a109e923689bc9b9b518a68296a 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapExtraBootstrappingFilter extends BaseFilter implements Filtera
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index 7ebe0957f86dfec99e3dff02974f2c57479a0f00..62a8040b4ce132cb37ae8cbb991e629bef73d594 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapGenSessionIdFilter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index dff9651c64dc0d8c4f297038c395e1b7234aac53..27882b4c2e7365193dbaa87a92f2975faf5a309c 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapInitQueuesFilter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index c35aaef53a7d1b0eee6e2bc8a9d5334319a18995..b083bcb40fc60dc761e52d4ad4e2bb105bffed89 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapListenerPoolFilter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index 82ad3c92a0580a85ee90764e9d5bd573614e08ba..b889d2b373259439982988c9677ef829be48c0cb 100644 (file)
@@ -51,7 +51,7 @@ class HubBootstrapRestoreNodeListFilter extends BaseFilter implements Filterable
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @todo        0% done
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
index 405ba8ab8a1a7b4ef65bfa8c77d4c974954e17dc..382b6859d75ad5d628d89c17d30980bfc4da8446 100644 (file)
@@ -51,6 +51,7 @@ class Hub!!!???Filter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         * @todo        0% done
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
index 72f5657b2bb4846ec2507169fc43f4a82f2b0fd6..6d5c26efe27bc68f8da95f5001eb43647d096302 100644 (file)
@@ -51,6 +51,7 @@ class Console???Filter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         * @todo        0% done
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
index 7f65b323c7712a36f8e6f8679c819effa6915539..065be4bf24bf06c3b54212a3ab0fd4c3223ae97c 100644 (file)
@@ -51,7 +51,7 @@ class ConsoleWelcomeTeaserFilter extends BaseFilter implements Filterable {
         * @param       $requestInstance        An instance of a class with an Requestable interface
         * @param       $responseInstance       An instance of a class with an Responseable interface
         * @return      void
-        * @throws      FilterChainException    If the nodeInstance was not set
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
                // Get node instance
diff --git a/application/hub/main/filter/shutdown/.htaccess b/application/hub/main/filter/shutdown/.htaccess
new file mode 100644 (file)
index 0000000..2effffd
--- /dev/null
@@ -0,0 +1,2 @@
+Deny from all
+Deny from all
diff --git a/application/hub/main/filter/shutdown/class_HubShutdown b/application/hub/main/filter/shutdown/class_HubShutdown
new file mode 100644 (file)
index 0000000..4242121
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/**
+ * A ??? filter for shutting down the node.
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdown???Filter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdown???Filter () {
+               // Get a new instance
+               $filterInstance = new HubShutdown???Filter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
+<?php
+/**
+ * A ??? filter for shutting down the node.
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdown???Filter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdown???Filter () {
+               // Get a new instance
+               $filterInstance = new HubShutdown???Filter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException here)
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/filter/shutdown/class_HubShutdownFlushNodeListFilter.php b/application/hub/main/filter/shutdown/class_HubShutdownFlushNodeListFilter.php
new file mode 100644 (file)
index 0000000..bd1f1fc
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/**
+ * A FlushNodeList filter for shutting down the node.
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdownFlushNodeListFilter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdownFlushNodeListFilter () {
+               // Get a new instance
+               $filterInstance = new HubShutdownFlushNodeListFilter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException please)
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
+<?php
+/**
+ * A FlushNodeList filter for shutting down the node.
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdownFlushNodeListFilter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdownFlushNodeListFilter () {
+               // Get a new instance
+               $filterInstance = new HubShutdownFlushNodeListFilter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException please)
+        * @todo        0% done
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Now do something
+               $this->partialStub('Please implement this step.');
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/filter/shutdown/class_HubShutdownShutdownNodeFilter.php b/application/hub/main/filter/shutdown/class_HubShutdownShutdownNodeFilter.php
new file mode 100644 (file)
index 0000000..19246ba
--- /dev/null
@@ -0,0 +1,148 @@
+<?php
+/**
+ * A ShutdownNode filter for shutting down the node. This filter should be the
+ * last one in 'shutdown' chain so the hub is shutted down at the very end of
+ * its life... R.I.P. little hub...
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdownShutdownNodeFilter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdownShutdownNodeFilter () {
+               // Get a new instance
+               $filterInstance = new HubShutdownShutdownNodeFilter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException please)
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Shutdown the node. This should be the last line
+               $nodeInstance->doShutdown();
+       }
+}
+
+// [EOF]
+?>
+<?php
+/**
+ * A ShutdownNode filter for shutting down the node. This filter should be the
+ * last one in 'shutdown' chain so the hub is shutted down at the very end of
+ * its life... R.I.P. little hub...
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class HubShutdownShutdownNodeFilter extends BaseFilter implements Filterable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this filter class
+        *
+        * @return      $filterInstance         An instance of this filter class
+        */
+       public final static function createHubShutdownShutdownNodeFilter () {
+               // Get a new instance
+               $filterInstance = new HubShutdownShutdownNodeFilter();
+
+               // Return the instance
+               return $filterInstance;
+       }
+
+       /**
+        * Executes the filter with given request and response objects
+        *
+        * @param       $requestInstance        An instance of a class with an Requestable interface
+        * @param       $responseInstance       An instance of a class with an Responseable interface
+        * @return      void
+        * @throws      FilterChainException    If $nodeInstance is null (no NullPointerException please)
+        */
+       public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Get node instance
+               $nodeInstance = Registry::getRegistry()->getInstance('node');
+
+               // Sanity-check on it
+               if (is_null($nodeInstance)) {
+                       // Throws a FilterChainException to stop further processing
+                       throw new FilterChainException($this, self::EXCEPTION_FILTER_CHAIN_INTERCEPTED);
+               } // END - if
+
+               // Shutdown the node. This should be the last line
+               $nodeInstance->doShutdown();
+       }
+}
+
+// [EOF]
+?>
index c3d28b7f47ca2136c1acc39b5438a1a573ba2f1f..fce149e502d089873739c727f21097db4836d2c2 100644 (file)
@@ -45,9 +45,6 @@ class DefaultListenerPool extends BasePool implements PoolableListener {
                // Set the application instance
                $listenerInstance->setNodeInstance($nodeInstance);
 
-               // This is the last line before the return statement to output some debug output
-               $listenerInstance->debugOutput('POOL: ' . __CLASS__ . ': Initialization finished.');
-
                // Return the prepared instance
                return $listenerInstance;
        }
index c4eb118ad16a387167c8bb0e51942d668876d194..a1dc3cf19dc8fe1e8af429eed239553b15453c1c 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -1,6 +1,16 @@
 NEWS / ChangeLog
 ================
 
+[2009-08-03]
+------------
+- More debugging (and grep-able) output added
+- Complete rewrite of code to MVC & Intercepting Filter Pattern for flexible
+  code style.
+- Rewrite of LocalFileDatabase to generate the FQFN on a central place. Please
+  see generateFqfnFromDataSetInstance() for details
+- As of documentation the sesssion id is now stored in database (but will be
+  overwritten every time you relaunch the hub
+
 [2009-04-30]
 ------------
 - Detection of own IP address fixed (but might still be rewritten)