From: Michael J. Rubinsky Date: Fri, 22 Oct 2010 17:37:49 +0000 (-0400) Subject: Add factory binder for activesync classes X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=08208cf8e8556d856e14da0233b6dde3137f666f;p=horde.git Add factory binder for activesync classes --- diff --git a/framework/ActiveSync/package.xml b/framework/ActiveSync/package.xml index 802fff4a8..b583d6583 100644 --- a/framework/ActiveSync/package.xml +++ b/framework/ActiveSync/package.xml @@ -1,8 +1,5 @@ - + ActiveSync pear.horde.org Horde ActiveSync Server Library @@ -13,7 +10,8 @@ http://pear.php.net/dtd/package-2.0.xsd"> mrubinsk@horde.org yes - 2010-01-10 + 2010-10-22 + 0.1.0 0.1.0 @@ -27,61 +25,87 @@ http://pear.php.net/dtd/package-2.0.xsd"> * Initial release - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -100,38 +124,71 @@ http://pear.php.net/dtd/package-2.0.xsd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.1.0 + 0.1.0 + + + alpha + alpha + + 2010-10-22 + GPLv2 + +* Initial release + + + diff --git a/framework/Core/lib/Horde/Core/Factory/ActiveSyncBackend.php b/framework/Core/lib/Horde/Core/Factory/ActiveSyncBackend.php new file mode 100644 index 000000000..1b03ac111 --- /dev/null +++ b/framework/Core/lib/Horde/Core/Factory/ActiveSyncBackend.php @@ -0,0 +1,35 @@ +getInstance('Horde_Log_Logger'); + } + + // Backend driver and dependencies + $params['registry'] = $GLOBALS['registry']; + $driver_params = array( + 'connector' => new Horde_ActiveSync_Driver_Horde_Connector_Registry($params), + 'ping' => $conf['activesync']['ping'], + 'state_basic' => $injector->getInstance('Horde_ActiveSyncState'), + 'auth' => $injector->getInstance('Horde_Core_Factory_Auth')->create()); + if ($params['provisioning'] = $conf['activesync']['securitypolicies']['provisioning']) { + $driver_params['policies'] = $conf['activesync']['securitypolicies']; + } + + return new Horde_ActiveSync_Driver_Horde($driver_params); + } + +} \ No newline at end of file diff --git a/framework/Core/lib/Horde/Core/Factory/ActiveSyncServer.php b/framework/Core/lib/Horde/Core/Factory/ActiveSyncServer.php new file mode 100644 index 000000000..249418639 --- /dev/null +++ b/framework/Core/lib/Horde/Core/Factory/ActiveSyncServer.php @@ -0,0 +1,32 @@ +getInstance('Horde_Log_Logger'); + } + + $request = $injector->getInstance('Horde_Controller_Request'); + $backend = $injector->getInstance('Horde_ActiveSyncBackend'); + $server = new Horde_ActiveSync( + $backend, + new Horde_ActiveSync_Wbxml_Decoder(fopen('php://input', 'r')), + new Horde_ActiveSync_Wbxml_Encoder(fopen('php://output', 'w+')), + $request); + + $server->setLogger($logger); + + return $server; + } + +} \ No newline at end of file diff --git a/framework/Core/lib/Horde/Core/Factory/ActiveSyncState.php b/framework/Core/lib/Horde/Core/Factory/ActiveSyncState.php new file mode 100644 index 000000000..33d28a4bf --- /dev/null +++ b/framework/Core/lib/Horde/Core/Factory/ActiveSyncState.php @@ -0,0 +1,19 @@ +getInstance('Horde_Db_Adapter'); + + return new Horde_ActiveSync_State_History($state_params); + } + +} \ No newline at end of file diff --git a/framework/Core/lib/Horde/Registry.php b/framework/Core/lib/Horde/Registry.php index fc5d34925..64117a1e6 100644 --- a/framework/Core/lib/Horde/Registry.php +++ b/framework/Core/lib/Horde/Registry.php @@ -253,6 +253,9 @@ class Horde_Registry * classname (string). If other function needed, define as the * second element in an array. */ $factories = array( + 'Horde_ActiveSyncBackend' => 'Horde_Core_Factory_ActiveSyncBackend', + 'Horde_ActiveSyncServer' => 'Horde_Core_Factory_ActiveSyncServer', + 'Horde_ActiveSyncState' => 'Horde_Core_Factory_ActiveSyncState', 'Horde_Alarm' => 'Horde_Core_Factory_Alarm', 'Horde_Browser' => 'Horde_Core_Factory_Browser', 'Horde_Cache' => 'Horde_Core_Factory_Cache', diff --git a/framework/Core/package.xml b/framework/Core/package.xml index d6ec67779..f36ab07a5 100644 --- a/framework/Core/package.xml +++ b/framework/Core/package.xml @@ -24,7 +24,7 @@ Application Framework. yes 2010-10-22 - + 0.1.0 0.1.0 @@ -116,6 +116,9 @@ Application Framework. + + + @@ -694,6 +697,9 @@ Application Framework. + + + diff --git a/horde/admin/activesync.php b/horde/admin/activesync.php index 47688194c..4911fc97f 100644 --- a/horde/admin/activesync.php +++ b/horde/admin/activesync.php @@ -19,11 +19,7 @@ Horde_Registry::appInit('horde', array('admin' => true)); if (empty($conf['activesync']['enabled'])) { throw new Horde_Exception_PermissionDenied(_("ActiveSync not activated.")); } - -$state_params = array_merge($conf['activesync']['state']['params'], array( - 'db' => $injector->getInstance('Horde_Db_Adapter') -)); -$stateMachine = new Horde_ActiveSync_State_History($state_params); +$stateMachine = $injector->getInstance('Horde_ActiveSyncState'); $stateMachine->setLogger($injector->getInstance('Horde_Log_Logger')); /** Check for any actions **/ diff --git a/horde/lib/Prefs/Ui.php b/horde/lib/Prefs/Ui.php index a84db9fd6..23da6941b 100644 --- a/horde/lib/Prefs/Ui.php +++ b/horde/lib/Prefs/Ui.php @@ -376,10 +376,7 @@ class Horde_Prefs_Ui return _("ActiveSync not activated."); } - $state_params = array_merge($GLOBALS['conf']['activesync']['state']['params'], array( - 'db' => $GLOBALS['injector']->getInstance('Horde_Db_Adapter') - )); - $stateMachine = new Horde_ActiveSync_State_History($state_params); + $stateMachine = $GLOBALS['injector']->getInstance('Horde_ActiveSyncState'); $devices = $stateMachine->listDevices($GLOBALS['registry']->getAuth()); $js = array(); @@ -733,9 +730,7 @@ class Horde_Prefs_Ui */ protected function _updateActiveSyncManagement($ui) { - $state_params = $GLOBALS['conf']['activesync']['state']['params']; - $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter'); - $stateMachine = new Horde_ActiveSync_State_History($state_params); + $stateMachine = $GLOBALS['injector']->getInstance('Horde_ActiveSyncState'); $stateMachine->setLogger($GLOBALS['injector']->getInstance('Horde_Log_Logger')); if ($ui->vars->wipeid) { $stateMachine->loadDeviceInfo($ui->vars->wipeid, $GLOBALS['registry']->getAuth()); diff --git a/horde/rpc.php b/horde/rpc.php index 5855d9590..5fa0ded44 100644 --- a/horde/rpc.php +++ b/horde/rpc.php @@ -25,10 +25,8 @@ require_once dirname(__FILE__) . '/lib/Application.php'; // We have a chicken-and-egg problem here regarding app initialization. Since // different RPC servers have different session requirements, we can't call -// appInit() until we know which server we are requesting. The Request object -// also needs to know that we don't want a session since it tries to access/ -// initialize the session state. We therfore don't create the Request object -// or initialize the application until after we know the rpc server we want. +// appInit() until we know which server we are requesting. We therefor don't +// initialize the application until after we know the rpc server we want. $input = $session_control = null; $nocompress = false; $params = array(); @@ -96,33 +94,8 @@ case 'ActiveSync': if (empty($conf['activesync']['enabled'])) { exit; } - - if ($conf['activesync']['logging']['type'] == 'custom') { - $params['logger'] = new Horde_Log_Logger(new Horde_Log_Handler_Stream(fopen($conf['activesync']['logging']['path'], 'a'))); - } - - $state_params = $conf['activesync']['state']['params']; - $state_params['db'] = $injector->getInstance('Horde_Db_Adapter'); - $stateMachine = new Horde_ActiveSync_State_History($state_params); - $params['registry'] = $registry; - $driver_params = array( - 'connector' => new Horde_ActiveSync_Driver_Horde_Connector_Registry($params), - 'ping' => $conf['activesync']['ping'], - 'state_basic' => $stateMachine, - 'auth' => $GLOBALS['injector']->getInstance('Horde_Core_Factory_Auth')->create() - ); - - if ($params['provisioning'] = $conf['activesync']['securitypolicies']['provisioning']) { - $driver_params['policies'] = $conf['activesync']['securitypolicies']; - } - $params['backend'] = new Horde_ActiveSync_Driver_Horde($driver_params); - $params['server'] = new Horde_ActiveSync( - $params['backend'], - new Horde_ActiveSync_Wbxml_Decoder(fopen('php://input', 'r')), - new Horde_ActiveSync_Wbxml_Encoder(fopen('php://output', 'w+')), - $request - ); - $params['server']->setLogger($params['logger']); + $params['backend'] = $injector->getInstance('Horde_ActiveSyncBackend'); + $params['server'] = $injector->getInstance('Horde_ActiveSyncServer'); break; case 'Soap':