/* * Copyright (C) 2009 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.services.jcr.usecases.index; import org.exoplatform.services.jcr.usecases.BaseUsecasesTest; import java.io.InputStream; import java.util.Calendar; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.query.Query; import javax.jcr.query.QueryResult; /** * Created by The eXo Platform SAS. * * @author <a href="mailto:zagrebin_v@mail.ru">Victor Zagrebin</a> * @version $Id: SlowListTest.java 11907 2008-03-13 15:36:21Z ksm $ The test for indexing an excel * .xls file which contained within jcr:data property */ public class SlowListTest extends BaseUsecasesTest { /** * The test for indexing an excel .xls file * * @throws Exception */ public void testIndexTextPlainFile() throws Exception { // variables for the execution time long start, end; InputStream is = SlowListTest.class.getResourceAsStream("/index/test_index.xls"); assertNotNull("Can not create an input stream from file for indexing", is); Node test = root.addNode("cms2").addNode("test"); start = System.currentTimeMillis(); // to get the time of start assertNotNull("Can not create a test node for indexing", test); for (int i = 0; i < 111; i++) { is = SlowListTest.class.getResourceAsStream("/index/test_index.xls"); String name = new String("nnn-" + i); Node cool = test.addNode(name, "nt:file"); Node contentNode = cool.addNode("jcr:content", "nt:resource"); //contentNode.setProperty("jcr:encoding", "UTF-8"); contentNode.setProperty("jcr:data", is); contentNode.setProperty("jcr:mimeType", "application/excel"); contentNode.setProperty("jcr:lastModified", session.getValueFactory().createValue(Calendar.getInstance())); assertNotNull("Can not create a cool node for indexing", cool); assertNotNull("Can not create a contentNode node for indexing", contentNode); } end = System.currentTimeMillis(); session.save(); session.save(); start = System.currentTimeMillis(); Query q; String xpath = "/jcr:root/cms2/test//*"; q = session.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH); assertNotNull("Can not create a query for indexing", q); QueryResult result = q.execute(); end = System.currentTimeMillis(); start = System.currentTimeMillis(); for (NodeIterator it = result.getNodes(); it.hasNext();) { Node next = it.nextNode(); } end = System.currentTimeMillis(); start = System.currentTimeMillis(); for (NodeIterator it = result.getNodes(); it.hasNext();) { Node next = it.nextNode(); } end = System.currentTimeMillis(); // ------------------------------------------------------------------------------------- Node n2 = test.addNode("fff"); session.save(); result = q.execute(); start = System.currentTimeMillis(); for (NodeIterator it = result.getNodes(); it.hasNext();) { Node next = it.nextNode(); } end = System.currentTimeMillis(); start = System.currentTimeMillis(); for (NodeIterator it = result.getNodes(); it.hasNext();) { Node next = it.nextNode(); } end = System.currentTimeMillis(); // [PN] 21.07.06 hasn't fails that no fail // fail("QUERY TEST"); // Only for the view of intermediate results } }