Skip to content

Commit

Permalink
Add configuration support for Horde_ActiveSync_State_Mongo::
Browse files Browse the repository at this point in the history
  • Loading branch information
mrubinsk committed Oct 17, 2013
1 parent 4224eb7 commit fcb0265
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 3 deletions.
17 changes: 14 additions & 3 deletions framework/Core/lib/Horde/Core/Factory/ActiveSyncState.php
Expand Up @@ -7,9 +7,20 @@ class Horde_Core_Factory_ActiveSyncState extends Horde_Core_Factory_Injector
{
public function create(Horde_Injector $injector)
{
return new Horde_ActiveSync_State_Sql(array(
'db' => $injector->getInstance('Horde_Db_Adapter')
));
global $conf;

$driver = $conf['activesync']['storage'];
switch (Horde_String::lower($driver)) {
case 'nosql':
$nosql = $injector->getInstance('Horde_Core_Factory_Nosql')->create('horde', 'activesync');
return new Horde_ActiveSync_State_Mongo(array(
'connection' => $nosql
));
case 'sql':
return new Horde_ActiveSync_State_Sql(array(
'db' => $injector->getInstance('Horde_Core_Factory_Db')->create('horde', 'activesync')
));
}
}

}
16 changes: 16 additions & 0 deletions horde/config/conf.xml
Expand Up @@ -2077,6 +2077,22 @@
<configswitch name="enabled" quote="false" desc="Enable ActiveSync server?">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configheader>Storage</configheader>
<configdescription>ActiveSync needs to store information about device
properties and state data such as syncronization keys and hierarchy data.
Choose the storage backend to use.</configdescription>
<configswitch name="storage">
<case name="Nosql" desc="NoSQL Database">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig" />
</configsection>
</case>
</configswitch>
<configheader>Capabilities</configheader>
<configboolean name="emailsync" desc="Enable Email support?">true
</configboolean>
Expand Down
4 changes: 4 additions & 0 deletions horde/lib/Application.php
Expand Up @@ -375,6 +375,10 @@ public function nosqlDrivers()
if ($ob instanceof Horde_Vfs_Mongo) {
$out[] = $ob;
}
$ob = $injector->getInstance('Horde_ActiveSyncState');
if ($ob instanceof Horde_ActiveSync_State_Mongo) {
$out[] = $ob;
}

return $out;
}
Expand Down

0 comments on commit fcb0265

Please sign in to comment.