Skip to content

Commit d126ce8

Browse files
committed
Added jackrabbit transport
1 parent 1f97510 commit d126ce8

File tree

4 files changed

+43
-27
lines changed

4 files changed

+43
-27
lines changed

bin/phpcrsh

100644100755
File mode changed.

src/PHPCR/Shell/Console/Command/ShellCommand.php

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,25 @@ public function configure()
1919
{
2020
$this->setName('phpcr_shell');
2121
$this->setDefinition(array(
22-
new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message.'),
23-
new InputOption('--verbose', '-v', InputOption::VALUE_NONE, 'Increase verbosity of messages.'),
24-
new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version.'),
25-
new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output.'),
26-
new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output.'),
27-
new InputOption('--transport', '-t', InputOption::VALUE_REQUIRED, 'Transport to use.', 'doctrine-dbal'),
28-
new InputOption('--phpcr_username', '-pu', InputOption::VALUE_REQUIRED, 'PHPCR Username.', 'admin'),
29-
new InputOption('--phpcr_password', '-pp', InputOption::VALUE_OPTIONAL, 'PHPCR Password.', 'admin'),
30-
new InputOption('--phpcr_workspace','-pw', InputOption::VALUE_OPTIONAL, 'PHPCR Workspace.', 'default'),
31-
new InputOption('--db_username', '-du', InputOption::VALUE_REQUIRED, 'Database Username.', 'root'),
32-
new InputOption('--db_name', '-dn', InputOption::VALUE_REQUIRED, 'Database Name.', 'phpcr'),
33-
new InputOption('--db_password', '-dp', InputOption::VALUE_OPTIONAL, 'Database Password.'),
34-
new InputOption('--db_host', '-dh', InputOption::VALUE_REQUIRED, 'Database Host.', 'localhost'),
35-
new InputOption('--db_driver', '-dd', InputOption::VALUE_REQUIRED, 'Database Transport.', 'pdo_mysql'),
36-
new InputOption('--db_path', '-dP', InputOption::VALUE_REQUIRED, 'Database Path.'),
37-
));
22+
new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message.'),
23+
new InputOption('--verbose', '-v', InputOption::VALUE_NONE, 'Increase verbosity of messages.'),
24+
new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version.'),
25+
new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output.'),
26+
new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output.'),
27+
new InputOption('--transport', '-t', InputOption::VALUE_REQUIRED, 'Transport to use.', 'doctrine-dbal'),
28+
new InputOption('--phpcr-username', '-pu', InputOption::VALUE_REQUIRED, 'PHPCR Username.', 'admin'),
29+
new InputOption('--phpcr-password', '-pp', InputOption::VALUE_OPTIONAL, 'PHPCR Password.', 'admin'),
30+
new InputOption('--phpcr-workspace','-pw', InputOption::VALUE_OPTIONAL, 'PHPCR Workspace.', 'default'),
31+
new InputOption('--db-username', '-du', InputOption::VALUE_REQUIRED, 'Database Username.', 'root'),
32+
new InputOption('--db-name', '-dn', InputOption::VALUE_REQUIRED, 'Database Name.', 'phpcr'),
33+
new InputOption('--db-password', '-dp', InputOption::VALUE_OPTIONAL, 'Database Password.'),
34+
new InputOption('--db-host', '-dh', InputOption::VALUE_REQUIRED, 'Database Host.', 'localhost'),
35+
new InputOption('--db-driver', '-dd', InputOption::VALUE_REQUIRED, 'Database Transport.', 'pdo_mysql'),
36+
new InputOption('--db-path', '-dP', InputOption::VALUE_REQUIRED, 'Database Path.'),
37+
new InputOption('--repo-url', '-url', InputOption::VALUE_REQUIRED, 'URL of repository (e.g. for jackrabbit).',
38+
'http://localhost:8080/server/'
39+
),
40+
));
3841
}
3942

4043
public function execute(InputInterface $input, OutputInterface $output)
@@ -43,8 +46,8 @@ public function execute(InputInterface $input, OutputInterface $output)
4346
$repository = $transport->getRepository();
4447

4548
$credentials = new SimpleCredentials(
46-
$input->getOption('phpcr_username'),
47-
$input->getOption('phpcr_password')
49+
$input->getOption('phpcr-username'),
50+
$input->getOption('phpcr-password')
4851
);
4952

5053
$session = $repository->login($credentials);
@@ -58,6 +61,7 @@ protected function getTransport(InputInterface $input)
5861
{
5962
foreach (array(
6063
new \PHPCR\Shell\Transport\DoctrineDbal($input),
64+
new \PHPCR\Shell\Transport\Jackrabbit($input),
6165
) as $transport) {
6266
$transports[$transport->getName()] = $transport;
6367
}
@@ -67,7 +71,7 @@ protected function getTransport(InputInterface $input)
6771
if (!isset($transports[$transportName])) {
6872
throw new \InvalidArgumentException(sprintf(
6973
'Unknown transport "%s", I have "%s"',
70-
$transportName, implode(array_keys($transports))
74+
$transportName, implode(', ', array_keys($transports))
7175
));
7276
}
7377

src/PHPCR/Shell/Transport/DoctrineDbal.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ public function getName()
2828
public function getRepository()
2929
{
3030
$connection = DriverManager::getConnection($ops = array(
31-
'user' => $this->input->getOption('db_username'),
32-
'password' => $this->input->getOption('db_password'),
33-
'host' => $this->input->getOption('db_host'),
34-
'driver' => $this->input->getOption('db_driver'),
35-
'dbname' => $this->input->getOption('db_name'),
36-
'path' => $this->input->getOption('db_path'),
31+
'user' => $this->input->getOption('db-username'),
32+
'password' => $this->input->getOption('db-password'),
33+
'host' => $this->input->getOption('db-host'),
34+
'driver' => $this->input->getOption('db-driver'),
35+
'dbname' => $this->input->getOption('db-name'),
36+
'path' => $this->input->getOption('db-path'),
3737
));
3838

3939
$factory = new RepositoryFactoryDoctrineDBAL();
Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,35 @@
11
<?php
22

3-
namespace PHPCR\Shell\Console\Transport;
3+
namespace PHPCR\Shell\Transport;
44

55
use Doctrine\DBAL\DriverManager;
66
use Jackalope\RepositoryFactoryDoctrineDBAL;
77
use PHPCR\Shell\Console\TransportInterface;
88
use Symfony\Component\Console\Application as BaseApplication;
99
use Symfony\Component\Console\Input\InputInterface;
10+
use Jackalope\RepositoryFactoryJackrabbit;
1011

1112
class Jackrabbit implements TransportInterface
1213
{
14+
public function __construct(InputInterface $input)
15+
{
16+
$this->input = $input;
17+
}
18+
1319
public function getName()
1420
{
1521
return 'jackrabbit';
1622
}
1723

1824
public function getRepository()
1925
{
20-
throw new \Exception('Not implemented yet');
26+
$params = array(
27+
'jackalope.jackrabbit_uri' => $this->input->getOption('repo-url'),
28+
);
29+
$factory = new RepositoryFactoryJackrabbit();
30+
$repository = $factory->getRepository($params);
31+
32+
return $repository;
2133
}
2234
}
2335

0 commit comments

Comments
 (0)