Moved phpclient to a toplevel project to give it its own release cycle git-svn-id: https://svn.apache.org/repos/asf/incubator/chemistry/trunk@980484 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/cmislib/.project b/cmislib/.project deleted file mode 100644 index 48bd168..0000000 --- a/cmislib/.project +++ /dev/null
@@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>cmislib</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.python.pydev.PyDevBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.python.pydev.pythonNature</nature> - </natures> -</projectDescription>
diff --git a/phpclient/README b/phpclient/README deleted file mode 100644 index 2e31a0e..0000000 --- a/phpclient/README +++ /dev/null
@@ -1,30 +0,0 @@ -To Run this example execute the following - -php -f cmis_ls.php <rest-endpoint> <username> <password> <folderpath> [debug option 1|2] - -Notes: - + The if the folder path has spaces in it you must URL encode the folder path i.e. /Data Dictionary --> /Data+Dictionary - + The debug option can be omitted. If it is 1 the program will display all of the arrays associated with the objects that - are returned. If the debug option is 2 or more, then the XML returned will also be displayed - + This will not work on Pre CMIS-1.0 repositories - + There is virtually no error checking. - + Your version of php must support DOMDocument and curl - -Example Runs -php -f cmis_ls.php http://cmis.alfresco.com/service/api/cmis admin admin / -php -f cmis_ls.php http://cmis.alfresco.com/service/api/cmis admin admin /Data+Dictionary 1 - - -The cmis_repository_wrapper.php library provided the following functionality -+ Encapsulates access to a CMIS 1.0 compliant repository -+ Provides utilities for getting information out of: - + Workspace (the repositoryInfo) - + Object Entries - + Non-Hierarchical Object feeds - -More information will be on the Wiki for this Google Code Project and on -the author's blog http://oldschooltechie.com/ - - -============== -Adding Calls that mimick the domain model
diff --git a/phpclient/cmis_demo.php b/phpclient/cmis_demo.php deleted file mode 100644 index 4706d9e..0000000 --- a/phpclient/cmis_demo.php +++ /dev/null
@@ -1,106 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -function list_objs($objs) -{ - foreach ($objs->objectList as $obj) - { - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } - } -} -function check_response($client) -{ - if ($client->getLastRequest()->code > 299) - { - print "There was a problem with this request!\n"; - exit (255); - } -} - -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_folder = $_SERVER["argv"][4]; -$repo_new_folder = $_SERVER["argv"][5]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); -print "Connected\n"; -$myfolder = $client->getObjectByPath($repo_folder); -print "Got Folder\n"; -check_response($client); -if ($myfolder->properties['cmis:baseTypeId'] != "cmis:folder") -{ - print "NOT A FOLDER!\n"; - exit (255); -} - -$my_new_folder = $client->createFolder($myfolder->id, $repo_new_folder); -check_response($client); - -$obj_doc = $client->createDocument($my_new_folder->id, "TextFile.txt", array (), "THIS IS A NEW DOCUMENT", "text/plain"); -check_response($client); - -$obj_del = $client->createDocument($my_new_folder->id, "TextFileDel.txt", array (), "THIS IS A NEW DOCUMENT To Be Deleted", "text/plain"); -check_response($client); - -print "FOLDER AFTER CREATES\n=============================================\n"; -$objs = $client->getChildren($my_new_folder->id); -check_response($client); -list_objs($objs); -print "=============================================\n\n"; - -$delContent = $client->getContentStream($obj_del->id); -echo "DEL CONTENT\n"; -print $delContent . "\n"; -print "\n"; - -echo "DELETEING " . $obj_del->properties['cmis:name'] . "\n"; -$client->deleteObject($obj_del->id); -print "\n"; - -print "FOLDER AFTER DELETE\n=============================================\n"; -$objs = $client->getChildren($my_new_folder->id); -check_response($client); -list_objs($objs); -print "=============================================\n\n"; - -$sub_folder = $client->createFolder($my_new_folder->id, "SUB_FOLDER"); -$client->moveObject($obj_doc->id, $sub_folder->id, $my_new_folder->id); - -print "FOLDER AFTER MOVE\n=============================================\n"; -$objs = $client->getChildren($my_new_folder->id); -check_response($client); -list_objs($objs); -print "=============================================\n\n"; - -print "SUB-FOLDER AFTER MOVE\n=============================================\n"; -$objs = $client->getChildren($sub_folder->id); -check_response($client); -list_objs($objs); -print "=============================================\n\n";
diff --git a/phpclient/cmis_ls.php b/phpclient/cmis_ls.php deleted file mode 100644 index 9a02607..0000000 --- a/phpclient/cmis_ls.php +++ /dev/null
@@ -1,70 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_folder = $_SERVER["argv"][4]; -$repo_debug = $_SERVER["argv"][5]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$myfolder = $client->getObjectByPath($repo_folder); -if ($repo_debug) -{ - print "Folder Object:\n===========================================\n"; - print_r($myfolder); - print "\n===========================================\n\n"; -} - -$objs = $client->getChildren($myfolder->id); -if ($repo_debug) -{ - print "Folder Children Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}
diff --git a/phpclient/cmis_mkdir.php b/phpclient/cmis_mkdir.php deleted file mode 100644 index 123553d..0000000 --- a/phpclient/cmis_mkdir.php +++ /dev/null
@@ -1,79 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_folder = $_SERVER["argv"][4]; -$repo_new_folder = $_SERVER["argv"][5]; -$repo_debug = $_SERVER["argv"][6]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$myfolder = $client->getObjectByPath($repo_folder); -if ($repo_debug) -{ - print "Folder Object:\n===========================================\n"; - print_r($myfolder); - print "\n===========================================\n\n"; -} - -$obs = $client->createFolder($myfolder->id, $repo_new_folder); -if ($repo_debug) -{ - print "Return From Create Folder\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -$objs = $client->getChildren($myfolder->id); -if ($repo_debug) -{ - print "Folder Children Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}
diff --git a/phpclient/cmis_mktextfile.php b/phpclient/cmis_mktextfile.php deleted file mode 100644 index 36b9aad..0000000 --- a/phpclient/cmis_mktextfile.php +++ /dev/null
@@ -1,79 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_folder = $_SERVER["argv"][4]; -$repo_new_file = $_SERVER["argv"][5]; -$repo_debug = $_SERVER["argv"][6]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$myfolder = $client->getObjectByPath($repo_folder); -if ($repo_debug) -{ - print "Folder Object:\n===========================================\n"; - print_r($myfolder); - print "\n===========================================\n\n"; -} - -$obs = $client->createDocument($myfolder->id, $repo_new_file, array (), "THIS IS A NEW DOCUMENT", "text/plain"); -if ($repo_debug) -{ - print "Return From Create Document\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -$objs = $client->getChildren($myfolder->id); -if ($repo_debug) -{ - print "Folder Children Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}
diff --git a/phpclient/cmis_query.php b/phpclient/cmis_query.php deleted file mode 100644 index cac2275..0000000 --- a/phpclient/cmis_query.php +++ /dev/null
@@ -1,61 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_debug = $_SERVER["argv"][4]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$objs = $client->query("select * from cmis:folder"); -if ($repo_debug) -{ - print "Returned Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}
diff --git a/phpclient/cmis_repository_wrapper.php b/phpclient/cmis_repository_wrapper.php deleted file mode 100644 index ccce708..0000000 --- a/phpclient/cmis_repository_wrapper.php +++ /dev/null
@@ -1,1083 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -class CMISRepositoryWrapper -{ - // Handles -- - // Workspace -- but only endpoints with a single repo - // Entry -- but only for objects - // Feeds -- but only for non-hierarchical feeds - // Does not handle -- - // -- Hierarchical Feeds - // -- Types - // -- Others? - // Only Handles Basic Auth - // Very Little Error Checking - // Does not work against pre CMIS 1.0 Repos - var $url; - var $username; - var $password; - var $authenticated; - var $workspace; - var $last_request; - var $do_not_urlencode; - static $namespaces = array ( - "cmis" => "http://docs.oasis-open.org/ns/cmis/core/200908/", - "cmisra" => "http://docs.oasis-open.org/ns/cmis/restatom/200908/", - "atom" => "http://www.w3.org/2005/Atom", - "app" => "http://www.w3.org/2007/app", - - ); - - function __construct($url, $username = null, $password = null, $options = null) - { - if (is_array($options) && $options["config:do_not_urlcode"]) { - $this->do_not_urlencode=true; - } - $this->connect($url, $username, $password, $options); - } - - static function getOpUrl($url, $options = null) - { - if (is_array($options) && (count($options) > 0)) - { - $needs_question = strstr($url, "?") === false; - return $url . ($needs_question ? "?" : "&") . http_build_query($options); - } else - { - return $url; - } - } - - function connect($url, $username, $password, $options) - { - // TODO: Make this work with cookies - $this->url = $url; - $this->username = $username; - $this->password = $password; - $this->auth_options = $options; - $this->authenticated = false; - $retval = $this->doGet($this->url); - if ($retval->code == 200 || $retval->code == 201) - { - $this->authenticated = true; - $this->workspace = CMISRepositoryWrapper :: extractWorkspace($retval->body); - } - } - - function doGet($url) - { - return $this->doRequest($url); - } - - function doDelete($url) - { - return $this->doRequest($url, "DELETE"); - } - - function doPost($url, $content, $contentType, $charset = null) - { - return $this->doRequest($url, "POST", $content, $contentType); - } - - function doPut($url, $content, $contentType, $charset = null) - { - return $this->doRequest($url, "PUT", $content, $contentType); - } - - function doRequest($url, $method = "GET", $content = null, $contentType = null, $charset = null) - { - // Process the HTTP request - // 'til now only the GET request has been tested - // Does not URL encode any inputs yet - if (is_array($this->auth_options)) - { - $url = CMISRepositoryWrapper :: getOpUrl($url, $this->auth_options); - } - $session = curl_init($url); - curl_setopt($session, CURLOPT_HEADER, false); - curl_setopt($session, CURLOPT_RETURNTRANSFER, true); - if ($this->username) - { - curl_setopt($session, CURLOPT_USERPWD, $this->username . ":" . $this->password); - } - curl_setopt($session, CURLOPT_CUSTOMREQUEST, $method); - if ($contentType) - { - $headers = array (); - $headers["Content-Type"] = $contentType; - curl_setopt($session, CURLOPT_HTTPHEADER, $headers); - } - if ($content) - { - curl_setopt($session, CURLOPT_POSTFIELDS, $content); - } - if ($method == "POST") - { - curl_setopt($session, CURLOPT_HTTPHEADER, array ( - "Content-Type: " . $contentType - )); - curl_setopt($session, CURLOPT_POST, true); - } - //TODO: Make this storage optional - $retval = new stdClass(); - $retval->url = $url; - $retval->method = $method; - $retval->content_sent = $content; - $retval->content_type_sent = $contentType; - $retval->body = curl_exec($session); - $retval->code = curl_getinfo($session, CURLINFO_HTTP_CODE); - $retval->content_type = curl_getinfo($session, CURLINFO_CONTENT_TYPE); - $retval->content_length = curl_getinfo($session, CURLINFO_CONTENT_LENGTH_DOWNLOAD); - curl_close($session); - $this->last_request = $retval; - return $retval; - } - - function getLastRequest() - { - return $this->last_request; - } - - function getLastRequestBody() - { - return $this->last_request->body; - } - - function getLastRequestCode() - { - return $this->last_request->code; - } - - function getLastRequestContentType() - { - return $this->last_request->content_type; - } - - function getLastRequestContentLength() - { - return $this->last_request->content_length; - } - - function getLastRequestURL() - { - return $this->last_request->url; - } - - function getLastRequestMethod() - { - return $this->last_request->method; - } - - function getLastRequestContentTypeSent() - { - return $this->last_request->content_type_sent; - } - - function getLastRequestContentSent() - { - return $this->last_request->content_sent; - } - - // Static Utility Functions - static function processTemplate($template, $values = array ()) - { - // Fill in the blanks -- - $retval = $template; - if (is_array($values)) - { - foreach ($values as $name => $value) - { - $retval = str_replace("{" . $name . "}", $value, $retval); - } - } - // Fill in any unpoupated variables with "" - return preg_replace("/{[a-zA-Z0-9_]+}/", "", $retval); - - } - - static function doXQuery($xmldata, $xquery) - { - $doc = new DOMDocument(); - $doc->loadXML($xmldata); - return CMISRepositoryWrapper :: doXQueryFromNode($doc, $xquery); - } - - static function doXQueryFromNode($xmlnode, $xquery) - { - // Perform an XQUERY on a NODE - // Register the 4 CMIS namespaces - $xpath = new DomXPath($xmlnode); - foreach (CMISRepositoryWrapper :: $namespaces as $nspre => $nsuri) - { - $xpath->registerNamespace($nspre, $nsuri); - } - return $xpath->query($xquery); - - } - static function getLinksArray($xmlnode) - { - // Gets the links of an object or a workspace - // Distinguishes between the two "down" links - // -- the children link is put into the associative array with the "down" index - // -- the descendants link is put into the associative array with the "down-tree" index - // These links are distinquished by the mime type attribute, but these are probably the only two links that share the same rel .. - // so this was done as a one off - $links = array (); - $link_nodes = $xmlnode->getElementsByTagName("link"); - foreach ($link_nodes as $ln) - { - if ($ln->attributes->getNamedItem("rel")->nodeValue == "down" && $ln->attributes->getNamedItem("type")->nodeValue == "application/cmistree+xml") - { - //Descendents and Childredn share same "rel" but different document type - $links["down-tree"] = $ln->attributes->getNamedItem("href")->nodeValue; - } else - { - $links[$ln->attributes->getNamedItem("rel")->nodeValue] = $ln->attributes->getNamedItem("href")->nodeValue; - } - } - return $links; - } - static function extractObject($xmldata) - { - $doc = new DOMDocument(); - $doc->loadXML($xmldata); - return CMISRepositoryWrapper :: extractObjectFromNode($doc); - - } - static function extractObjectFromNode($xmlnode) - { - // Extracts the contents of an Object and organizes them into: - // -- Links - // -- Properties - // -- the Object ID - // RRM -- NEED TO ADD ALLOWABLEACTIONS - $retval = new stdClass(); - $retval->links = CMISRepositoryWrapper :: getLinksArray($xmlnode); - $retval->properties = array (); - $prop_nodes = $xmlnode->getElementsByTagName("object")->item(0)->getElementsByTagName("properties")->item(0)->childNodes; - foreach ($prop_nodes as $pn) - { - if ($pn->attributes) - { - $retval->properties[$pn->attributes->getNamedItem("propertyDefinitionId")->nodeValue] = $pn->getElementsByTagName("value")->item(0)->nodeValue; - } - } - $retval->uuid = $xmlnode->getElementsByTagName("id")->item(0)->nodeValue; - $retval->id = $retval->properties["cmis:objectId"]; - return $retval; - } - - function handleSpaces($path) - { - return $this->do_not_urlencode ? $path : str_replace(" ","%20",str_replace("%","%25",$path)); - } - - static function extractTypeDef($xmldata) - { - $doc = new DOMDocument(); - $doc->loadXML($xmldata); - return CMISRepositoryWrapper :: extractTypeDefFromNode($doc); - - } - static function extractTypeDefFromNode($xmlnode) - { - // Extracts the contents of an Object and organizes them into: - // -- Links - // -- Properties - // -- the Object ID - // RRM -- NEED TO ADD ALLOWABLEACTIONS - $retval = new stdClass(); - $retval->links = CMISRepositoryWrapper :: getLinksArray($xmlnode); - $retval->properties = array (); - $retval->attributes = array (); - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//cmisra:type/*"); - foreach ($result as $node) - { - if ((substr($node->nodeName, 0, 13) == "cmis:property") && (substr($node->nodeName, -10) == "Definition")) - { - $id = $node->getElementsByTagName("id")->item(0)->nodeValue; - $cardinality = $node->getElementsByTagName("cardinality")->item(0)->nodeValue; - $propertyType = $node->getElementsByTagName("propertyType")->item(0)->nodeValue; - // Stop Gap for now - $retval->properties[$id] = array ( - "cmis:propertyType" => $propertyType, - "cmis:cardinality" => $cardinality, - - ); - } else - { - $retval->attributes[$node->nodeName] = $node->nodeValue; - } - $retval->id = $retval->attributes["cmis:id"]; - } - - /* - * - - - - $prop_nodes = $xmlnode->getElementsByTagName("object")->item(0)->getElementsByTagName("properties")->item(0)->childNodes; - foreach ($prop_nodes as $pn) { - if ($pn->attributes) { - $retval->properties[$pn->attributes->getNamedItem("propertyDefinitionId")->nodeValue] = $pn->getElementsByTagName("value")->item(0)->nodeValue; - } - } - $retval->uuid=$xmlnode->getElementsByTagName("id")->item(0)->nodeValue; - $retval->id=$retval->properties["cmis:objectId"]; - */ - return $retval; - } - - static function extractObjectFeed($xmldata) - { - //Assumes only one workspace for now - $doc = new DOMDocument(); - $doc->loadXML($xmldata); - return CMISRepositoryWrapper :: extractObjectFeedFromNode($doc); - } - static function extractObjectFeedFromNode($xmlnode) - { - // Process a feed and extract the objects - // Does not handle hierarchy - // Provides two arrays - // -- one sequential array (a list) - // -- one hash table indexed by objectID - $retval = new stdClass(); - $retval->objectList = array (); - $retval->objectsById = array (); - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//atom:entry"); - foreach ($result as $node) - { - $obj = CMISRepositoryWrapper :: extractObjectFromNode($node); - $retval->objectsById[$obj->id] = $obj; - $retval->objectList[] = & $retval->objectsById[$obj->id]; - } - return $retval; - } - - static function extractWorkspace($xmldata) - { - //Assumes only one workspace for now - $doc = new DOMDocument(); - $doc->loadXML($xmldata); - return CMISRepositoryWrapper :: extractWorkspaceFromNode($doc); - } - static function extractWorkspaceFromNode($xmlnode) - { - // Assumes only one workspace for now - // Load up the workspace object with arrays of - // links - // URI Templates - // Collections - // Capabilities - // General Repository Information - $retval = new stdClass(); - $retval->links = CMISRepositoryWrapper :: getLinksArray($xmlnode); - $retval->uritemplates = array (); - $retval->collections = array (); - $retval->capabilities = array (); - $retval->repositoryInfo = array (); - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//cmisra:uritemplate"); - foreach ($result as $node) - { - $retval->uritemplates[$node->getElementsByTagName("type")->item(0)->nodeValue] = $node->getElementsByTagName("template")->item(0)->nodeValue; - } - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//app:collection"); - foreach ($result as $node) - { - $retval->collections[$node->getElementsByTagName("collectionType")->item(0)->nodeValue] = $node->attributes->getNamedItem("href")->nodeValue; - } - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//cmis:capabilities/*"); - foreach ($result as $node) - { - $retval->capabilities[$node->nodeName] = $node->nodeValue; - } - $result = CMISRepositoryWrapper :: doXQueryFromNode($xmlnode, "//cmisra:repositoryInfo/*"); - foreach ($result as $node) - { - if ($node->nodeName != "cmis:capabilities") - { - $retval->repositoryInfo[$node->nodeName] = $node->nodeValue; - } - } - - return $retval; - } -} - -// Option Contants for Array Indexing -// -- Generally optional flags that control how much information is returned -// -- Change log token is an anomoly -- but included in URL as parameter -define("OPT_MAX_ITEMS", "maxItems"); -define("OPT_SKIP_COUNT", "skipCount"); -define("OPT_FILTER", "filter"); -define("OPT_INCLUDE_PROPERTY_DEFINITIONS", "includePropertyDefinitions"); -define("OPT_INCLUDE_RELATIONSHIPS", "includeRelationships"); -define("OPT_INCLUDE_POLICY_IDS", "includePolicyIds"); -define("OPT_RENDITION_FILTER", "renditionFilter"); -define("OPT_INCLUDE_ACL", "includeACL"); -define("OPT_INCLUDE_ALLOWABLE_ACTIONS", "includeAllowableActions"); -define("OPT_DEPTH", "depth"); -define("OPT_CHANGE_LOG_TOKEN", "changeLogToken"); - -define("LINK_ALLOWABLE_ACTIONS", "http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"); - -define("MIME_ATOM_XML", 'application/atom+xml'); -define("MIME_ATOM_XML_ENTRY", 'application/atom+xml;type=entry'); -define("MIME_ATOM_XML_FEED", 'application/atom+xml;type=feed'); -define("MIME_CMIS_TREE", 'application/cmistree+xml'); -define("MIME_CMIS_QUERY", 'application/cmisquery+xml'); - -// Many Links have a pattern to them based upon objectId -- but can that be depended upon? - -class CMISService extends CMISRepositoryWrapper -{ - var $_link_cache; - function __construct($url, $username, $password, $options = null) - { - parent :: __construct($url, $username, $password, $options); - $this->_link_cache = array (); - $this->_title_cache = array (); - $this->_objTypeId_cache = array (); - $this->_type_cache = array (); - } - - // Utility Methods -- Added Titles - // Should refactor to allow for single object - function cacheEntryInfo($obj) - { - $this->_link_cache[$obj->id] = $obj->links; - $this->_title_cache[$obj->id] = $obj->properties["cmis:name"]; // Broad Assumption Here? - $this->_objTypeId_cache[$obj->id] = $obj->properties["cmis:objectTypeId"]; - } - - function cacheFeedInfo($objs) - { - foreach ($objs->objectList as $obj) - { - $this->cacheEntryInfo($obj); - } - } - - function cacheTypeInfo($tDef) - { - $this->_type_cache[$tDef->id] = $tDef; - } - - function getPropertyType($typeId, $propertyId) - { - if ($this->_type_cache[$typeId]) - { - return $this->_type_cache[$typeId]->properties[$propertyId]["cmis:propertyType"]; - } - $obj = $this->getTypeDefinition($typeId); - return $obj->properties[$propertyId]["cmis:propertyType"]; - } - - function getObjectType($objectId) - { - if ($this->_objTypeId_cache[$objectId]) - { - return $this->_objTypeId_cache[$objectId]; - } - $obj = $this->getObject($objectId); - return $obj->properties["cmis:objectTypeId"]; - } - - function getTitle($objectId) - { - if ($this->_title_cache[$objectId]) - { - return $this->_title_cache[$objectId]; - } - $obj = $this->getObject($objectId); - return $obj->properties["cmis:name"]; - } - function getLink($objectId, $linkName) - { - if ($this->_link_cache[$objectId][$linkName]) - { - return $this->_link_cache[$objectId][$linkName]; - } - $obj = $this->getObject($objectId); - return $obj->links[$linkName]; - } - - // Repository Services - function getRepositories() - { - throw Exception("Not Implemented"); - } - - function getRepositoryInfo() - { - return $this->workspace; - } - - function getTypeChildren() - { - throw Exception("Not Implemented"); - } - - function getTypeDescendants() - { - throw Exception("Not Implemented"); - } - - function getTypeDefinition($typeId, $options = array ()) - { // Nice to have - $varmap = $options; - $varmap["id"] = $typeId; - $myURL = $this->processTemplate($this->workspace->uritemplates['typebyid'], $varmap); - $ret = $this->doGet($myURL); - $obj = $this->extractTypeDef($ret->body); - $this->cacheTypeInfo($obj); - return $obj; - } - - function getObjectTypeDefinition($objectId) - { // Nice to have - $myURL = $this->getLink($objectId, "describedby"); - $ret = $this->doGet($myURL); - $obj = $this->extractTypeDef($ret->body); - $this->cacheTypeInfo($obj); - return $obj; - } - //Navigation Services - function getFolderTree() - { // Would Be Useful - throw Exception("Not Implemented"); - } - - function getDescendants() - { // Nice to have - throw Exception("Not Implemented"); - } - - function getChildren($objectId, $options = array ()) - { - $myURL = $this->getLink($objectId, "down"); - //TODO: Need GenURLQueryString Utility - $ret = $this->doGet($myURL); - $objs = $this->extractObjectFeed($ret->body); - $this->cacheFeedInfo($objs); - return $objs; - } - - function getFolderParent($objectId, $options = array ()) - { //yes - $myURL = $this->getLink($objectId, "up"); - //TODO: Need GenURLQueryString Utility - $ret = $this->doGet($myURL); - $obj = $this->extractObjectEntry($ret->body); - $this->cacheEntryInfo($obj); - return $obj; - } - - function getObjectParents($objectId, $options = array ()) - { // yes - $myURL = $this->getLink($objectId, "up"); - //TODO: Need GenURLQueryString Utility - $ret = $this->doGet($myURL); - $objs = $this->extractObjectFeed($ret->body); - $this->cacheFeedInfo($objs); - return $objs; - } - - function getCheckedOutDocs($options = array ()) - { - $obj_url = $this->workspace->collections['checkedout']; - $ret = $this->doGet($obj_url); - $objs = $this->extractObjectFeed($ret->body); - $this->cacheFeedInfo($objs); - return $objs; - } - - //Discovery Services - - static function getQueryTemplate() - { - ob_start(); - echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' . "\n"; -?> -<cmis:query xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" -xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/" -xmlns:atom="http://www.w3.org/2005/Atom" -xmlns:app="http://www.w3.org/2007/app" -xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/"> -<cmis:statement>{q}</cmis:statement> -<cmis:searchAllVersions>{searchAllVersions}</cmis:searchAllVersions> -<cmis:includeAllowableActions>{includeAllowableActions}</cmis:includeAllowableActions> -<cmis:includeRelationships>{includeRelationships}</cmis:includeRelationships> -<cmis:renditionFilter>{renditionFilter}</cmis:renditionFilter> -<cmis:maxItems>{maxItems}</cmis:maxItems> -<cmis:skipCount>{skipCount}</cmis:skipCount> -</cmis:query> -<? - - return ob_get_clean(); - } - function query($q, $options = array ()) - { - static $query_template; - if (!isset ($query_template)) - { - $query_template = CMISService :: getQueryTemplate(); - } - $hash_values = $options; - $hash_values['q'] = $q; - $post_value = CMISRepositoryWrapper :: processTemplate($query_template, $hash_values); - $ret = $this->doPost($this->workspace->collections['query'], $post_value, MIME_CMIS_QUERY); - $objs = $this->extractObjectFeed($ret->body); - $this->cacheFeedInfo($objs); - return $objs; - } - - function getContentChanges() - { - throw Exception("Not Implemented"); - } - - //Object Services - static function getEntryTemplate() - { - ob_start(); - echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' . "\n"; -?> -<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" -xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/" -xmlns:atom="http://www.w3.org/2005/Atom" -xmlns:app="http://www.w3.org/2007/app" -xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/"> -<atom:title>{title}</atom:title> -{SUMMARY} -{CONTENT} -<cmisra:object><cmis:properties>{PROPERTIES}</cmis:properties></cmisra:object> -</atom:entry> -<? - - return ob_get_clean(); - } - - static function getPropertyTemplate() - { - ob_start(); -?> - <cmis:property{propertyType} propertyDefinitionId="{propertyId}"> - <cmis:value>{properties}</cmis:value> - </cmis:property{propertyType}> -<? - - return ob_get_clean(); - } - - function processPropertyTemplates($objectType, $propMap) - { - static $propTemplate; - static $propertyTypeMap; - if (!isset ($propTemplate)) - { - $propTemplate = CMISService :: getPropertyTemplate(); - } - if (!isset ($propertyTypeMap)) - { // Not sure if I need to do this like this - $propertyTypeMap = array ( - "integer" => "Integer", - "boolean" => "Boolean", - "datetime" => "DateTime", - "decimal" => "Decimal", - "html" => "Html", - "id" => "Id", - "string" => "String", - "url" => "Url", - "xml" => "Xml", - - ); - } - $propertyContent = ""; - $hash_values = array (); - foreach ($propMap as $propId => $propValue) - { - $hash_values['propertyType'] = $propertyTypeMap[$this->getPropertyType($objectType, $propId)]; - $hash_values['propertyId'] = $propId; - if (is_array($propValue)) - { - $first_one = true; - $hash_values['properties'] = ""; - foreach ($propValue as $val) - { - //This is a bit of a hack - if ($first_one) - { - $first_one = false; - } else - { - $hash_values['properties'] .= "</cmis:values>\n<cmis:values>"; - } - $hash_values['properties'] .= $val; - } - } else - { - $hash_values['properties'] = $propValue; - } - //echo "HASH:\n"; - //print_r(array("template" =>$propTemplate, "Hash" => $hash_values)); - $propertyContent .= CMISRepositoryWrapper :: processTemplate($propTemplate, $hash_values); - } - return $propertyContent; - } - - static function getContentEntry($content, $content_type = "application/octet-stream") - { - static $contentTemplate; - if (!isset ($contentTemplate)) - { - $contentTemplate = CMISService :: getContentTemplate(); - } - if ($content) - { - return CMISRepositoryWrapper :: processTemplate($contentTemplate, array ( - "content" => base64_encode($content - ), "content_type" => $content_type)); - } else - { - return ""; - } - } - - static function getSummaryTemplate() - { - ob_start(); -?> - <atom:summary>{summary}</atom:summary> -<? - - return ob_get_clean(); - } - - static function getContentTemplate() - { - ob_start(); -?> - <cmisra:content> - <cmisra:mediatype> - {content_type} - </cmisra:mediatype> - <cmisra:base64> - {content} - </cmisra:base64> - </cmisra:content> -<? - - return ob_get_clean(); - } - static function createAtomEntry($name, $properties) - { - - } - function getObject($objectId, $options = array ()) - { - $varmap = $options; - $varmap["id"] = $objectId; - $obj_url = $this->processTemplate($this->workspace->uritemplates['objectbyid'], $varmap); - $ret = $this->doGet($obj_url); - $obj = $this->extractObject($ret->body); - $this->cacheEntryInfo($obj); - return $obj; - } - - function getObjectByPath($path, $options = array ()) - { - $varmap = $options; - $varmap["path"] = $this->handleSpaces($path); - $obj_url = $this->processTemplate($this->workspace->uritemplates['objectbypath'], $varmap); - $ret = $this->doGet($obj_url); - $obj = $this->extractObject($ret->body); - $this->cacheEntryInfo($obj); - return $obj; - } - - function getProperties($objectId, $options = array ()) - { - // May need to set the options array default -- - return $this->getObject($objectId, $options); - } - - function getAllowableActions($objectId, $options = array ()) - { - // get stripped down version of object (for the links) and then get the allowable actions? - // Low priority -- can get all information when getting object - throw Exception("Not Implemented"); - } - - function getRenditions($objectId, $options = array ( - OPT_RENDITION_FILTER => "*" - )) - { - return getObject($objectId, $options); - } - - function getContentStream($objectId, $options = array ()) - { // Yes - $myURL = $this->getLink($objectId, "edit-media"); - $ret = $this->doGet($myURL); - // doRequest stores the last request information in this object - return $ret->body; - } - - function postObject($folderId, $objectName, $objectType, $properties = array (), $content = null, $content_type = "application/octet-stream", $options = array ()) - { // Yes - $myURL = $this->getLink($folderId, "down"); - // TODO: Need Proper Query String Handling - // Assumes that the 'down' link does not have a querystring in it - $myURL = CMISRepositoryWrapper :: getOpUrl($myURL, $options); - static $entry_template; - if (!isset ($entry_template)) - { - $entry_template = CMISService :: getEntryTemplate(); - } - if (is_array($properties)) - { - $hash_values = $properties; - } else - { - $hash_values = array (); - } - if (!isset ($hash_values["cmis:objectTypeId"])) - { - $hash_values["cmis:objectTypeId"] = $objectType; - } - $properties_xml = $this->processPropertyTemplates($objectType, $hash_values); - if (is_array($options)) - { - $hash_values = $options; - } else - { - $hash_values = array (); - } - $hash_values["PROPERTIES"] = $properties_xml; - $hash_values["SUMMARY"] = CMISService :: getSummaryTemplate(); - if ($content) - { - $hash_values["CONTENT"] = CMISService :: getContentEntry($content, $content_type); - } - if (!isset ($hash_values['title'])) - { - $hash_values['title'] = $objectName; - } - if (!isset ($hash_values['summary'])) - { - $hash_values['summary'] = $objectName; - } - $post_value = CMISRepositoryWrapper :: processTemplate($entry_template, $hash_values); - $ret = $this->doPost($myURL, $post_value, MIME_ATOM_XML_ENTRY); - // print "DO_POST\n"; - // print_r($ret); - $obj = $this->extractObject($ret->body); - $this->cacheEntryInfo($obj); - return $obj; - } - - function createDocument($folderId, $fileName, $properties = array (), $content = null, $content_type = "application/octet-stream", $options = array ()) - { // Yes - return $this->postObject($folderId, $fileName, "cmis:document", $properties, $content, $content_type, $options); - } - - function createDocumentFromSource() - { //Yes? - throw Exception("Not Implemented in This Binding"); - } - - function createFolder($folderId, $folderName, $properties = array (), $options = array ()) - { // Yes - return $this->postObject($folderId, $folderName, "cmis:folder", $properties, null, null, $options); - } - - function createRelationship() - { // Not in first Release - throw Exception("Not Implemented"); - } - - function createPolicy() - { // Not in first Release - throw Exception("Not Implemented"); - } - - function updateProperties($objectId, $properties = array (), $options = array ()) - { // Yes - $varmap = $options; - $varmap["id"] = $objectId; - $objectName = $this->getTitle($objectId); - $objectType = $this->getObjectType($objectId); - $obj_url = $this->getLink($objectId, "edit"); - $obj_url = CMISRepositoryWrapper :: getOpUrl($obj_url, $options); - static $entry_template; - if (!isset ($entry_template)) - { - $entry_template = CMISService :: getEntryTemplate(); - } - if (is_array($properties)) - { - $hash_values = $properties; - } else - { - $hash_values = array (); - } - $properties_xml = $this->processPropertyTemplates($objectType, $hash_values); - if (is_array($options)) - { - $hash_values = $options; - } else - { - $hash_values = array (); - } - $hash_values["PROPERTIES"] = $properties_xml; - $hash_values["SUMMARY"] = CMISService :: getSummaryTemplate(); - if (!isset ($hash_values['title'])) - { - $hash_values['title'] = $objectName; - } - if (!isset ($hash_values['summary'])) - { - $hash_values['summary'] = $objectName; - } - $put_value = CMISRepositoryWrapper :: processTemplate($entry_template, $hash_values); - $ret = $this->doPut($obj_url, $put_value, MIME_ATOM_XML_ENTRY); - $obj = $this->extractObject($ret->body); - $this->cacheEntryInfo($obj); - return $obj; - } - - function moveObject($objectId, $targetFolderId, $sourceFolderId, $options = array ()) - { //yes - $options['sourceFolderId'] = $sourceFolderId; - return $this->postObject($targetFolderId, $this->getTitle($objectId), $this->getObjectType($objectId), array ( - "cmis:objectId" => $objectId - ), null, null, $options); - } - - function deleteObject($objectId, $options = array ()) - { //Yes - $varmap = $options; - $varmap["id"] = $objectId; - $obj_url = $this->getLink($objectId, "edit"); - $ret = $this->doDelete($obj_url); - return; - } - - function deleteTree() - { // Nice to have - throw Exception("Not Implemented"); - } - - function setContentStream($objectId, $content, $content_type, $options = array ()) - { //Yes - $myURL = $this->getLink($objectId, "edit-media"); - $ret = $this->doPut($myURL, $content, $content_type); - } - - function deleteContentStream($objectId, $options = array ()) - { //yes - $myURL = $this->getLink($objectId, "edit-media"); - $ret = $this->doDelete($myURL); - return; - } - - //Versioning Services - function getPropertiesOfLatestVersion($objectId, $options = array ()) - { - throw Exception("Not Implemented"); - } - - function getObjectOfLatestVersion($objectId, $options = array ()) - { - throw Exception("Not Implemented"); - } - - function getAllVersions() - { - throw Exception("Not Implemented"); - } - - function checkOut() - { - throw Exception("Not Implemented"); - } - - function checkIn() - { - throw Exception("Not Implemented"); - } - - function cancelCheckOut() - { - throw Exception("Not Implemented"); - } - - function deleteAllVersions() - { - throw Exception("Not Implemented"); - } - - //Relationship Services - function getObjectRelationships() - { - // get stripped down version of object (for the links) and then get the relationships? - // Low priority -- can get all information when getting object - throw Exception("Not Implemented"); - } - - //Multi-Filing Services - function addObjectToFolder() - { // Probably - throw Exception("Not Implemented"); - } - - function removeObjectFromFolder() - { //Probably - throw Exception("Not Implemented"); - } - - //Policy Services - function getAppliedPolicies() - { - throw Exception("Not Implemented"); - } - - function applyPolicy() - { - throw Exception("Not Implemented"); - } - - function removePolicy() - { - throw Exception("Not Implemented"); - } - - //ACL Services - function getACL() - { - throw Exception("Not Implemented"); - } - - function applyACL() - { - throw Exception("Not Implemented"); - } -}
diff --git a/phpclient/cmis_search.php b/phpclient/cmis_search.php deleted file mode 100644 index 54f6868..0000000 --- a/phpclient/cmis_search.php +++ /dev/null
@@ -1,53 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_search_text = $_SERVER["argv"][4]; -$repo_debug = $_SERVER["argv"][5]; - -$client = new CMISService($repo_url, $repo_username, $repo_password); - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$query = sprintf("SELECT cmis:name,score() as rel from cmis:document WHERE CONTAINS('%s')", $repo_search_text); -$objs = $client->query($query); -if ($repo_debug) -{ - print "Returned Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - print "Document: " . $obj->properties['cmis:name'] . "\n"; -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}
diff --git a/phpclient/cmis_test_suite.php b/phpclient/cmis_test_suite.php deleted file mode 100644 index 2cdca73..0000000 --- a/phpclient/cmis_test_suite.php +++ /dev/null
@@ -1,149 +0,0 @@ -<?php -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -require_once ('cmis_repository_wrapper.php'); -$repo_url = $_SERVER["argv"][1]; -$repo_username = $_SERVER["argv"][2]; -$repo_password = $_SERVER["argv"][3]; -$repo_folder = $_SERVER["argv"][4]; -$repo_new_folder = $_SERVER["argv"][5]; -$repo_debug = $_SERVER["argv"][6]; - -if ($repo_username == "alf_ticket") -{ - $client = new CMISService($repo_url, null, null, array ( - $repo_username => $repo_password - )); -} else -{ - $client = new CMISService($repo_url, $repo_username, $repo_password); -} - -if ($repo_debug) -{ - print "Repository Information:\n===========================================\n"; - print_r($client->workspace); - print "\n===========================================\n\n"; -} - -$myfolder = $client->getObjectByPath($repo_folder); -print_r($client->getLastRequest()); -if ($repo_debug) -{ - print "Folder Object:\n===========================================\n"; - print_r($myfolder); - print "\n===========================================\n\n"; -} - -$myfolderType = $client->getObjectTypeDefinition($myfolder->id); -print_r($client->getLastRequest()); -if ($repo_debug) -{ - print "Folder Type Def:\n===========================================\n"; - print_r($myfolderType); - print "\n===========================================\n\n"; -} - -$my_new_folder = $client->createFolder($myfolder->id, $repo_new_folder); -print_r($client->getLastRequest()); -if ($repo_debug) -{ - print "Return From Create Folder\n:\n===========================================\n"; - print_r($my_new_folder); - print "\n===========================================\n\n"; -} - -$obj_doc = $client->createDocument($my_new_folder->id, "TextFile.txt", array (), "THIS IS A NEW DOCUMENT", "text/plain"); -print_r($client->getLastRequest()); -if ($repo_debug) -{ - print "Return From Create Document\n:\n===========================================\n"; - print_r($obj_doc); - print "\n===========================================\n\n"; -} - -$obj_del = $client->createDocument($my_new_folder->id, "TextFileDel.txt", array (), "THIS IS A NEW DOCUMENT To Be Deleted", "text/plain"); -if ($repo_debug) -{ - print "Return From Create Document\n:\n===========================================\n"; - print_r($obj_del); - print "\n===========================================\n\n"; -} - -$objs = $client->getChildren($my_new_folder->id); -if ($repo_debug) -{ - print "Folder Children Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -$delContent = $client->getContentStream($obj_del->id); -echo "DEL CONTENT\n"; -print $delContent . "\n"; - -echo "DELETEING " . $obj_del->properties['cmis:name'] . "\n"; -$client->deleteObject($obj_del->id); -$sub_folder = $client->createFolder($my_new_folder->id, "SUB_FOLDER"); -$client->moveObject($obj_doc->id, $sub_folder->id, $my_new_folder->id); -print "MOVE REQUEST\n=============================================\n"; -print_r($client->getLastRequest()); - -$objs = $client->getChildren($my_new_folder->id); -if ($repo_debug) -{ - print "Folder Children Objects\n:\n===========================================\n"; - print_r($objs); - print "\n===========================================\n\n"; -} - -foreach ($objs->objectList as $obj) -{ - if ($obj->properties['cmis:baseTypeId'] == "cmis:document") - { - print "Document: " . $obj->properties['cmis:name'] . "\n"; - } - elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder") - { - print "Folder: " . $obj->properties['cmis:name'] . "\n"; - } else - { - print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n"; - } -} - -if ($repo_debug > 2) -{ - print "Final State of CLient:\n===========================================\n"; - print_r($client); -}