jackrabbit sample

package org.apache.jackrabbit.firsthops;


import java.io.File;
import java.io.FileInputStream;
import java.util.Calendar;
import java.util.Hashtable;


import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.jcr.Workspace;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import javax.jcr.query.QueryResult;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;


import org.apache.jackrabbit.core.jndi.RegistryHelper;
import org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory;
import org.apache.jackrabbit.value.BinaryImpl;


import sun.net.www.MimeTable;


@SuppressWarnings("restriction")
public class TestJNDI {


/**
* @param args
*/
public static void main(String[] args) {

String configFile = "repository.xml";
        String repHomeDir = "repository";
        Hashtable<String, Object> env = new Hashtable<String, Object>();
        env.put(Context.INITIAL_CONTEXT_FACTORY,
                DummyInitialContextFactory.class.getName());
        env.put(Context.PROVIDER_URL, "localhost");
        try {
InitialContext ctx = new InitialContext(env);
RegistryHelper.registerRepository(ctx, "repo", configFile, repHomeDir,
               true);
Repository r = (Repository) ctx.lookup("repo");
SimpleCredentials cred = new SimpleCredentials("admin","admin".toCharArray());
       Session session = r.login(cred, null);
       
       Node rn = session.getRootNode();
       Workspace ws = session.getWorkspace();
       ws.getNamespaceRegistry().registerNamespace("wiki","http://localhost/wiki/1.0");
       
       Node encyclopedia = rn.addNode("wiki:encyclopedia");
       Node p = encyclopedia.addNode("wiki:entry");
       p.setProperty("wiki:title", toStringValue("rose"));
       p.setProperty("wiki:content",toStringValue("A rose is a flowering shrub."));
       p.setProperty("wiki:category", new Value[] { toStringValue("flower"),toStringValue("plant"), toStringValue("rose") });


       Node n = encyclopedia.addNode("wiki:entry");
       n.setProperty("wiki:title", toStringValue("Shakespeare"));
       n.setProperty("wiki:content",toStringValue("A famous poet who likes roses."));
       n.setProperty("wiki:category", toStringValue("poet"));
       // Save
       session.save();
       // Query
       QueryManager qm = ws.getQueryManager();
       Query q = qm.createQuery("//wiki:encyclopedia/wiki:entry[@wiki:title = 'rose']",Query.XPATH);// deprecated
       QueryResult result = q.execute();// Query
       NodeIterator it = result.getNodes();
       // Iterator
       while (it.hasNext()) {
           Node entry = it.nextNode();
           entry.getUUID();
           // print
           System.out.println(entry.toString());
       }
       // save file
       File file = new File("f:\\2012-03-07_111233.txt");
       MimeTable mt = MimeTable.getDefaultTable();
       String mimeType = mt.getContentTypeFor(file.getName());
       if (mimeType == null) {
           mimeType = "application/octet-stream";
       }
       Node fileNode = rn.addNode(file.getName(), "nt:file");
       Node resNode = fileNode.addNode("jcr:content", "nt:resource");
       resNode.setProperty("jcr:mimeType", mimeType);
       resNode.setProperty("jcr:encoding", "");
       // stream
       // deprecated
       // resNode.setProperty("jcr:data", new FileInputStream(file));
       // let Binary change to FileInputStream
       Binary fileBinary = new BinaryImpl(new FileInputStream(file));
       resNode.setProperty("jcr:data", fileBinary);


       Calendar lastModified = Calendar.getInstance();
       lastModified.setTimeInMillis(file.lastModified());
       resNode.setProperty("jcr:lastModified", lastModified);
       // save
       session.save();


       // Iterator print
       printAll(rn);
       
} catch (Exception e) {
e.printStackTrace();
}
        
}

private static org.apache.jackrabbit.value.StringValue toStringValue(
            String str) {
        return new org.apache.jackrabbit.value.StringValue(str);
    }

private static void printAll(Node node) throws RepositoryException {
        printFormat(node.toString());
        PropertyIterator propertys = node.getProperties();
        while (propertys.hasNext()) {
            Property entry = propertys.nextProperty();
            if (entry.isMultiple()) {
                Value[] values = entry.getValues();
                if (values == null) {
                    continue;
                }
                for (Value v : values) {
                    printFormat(v.getString());
                }
            } else {
                printFormat(entry.getValue().getString());
            }
        }


        NodeIterator entries = node.getNodes();
        while (entries.hasNext()) {
            Node entry = entries.nextNode();
            printAll(entry);
        }
    }

private static void printFormat(Object str) {
       System.out.println("####################:" + str);
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提示错误[ERROR] [ERROR] Some problems were encountered while processing the POMs: [ERROR] Unresolveable build extension: Plugin org.apache.maven.wagon:wagon-webdav-jackrabbit:1.0-beta-6 or one of its dependencies could not be resolved: The following artifacts could not be resolved: commons-httpclient:commons-httpclient:jar:3.1 (absent): Could not transfer artifact commons-httpclient:commons-httpclient:jar:3.1 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/146.75.112.215] failed: connect timed out @ @ [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project org.drools:droolsjbpm-integration:7.74.0-SNAPSHOT (D:\droolsjbpm-integration-main\droolsjbpm-integration-main\pom.xml) has 1 error [ERROR] Unresolveable build extension: Plugin org.apache.maven.wagon:wagon-webdav-jackrabbit:1.0-beta-6 or one of its dependencies could not be resolved: The following artifacts could not be resolved: commons-httpclient:commons-httpclient:jar:3.1 (absent): Could not transfer artifact commons-httpclient:commons-httpclient:jar:3.1 from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/146.75.112.215] failed: connect timed out -> [Help 2] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/PluginManagerException
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值