You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by shahidiqbal <sn...@gmail.com> on 2013/03/08 10:21:42 UTC

How search file content in jackrabbit repository.

Hi,

I'm using the following code to add a file in the repository.
//===================================================
public class SaveFile {

    public void storeFile(File file, String fileInfo) {
        try {
            InputStream fileStream = new FileInputStream(file);
            Session session = ConnectRespository.getSession();
            String fileName = FilenameUtils.removeExtension(file.getName());
            String extension = FilenameUtils.getExtension(file.getName());
            // First check the type of the file to add 
            MimeTable mt = MimeTable.getDefaultTable();
            String mimeType = mt.getContentTypeFor(fileName);

            if (mimeType == null) {
                mimeType = "application/octet-stream";
            }
            System.out.println(mimeType);
            Node root = session.getRootNode();
            Node sstormNode = null;
            try {
                sstormNode = root.getNode("sstorm");
            } catch (Exception e) {
                System.out.println("sstorm==> " + e);
            }


            if (sstormNode == null) {
                sstormNode = root.addNode("sstorm");
            }

            Node fileNode = sstormNode.addNode(fileName, "nt:file");
          
            fileNode.addMixin(JcrConstants.MIX_VERSIONABLE); //to set
versions
            fileNode.addMixin("ss:file");
            fileNode.setProperty("ss:extension", extension);
            fileNode.setProperty("ss:filename", fileName);
            fileNode.setProperty("ss:fileinfo", fileInfo);
            Node contentNode = fileNode.addNode("jcr:content",
"nt:resource");
            // set the mandatory properties 
            contentNode.setProperty("jcr:data", fileStream);
            contentNode.setProperty("jcr:lastModified",
Calendar.getInstance());
            contentNode.setProperty("jcr:mimeType", mimeType);

            System.out.println("DataSaved");
            session.save();
        } catch (Exception e) {
            System.out.println("File Not Saved............... " + e);
        }
    }

    public static void main(String args[]) {
        SaveFile saveFile = new SaveFile();
        File file = new
File("C:\\Users\\sstorm1\\Documents\\woprdpadshahid.txt");
        saveFile.storeFile(file, "HSSC");

    }
}
//====================================================


I'm using the following xpath or JCR_SQL2 query but i'm not able to get the
result.

xpath :
1. //element(*, nt:file)//element(*,
nt:resource)[jcr:contains(jcr:content,'shahid')]/rep:excerpt(.)
2. //element(*,
nt:resource)[jcr:contains(jcr:content,'shahid')]/rep:excerpt(.)

JCR_SQL2 :

1. select * from [nt:file] AS file where contains(file.*, '%shahid%')
2. select * from [nt:resource] AS resource where contains(resource .*,
'%shahid%')

I'm not able to get where the problem is ?
So can anyone please tell me where is the problem in code or query.








--
View this message in context: http://jackrabbit.510166.n4.nabble.com/How-search-file-content-in-jackrabbit-repository-tp4657899.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Re: How search file content in jackrabbit repository.

Posted by shahid iqbal <sn...@gmail.com>.
Hi,

Thanks for your reply.

I have tried the suggestion that you have provided.
But the searching is still not working.


thanks in advance.




--
View this message in context: http://jackrabbit.510166.n4.nabble.com/How-search-file-content-in-jackrabbit-repository-tp4657899p4657909.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Re: How search file content in jackrabbit repository.

Posted by Ulrich <Fo...@gombers.de>.
To store the file it has to be of type Binary.

ValueFactory valueFactory = session.getValueFactory();
Binary contentValue = valueFactory.createBinary(file)
contentNode.setProperty("jcr:data", contentValue);


Am 08.03.2013 um 10:21 schrieb shahidiqbal <sn...@gmail.com>:

> Hi,
> 
> I'm using the following code to add a file in the repository.
> //===================================================
> public class SaveFile {
> 
>    public void storeFile(File file, String fileInfo) {
>        try {
>            InputStream fileStream = new FileInputStream(file);
>            Session session = ConnectRespository.getSession();
>            String fileName = FilenameUtils.removeExtension(file.getName());
>            String extension = FilenameUtils.getExtension(file.getName());
>            // First check the type of the file to add 
>            MimeTable mt = MimeTable.getDefaultTable();
>            String mimeType = mt.getContentTypeFor(fileName);
> 
>            if (mimeType == null) {
>                mimeType = "application/octet-stream";
>            }
>            System.out.println(mimeType);
>            Node root = session.getRootNode();
>            Node sstormNode = null;
>            try {
>                sstormNode = root.getNode("sstorm");
>            } catch (Exception e) {
>                System.out.println("sstorm==> " + e);
>            }
> 
> 
>            if (sstormNode == null) {
>                sstormNode = root.addNode("sstorm");
>            }
> 
>            Node fileNode = sstormNode.addNode(fileName, "nt:file");
> 
>            fileNode.addMixin(JcrConstants.MIX_VERSIONABLE); //to set
> versions
>            fileNode.addMixin("ss:file");
>            fileNode.setProperty("ss:extension", extension);
>            fileNode.setProperty("ss:filename", fileName);
>            fileNode.setProperty("ss:fileinfo", fileInfo);
>            Node contentNode = fileNode.addNode("jcr:content",
> "nt:resource");
>            // set the mandatory properties 
>            contentNode.setProperty("jcr:data", fileStream);
>            contentNode.setProperty("jcr:lastModified",
> Calendar.getInstance());
>            contentNode.setProperty("jcr:mimeType", mimeType);
> 
>            System.out.println("DataSaved");
>            session.save();
>        } catch (Exception e) {
>            System.out.println("File Not Saved............... " + e);
>        }
>    }
> 
>    public static void main(String args[]) {
>        SaveFile saveFile = new SaveFile();
>        File file = new
> File("C:\\Users\\sstorm1\\Documents\\woprdpadshahid.txt");
>        saveFile.storeFile(file, "HSSC");
> 
>    }
> }
> //====================================================
> 
> 
> I'm using the following xpath or JCR_SQL2 query but i'm not able to get the
> result.
> 
> xpath :
> 1. //element(*, nt:file)//element(*,
> nt:resource)[jcr:contains(jcr:content,'shahid')]/rep:excerpt(.)
> 2. //element(*,
> nt:resource)[jcr:contains(jcr:content,'shahid')]/rep:excerpt(.)
> 
> JCR_SQL2 :
> 
> 1. select * from [nt:file] AS file where contains(file.*, '%shahid%')
> 2. select * from [nt:resource] AS resource where contains(resource .*,
> '%shahid%')
> 
> I'm not able to get where the problem is ?
> So can anyone please tell me where is the problem in code or query.
> 
> 
> 
> 
> 
> 
> 
> 
> --
> View this message in context: http://jackrabbit.510166.n4.nabble.com/How-search-file-content-in-jackrabbit-repository-tp4657899.html
> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.