Return-Path: Delivered-To: apmail-incubator-chemistry-commits-archive@minotaur.apache.org Received: (qmail 63030 invoked from network); 22 Sep 2010 22:00:41 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 22 Sep 2010 22:00:41 -0000 Received: (qmail 31652 invoked by uid 500); 22 Sep 2010 22:00:41 -0000 Delivered-To: apmail-incubator-chemistry-commits-archive@incubator.apache.org Received: (qmail 31606 invoked by uid 500); 22 Sep 2010 22:00:40 -0000 Mailing-List: contact chemistry-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: chemistry-dev@incubator.apache.org Delivered-To: mailing list chemistry-commits@incubator.apache.org Received: (qmail 31597 invoked by uid 99); 22 Sep 2010 22:00:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Sep 2010 22:00:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Sep 2010 22:00:39 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2009A2388906; Wed, 22 Sep 2010 22:00:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1000255 - in /incubator/chemistry/opencmis-swingclient/trunk: pom.xml src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java src/main/resources/scripts/CMIS.groovy src/main/resources/scripts/startup.groovy Date: Wed, 22 Sep 2010 22:00:18 -0000 To: chemistry-commits@incubator.apache.org From: fmui@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100922220019.2009A2388906@eris.apache.org> Author: fmui Date: Wed Sep 22 22:00:18 2010 New Revision: 1000255 URL: http://svn.apache.org/viewvc?rev=1000255&view=rev Log: - made the Swing Client even more Groovy Added: incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/CMIS.groovy Modified: incubator/chemistry/opencmis-swingclient/trunk/pom.xml incubator/chemistry/opencmis-swingclient/trunk/src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/startup.groovy Modified: incubator/chemistry/opencmis-swingclient/trunk/pom.xml URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-swingclient/trunk/pom.xml?rev=1000255&r1=1000254&r2=1000255&view=diff ============================================================================== --- incubator/chemistry/opencmis-swingclient/trunk/pom.xml (original) +++ incubator/chemistry/opencmis-swingclient/trunk/pom.xml Wed Sep 22 22:00:18 2010 @@ -231,7 +231,7 @@ org.codehaus.groovy - groovy-all + groovy 1.7.5 Modified: incubator/chemistry/opencmis-swingclient/trunk/src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-swingclient/trunk/src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java?rev=1000255&r1=1000254&r2=1000255&view=diff ============================================================================== --- incubator/chemistry/opencmis-swingclient/trunk/src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java (original) +++ incubator/chemistry/opencmis-swingclient/trunk/src/main/java/org/apache/chemistry/opencmis/swingclient/ClientFrame.java Wed Sep 22 22:00:18 2010 @@ -162,7 +162,6 @@ public class ClientFrame extends JFrame if (stream == null) { throw new Exception("Groovy startup script is missing!"); } else { - BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8")); StringBuilder sb = new StringBuilder(); String s; @@ -173,6 +172,8 @@ public class ClientFrame extends JFrame } console.getInputArea().setText(sb.toString()); + + reader.close(); } } catch (Exception ex) { ClientHelper.showError(thisFrame, ex); Added: incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/CMIS.groovy URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/CMIS.groovy?rev=1000255&view=auto ============================================================================== --- incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/CMIS.groovy (added) +++ incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/CMIS.groovy Wed Sep 22 22:00:18 2010 @@ -0,0 +1,91 @@ +package scripts + +import java.io.ByteArrayInputStream; + +import org.apache.chemistry.opencmis.commons.* +import org.apache.chemistry.opencmis.commons.data.* +import org.apache.chemistry.opencmis.commons.enums.* +import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl; +import org.apache.chemistry.opencmis.client.api.* + +class CMIS { + + Session session + + CMIS(Session session) { + this.session = session + } + + CmisObject getObject(id) { + CmisObject result = null + + if(id instanceof CmisObject) { + result = id + } else if(id instanceof ObjectId) { + result = session.getObject(id) + } else if(id instanceof String) { + if(id.startsWith("/")) { + result = session.getObjectByPath(id) + } else { + result = session.getObject(session.createObjectId(id)) + } + } + + if(result == null) { + throw new Exception("Object not found!") + } + + return result + } + + void printProperties(id) { + CmisObject object = getObject(id) + + for(Property prop: object.getProperties()) { + printProperty(prop) + } + } + + void printProperty(Property prop) { + println prop.getId() + ": " + prop.getValuesAsString() + } + + Folder createFolder(parent, String name, String type = "cmis:folder") { + + CmisObject parentFolder = getObject(parent) + if(!(parentFolder instanceof Folder)) { + throw new Exception("Parent is not a folder!") + } + + def properties = [ + (PropertyIds.OBJECT_TYPE_ID): type, + (PropertyIds.NAME): name + ] + + return ((Folder) parentFolder).createFolder(properties, session.getDefaultContext()) + } + + Document createTextDocument(parent, String name, String content, String type = "cmis:document", + VersioningState versioningState = VersioningState.MAJOR) { + + CmisObject parentFolder = getObject(parent) + if(!(parentFolder instanceof Folder)) { + throw new Exception("Parent is not a folder!") + } + + def properties = [ + (PropertyIds.OBJECT_TYPE_ID): type, + (PropertyIds.NAME): name + ] + + def stream = new ByteArrayInputStream(content.bytes) + def contentStream = new ContentStreamImpl(name, content.bytes.length, "text/plain", stream) + + return ((Folder) parentFolder).createDocument(properties, contentStream, + versioningState, session.getDefaultContext()) + } + + void delete(id) { + getObject(id).delete(true) + } +} \ No newline at end of file Modified: incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/startup.groovy URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/startup.groovy?rev=1000255&r1=1000254&r2=1000255&view=diff ============================================================================== --- incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/startup.groovy (original) +++ incubator/chemistry/opencmis-swingclient/trunk/src/main/resources/scripts/startup.groovy Wed Sep 22 22:00:18 2010 @@ -1,17 +1,36 @@ import org.apache.chemistry.opencmis.commons.* import org.apache.chemistry.opencmis.commons.data.* +import org.apache.chemistry.opencmis.commons.enums.* import org.apache.chemistry.opencmis.client.api.* -import org.apache.chemistry.opencmis.commons.enums.*; -println "Variable 'session' is bound to the current OpenCMIS session." -println "" -println "Reposiory: " + session.getRepositoryInfo().getName() -println "" +// variable 'session' is bound to the current OpenCMIS session +// print the repository name - Java style +println "Repository: " + session.getRepositoryInfo().getName() + +// print the repository name - Groovy style +println "Repository: " + session.repositoryInfo.name + + +// get root folder Folder root = session.getRootFolder() println "--- Root Folder: " + root.getName() + " ---" -println "" +// print root folder children for(CmisObject object: root.getChildren()) { println object.getName() + " \t(" + object.getType().getId() + ")" } + +// CMIS helper script +def cmis = new scripts.CMIS(session) + +cmis.printProperties "/" // access by path +cmis.printProperties session.rootFolder.id // access by id +cmis.printProperties session.rootFolder // access by object + +// Folder folder = cmis.createFolder("/", "test-folder", "cmis:folder") +// cmis.delete folder + +// Document doc = cmis.createTextDocument("/", "test.txt", "Hello World!", "cmis:document") + +// see /scripts/CMIS.groovy for more methods \ No newline at end of file