mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Remove scheduled action xml
Fix AR-123 lucene PATH serach for "/" and "/." now work git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2675 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,442 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<!--
|
||||
Define the model factory used to generate object models suitable for use with freemarker templates.
|
||||
-->
|
||||
<bean id="templateActionModelFactory" class="org.alfresco.repo.action.scheduled.FreeMarkerWithLuceneExtensionsModelFactory">
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
An example action template that defines an action to add the generalclassifiable aspect to all nodes that do not have
|
||||
and add a category defined by path.
|
||||
-->
|
||||
<bean id="addClassifiableAspectAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
|
||||
<property name="actionName">
|
||||
<value>add-features</value>
|
||||
</property>
|
||||
<property name="parameterTemplates">
|
||||
<map>
|
||||
<entry>
|
||||
<key>
|
||||
<value>aspect-name</value>
|
||||
</key>
|
||||
<value>{http://www.alfresco.org/model/content/1.0}generalclassifiable</value>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<key>
|
||||
<value>{http://www.alfresco.org/model/content/1.0}categories</value>
|
||||
</key>
|
||||
<value>${selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/cm:generalclassifiable/cm:Languages/cm:English"' )}</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="DictionaryService"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
An example action template that removes an aspect from all those nodes that have the aspect.
|
||||
-->
|
||||
<bean id="removeClassifiableAspectAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
|
||||
<property name="actionName">
|
||||
<value>remove-features</value>
|
||||
</property>
|
||||
<property name="parameterTemplates">
|
||||
<map>
|
||||
<entry>
|
||||
<key>
|
||||
<value>aspect-name</value>
|
||||
</key>
|
||||
<value>{http://www.alfresco.org/model/content/1.0}generalclassifiable</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="DictionaryService"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
An example that copies the tutorial node into the company home space
|
||||
-->
|
||||
<bean id="copyAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
|
||||
<property name="actionName">
|
||||
<value>copy</value>
|
||||
</property>
|
||||
<property name="parameterTemplates">
|
||||
<map>
|
||||
<entry>
|
||||
<key>
|
||||
<value>destination-folder</value>
|
||||
</key>
|
||||
<value>${selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home"' )}</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<value>assoc-type</value>
|
||||
</key>
|
||||
<value>${node.primaryParentAssoc.typeQName}</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<value>assoc-name</value>
|
||||
</key>
|
||||
<value>${node.primaryParentAssoc.QName}</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<value>deep-copy</value>
|
||||
</key>
|
||||
<value>false</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="DictionaryService"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
An example that sets the created date to now
|
||||
-->
|
||||
<bean id="setCreatedDateAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
|
||||
<property name="actionName">
|
||||
<value>set-property-value</value>
|
||||
</property>
|
||||
<property name="parameterTemplates">
|
||||
<map>
|
||||
<entry>
|
||||
<key>
|
||||
<value>property</value>
|
||||
</key>
|
||||
<value>{http://www.alfresco.org/model/content/1.0}created</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<value>value</value>
|
||||
</key>
|
||||
<value>${today?string("yyyy-MM-dd'T'HH:mm:ss.sss'Z'")}</value>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="DictionaryService"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
Compound action example ...
|
||||
-->
|
||||
|
||||
<bean id="compositeAction" class="org.alfresco.repo.action.scheduled.CompositeTemplateActionDefinition">
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
<property name="templateActionDefinitions">
|
||||
<list>
|
||||
<ref bean="copyAction"/>
|
||||
<ref bean="setCreatedDateAction"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- ONE_TRANSACTION ISOLATED_TRANSACTIONS UNTIL_FIRST_FAILURE -->
|
||||
|
||||
<!--
|
||||
Define a job for adding the classified aspect to nodes.
|
||||
-->
|
||||
<bean id="addClassifiableAspectEveryTenMinutes" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
|
||||
<property name="transactionMode">
|
||||
<value>UNTIL_FIRST_FAILURE</value>
|
||||
</property>
|
||||
<property name="compensatingActionMode">
|
||||
<value>IGNORE</value>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="SearchService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
<property name="queryLanguage">
|
||||
<value>lucene</value>
|
||||
</property>
|
||||
<property name="stores">
|
||||
<list>
|
||||
<value>workspace://SpacesStore</value>
|
||||
</list>
|
||||
</property>
|
||||
<!-- Find all nodes that do not have the aspect -->
|
||||
<property name="queryTemplate">
|
||||
<value>PATH:"//\*" -ASPECT:"{http://www.alfresco.org/model/content/1.0}generalclassifiable"</value>
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0 50 * * * ?</value>
|
||||
</property>
|
||||
<property name="jobName">
|
||||
<value>jobA</value>
|
||||
</property>
|
||||
<property name="jobGroup">
|
||||
<value>jobGroup</value>
|
||||
</property>
|
||||
<property name="triggerName">
|
||||
<value>triggerA</value>
|
||||
</property>
|
||||
<property name="triggerGroup">
|
||||
<value>triggerGroup</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="templateActionDefinition">
|
||||
<ref bean="addClassifiableAspectAction"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="TransactionService"/>
|
||||
</property>
|
||||
<property name="runAsUser">
|
||||
<value>System</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
Define a job to remove an aspect.
|
||||
-->
|
||||
<bean id="removeClassifiableAspectEveryTenMinutes" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
|
||||
<property name="transactionMode">
|
||||
<value>UNTIL_FIRST_FAILURE</value>
|
||||
</property>
|
||||
<property name="compensatingActionMode">
|
||||
<value>IGNORE</value>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="SearchService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
<property name="queryLanguage">
|
||||
<value>lucene</value>
|
||||
</property>
|
||||
<property name="stores">
|
||||
<list>
|
||||
<value>workspace://SpacesStore</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="queryTemplate">
|
||||
<value>ASPECT:"{http://www.alfresco.org/model/content/1.0}generalclassifiable"</value>
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0 55 * * * ?</value>
|
||||
</property>
|
||||
<property name="jobName">
|
||||
<value>jobB</value>
|
||||
</property>
|
||||
<property name="jobGroup">
|
||||
<value>jobGroup</value>
|
||||
</property>
|
||||
<property name="triggerName">
|
||||
<value>triggerB</value>
|
||||
</property>
|
||||
<property name="triggerGroup">
|
||||
<value>triggerGroup</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="templateActionDefinition">
|
||||
<ref bean="removeClassifiableAspectAction"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="TransactionService"/>
|
||||
</property>
|
||||
<property name="runAsUser">
|
||||
<value>System</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
Define a job to remove an aspect.
|
||||
-->
|
||||
<bean id="copyTutorialEveryTenMinutes" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
|
||||
<property name="transactionMode">
|
||||
<value>UNTIL_FIRST_FAILURE</value>
|
||||
</property>
|
||||
<property name="compensatingActionMode">
|
||||
<value>IGNORE</value>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="SearchService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
<property name="queryLanguage">
|
||||
<value>lucene</value>
|
||||
</property>
|
||||
<property name="stores">
|
||||
<list>
|
||||
<value>workspace://SpacesStore</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="queryTemplate">
|
||||
<value>+PATH:"/app:company_home/*//*" +TEXT:"tutorial"</value>
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0 40 * * * ?</value>
|
||||
</property>
|
||||
<property name="jobName">
|
||||
<value>jobC</value>
|
||||
</property>
|
||||
<property name="jobGroup">
|
||||
<value>jobGroup</value>
|
||||
</property>
|
||||
<property name="triggerName">
|
||||
<value>triggerC</value>
|
||||
</property>
|
||||
<property name="triggerGroup">
|
||||
<value>triggerGroup</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="templateActionDefinition">
|
||||
<ref bean="copyAction"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="TransactionService"/>
|
||||
</property>
|
||||
<property name="runAsUser">
|
||||
<value>System</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
Find content created yesterday in the previous 10 years:-
|
||||
set the created date to today and copy to the company home
|
||||
-->
|
||||
<bean id="makeStuffCreatedRecentlyCreatedNow" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
|
||||
<property name="transactionMode">
|
||||
<value>UNTIL_FIRST_FAILURE</value>
|
||||
</property>
|
||||
<property name="compensatingActionMode">
|
||||
<value>IGNORE</value>
|
||||
</property>
|
||||
<property name="searchService">
|
||||
<ref bean="SearchService"/>
|
||||
</property>
|
||||
<property name="templateService">
|
||||
<ref bean="TemplateService"/>
|
||||
</property>
|
||||
<property name="queryLanguage">
|
||||
<value>lucene</value>
|
||||
</property>
|
||||
<property name="stores">
|
||||
<list>
|
||||
<value>workspace://SpacesStore</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="queryTemplate">
|
||||
<value>@cm\:created:${luceneDateRange(yesterday, "-P10Y")}</value>
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0 0/1 * * * ?</value>
|
||||
</property>
|
||||
<property name="jobName">
|
||||
<value>jobD</value>
|
||||
</property>
|
||||
<property name="jobGroup">
|
||||
<value>jobGroup</value>
|
||||
</property>
|
||||
<property name="triggerName">
|
||||
<value>triggerD</value>
|
||||
</property>
|
||||
<property name="triggerGroup">
|
||||
<value>triggerGroup</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory"/>
|
||||
</property>
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="templateActionModelFactory">
|
||||
<ref bean="templateActionModelFactory"/>
|
||||
</property>
|
||||
<property name="templateActionDefinition">
|
||||
<ref bean="compositeAction"/>
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<ref bean="TransactionService"/>
|
||||
</property>
|
||||
<property name="runAsUser">
|
||||
<value>System</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -198,7 +198,6 @@ public class LuceneTest extends TestCase
|
||||
StoreRef storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis());
|
||||
rootNodeRef = nodeService.getRootNode(storeRef);
|
||||
|
||||
|
||||
n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}one"),
|
||||
testSuperType).getChildRef();
|
||||
nodeService.setProperty(n1, QName.createQName("{namespace}property-1"), "ValueOne");
|
||||
@@ -208,7 +207,6 @@ public class LuceneTest extends TestCase
|
||||
nodeService.setProperty(n2, QName.createQName("{namespace}property-1"), "valueone");
|
||||
nodeService.setProperty(n2, QName.createQName("{namespace}property-2"), "valuetwo");
|
||||
|
||||
|
||||
n3 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("{namespace}three"),
|
||||
testSuperType).getChildRef();
|
||||
|
||||
@@ -334,7 +332,6 @@ public class LuceneTest extends TestCase
|
||||
super(arg0);
|
||||
}
|
||||
|
||||
|
||||
public void test0() throws Exception
|
||||
{
|
||||
luceneFTS.pause();
|
||||
@@ -343,14 +340,11 @@ public class LuceneTest extends TestCase
|
||||
luceneFTS.resume();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testDeleteIssue() throws Exception
|
||||
{
|
||||
|
||||
testTX.commit();
|
||||
|
||||
|
||||
UserTransaction tx = transactionService.getUserTransaction();
|
||||
tx.begin();
|
||||
ChildAssociationRef testFind = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName
|
||||
@@ -395,13 +389,11 @@ public class LuceneTest extends TestCase
|
||||
tx3.commit();
|
||||
}
|
||||
|
||||
|
||||
public void testMTDeleteIssue() throws Exception
|
||||
{
|
||||
|
||||
testTX.commit();
|
||||
|
||||
|
||||
UserTransaction tx = transactionService.getUserTransaction();
|
||||
tx.begin();
|
||||
ChildAssociationRef testFind = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName
|
||||
@@ -418,7 +410,6 @@ public class LuceneTest extends TestCase
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
|
||||
Thread runner = null;
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
@@ -439,8 +430,6 @@ public class LuceneTest extends TestCase
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
UserTransaction tx3 = transactionService.getUserTransaction();
|
||||
tx3.begin();
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "QNAME:\"namespace:testFind\"");
|
||||
@@ -477,8 +466,8 @@ public class LuceneTest extends TestCase
|
||||
HashSet<ChildAssociationRef> refs = new HashSet<ChildAssociationRef>();
|
||||
for (int j = 0; j < i; j++)
|
||||
{
|
||||
ChildAssociationRef test = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, QName
|
||||
.createQName("{namespace}test"), testSuperType);
|
||||
ChildAssociationRef test = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
||||
QName.createQName("{namespace}test"), testSuperType);
|
||||
refs.add(test);
|
||||
}
|
||||
|
||||
@@ -514,8 +503,6 @@ public class LuceneTest extends TestCase
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void testDeltaIssue() throws Exception
|
||||
{
|
||||
final NodeService pns = (NodeService) ctx.getBean("NodeService");
|
||||
@@ -745,8 +732,6 @@ public class LuceneTest extends TestCase
|
||||
|
||||
luceneFTS.resume();
|
||||
|
||||
|
||||
|
||||
SearchParameters sp3 = new SearchParameters();
|
||||
sp3.addStore(rootNodeRef.getStoreRef());
|
||||
sp3.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
@@ -1050,7 +1035,8 @@ public class LuceneTest extends TestCase
|
||||
|
||||
QName qname = QName.createQName("", "property-1");
|
||||
|
||||
} finally
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
@@ -1059,7 +1045,8 @@ public class LuceneTest extends TestCase
|
||||
try
|
||||
{
|
||||
assertEquals(2, results.length());
|
||||
} finally
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
@@ -1069,7 +1056,8 @@ public class LuceneTest extends TestCase
|
||||
try
|
||||
{
|
||||
assertEquals(1, results.length());
|
||||
} finally
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
@@ -1129,17 +1117,17 @@ public class LuceneTest extends TestCase
|
||||
searcher.setDictionaryService(dictionaryService);
|
||||
searcher.setNamespacePrefixResolver(getNamespacePrefixReolsver("namespace"));
|
||||
searcher.setQueryRegister(queryRegisterComponent);
|
||||
ResultSet results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null);
|
||||
ResultSet results;
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/.\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:one\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
// results = searcher.query(rootNodeRef.getStoreRef(), "lucene",
|
||||
// "PATH:\"/\"", null, null);
|
||||
// assertEquals(1, results.length());
|
||||
// results.close();
|
||||
// results = searcher.query(rootNodeRef.getStoreRef(), "lucene",
|
||||
// "PATH:\"/.\"", null, null);
|
||||
// assertEquals(1, results.length());
|
||||
// results.close();
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "PATH:\"/namespace:two\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
@@ -1373,15 +1361,14 @@ public class LuceneTest extends TestCase
|
||||
// Type search tests
|
||||
|
||||
QName qname = QName.createQName(TEST_NAMESPACE, "int-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"1\"", null,
|
||||
null);
|
||||
results = searcher
|
||||
.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"1\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "int-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":1", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":1", null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
@@ -1394,22 +1381,20 @@ public class LuceneTest extends TestCase
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "int-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":01", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":01", null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "int-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@" + escapeQName(qname) + ":\"001\"", null,
|
||||
null);
|
||||
results = searcher
|
||||
.query(rootNodeRef.getStoreRef(), "lucene", "@" + escapeQName(qname) + ":\"001\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "int-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@test\\:int\\-ista:\"0001\"", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@test\\:int\\-ista:\"0001\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
@@ -1441,22 +1426,22 @@ public class LuceneTest extends TestCase
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "long-ista");
|
||||
results = searcher
|
||||
.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"02\"", null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"02\"", null,
|
||||
null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "long-ista");
|
||||
results = searcher
|
||||
.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"002\"", null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"002\"", null,
|
||||
null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "long-ista");
|
||||
results = searcher
|
||||
.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"0002\"", null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"0002\"", null,
|
||||
null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
@@ -1495,19 +1480,18 @@ public class LuceneTest extends TestCase
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "float-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[3.3 TO 3.4]",
|
||||
null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "float-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{3.3 TO 3.4}", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{3.3 TO 3.4}",
|
||||
null, null);
|
||||
assertEquals(0, results.length());
|
||||
results.close();
|
||||
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "float-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":\"3.40\"", null,
|
||||
null);
|
||||
@@ -1550,25 +1534,24 @@ public class LuceneTest extends TestCase
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "double-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO 5.7]", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":[5.5 TO 5.7]",
|
||||
null, null);
|
||||
assertEquals(1, results.length());
|
||||
assertNotNull(results.getRow(0).getValue(qname));
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "double-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO 5.6}", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.5 TO 5.6}",
|
||||
null, null);
|
||||
assertEquals(0, results.length());
|
||||
results.close();
|
||||
|
||||
qname = QName.createQName(TEST_NAMESPACE, "double-ista");
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO 5.7}", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@" + escapeQName(qname) + ":{5.6 TO 5.7}",
|
||||
null, null);
|
||||
assertEquals(0, results.length());
|
||||
results.close();
|
||||
|
||||
|
||||
Date date = new Date();
|
||||
String sDate = CachingDateFormat.getDateFormat().format(date);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "\\@"
|
||||
@@ -1621,13 +1604,13 @@ public class LuceneTest extends TestCase
|
||||
assertEquals(13, results.length());
|
||||
results.close();
|
||||
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + ISO9075.getXPathName(testAspect) + "\"", null,
|
||||
null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\""
|
||||
+ ISO9075.getXPathName(testAspect) + "\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\"" + ISO9075.getXPathName(testSuperAspect) + "\"",
|
||||
null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "ASPECT:\""
|
||||
+ ISO9075.getXPathName(testSuperAspect) + "\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
@@ -1637,11 +1620,14 @@ public class LuceneTest extends TestCase
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@"+LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString())+":\"fox\"", null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@"
|
||||
+ LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ":\"fox\"", null, null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@"+LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString())+".mimetype:\"text/plain\"", null, null);
|
||||
results = searcher.query(rootNodeRef.getStoreRef(), "lucene", "@"
|
||||
+ LuceneQueryParser.escape(ContentModel.PROP_CONTENT.toString()) + ".mimetype:\"text/plain\"", null,
|
||||
null);
|
||||
assertEquals(1, results.length());
|
||||
results.close();
|
||||
|
||||
@@ -3026,7 +3012,6 @@ public class LuceneTest extends TestCase
|
||||
|
||||
serviceRegistry.getNodeService().deleteNode(n1);
|
||||
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
@@ -3045,7 +3030,6 @@ public class LuceneTest extends TestCase
|
||||
assertEquals(15, results.length());
|
||||
results.close();
|
||||
|
||||
|
||||
NodeRef created = serviceRegistry.getNodeService().createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
|
||||
QName.createQName("{namespace}texas"), testSuperType).getChildRef();
|
||||
|
||||
@@ -3069,7 +3053,6 @@ public class LuceneTest extends TestCase
|
||||
|
||||
serviceRegistry.getNodeService().deleteNode(created);
|
||||
|
||||
|
||||
sp = new SearchParameters();
|
||||
sp.addStore(rootNodeRef.getStoreRef());
|
||||
sp.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
|
@@ -17,6 +17,7 @@
|
||||
package org.alfresco.repo.search.impl.lucene.query;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.alfresco.repo.search.impl.lucene.query.LeafScorer.Counter;
|
||||
@@ -79,10 +80,14 @@ public class PathScorer extends Scorer
|
||||
}
|
||||
|
||||
|
||||
if ((pathQuery.getPathStructuredFieldPositions().size() + pathQuery.getQNameStructuredFieldPositions().size()) == 0) // optimize
|
||||
// zero-term
|
||||
// case
|
||||
return null;
|
||||
if ((pathQuery.getPathStructuredFieldPositions().size() + pathQuery.getQNameStructuredFieldPositions().size()) == 0)
|
||||
{
|
||||
ArrayList<StructuredFieldPosition> answer = new ArrayList<StructuredFieldPosition>(2);
|
||||
answer.add(new SelfAxisStructuredFieldPosition());
|
||||
answer.add(new SelfAxisStructuredFieldPosition());
|
||||
|
||||
pathQuery.appendQuery(answer);
|
||||
}
|
||||
|
||||
|
||||
for (StructuredFieldPosition sfp : pathQuery.getPathStructuredFieldPositions())
|
||||
@@ -144,6 +149,13 @@ public class PathScorer extends Scorer
|
||||
level0 = reader.termPositions(new Term("ISROOT", "T"));
|
||||
}
|
||||
|
||||
if((cs == null) &&
|
||||
(pathQuery.getQNameStructuredFieldPositions().get(pathQuery.getQNameStructuredFieldPositions().size()-1)).linkSelf())
|
||||
{
|
||||
nodePositions = reader.termPositions(new Term("ISROOT", "T"));
|
||||
}
|
||||
|
||||
|
||||
LeafScorer ls = new LeafScorer(weight, rootLeafPositions, level0, cs, (StructuredFieldPosition[]) pathQuery.getQNameStructuredFieldPositions().toArray(new StructuredFieldPosition[] {}), nodePositions,
|
||||
selfIds, reader, similarity, reader.norms(pathQuery.getQnameField()), dictionarySertvice, repeat, tp);
|
||||
|
||||
|
Reference in New Issue
Block a user