Merged V2.1 to HEAD

6580: AVM bulk import performance tweaks.
   6582: WCM-767, WCM-768
   6583: Fix for AWC-1528 (potential NPE in ErrorsRenderer)
   6584: Fix for AWC-1256 (Links produced by inline HTML editor are incorrect)
   6585: AR-1635: event listeners added in a beforeCommit event are now executed successfully
   6586: AR-1561 Update Web Scripts readme.html to be consistent with "Category Search Sample" (or vice-versa)
   6587: Fix for AWC-1390 (Paste all doesn't work for forum items)
   6588: AR-1701 Script getDocument call doesn't check for non-existent content
   6589: Fix for AWC-1530 - Saved search does not work for custom properties of type d:text with list constraint
   6591: Improvement for submit speed.
   6592: Removed obsolete tests.
   6594: Index tracking sample to include AVM index tracking
   6595: Added the AVM helpers methods from the FreeMarker AVM API that were missing from the JavaScript API
   6597: Rationalize post commit execution hooks for deployment receiver
   6598: Properly escape path names for ProgramRunnable.
   6599: AVM store name lookup cache is (theoretically) clusterable.
   6600: Some or other gramatically incorrect stuff about Chiba.
   6601: Fix for AR-1121 and AR-1673
   6602: AR-1655: Versioning is not MLText aware
   6603: Updated messages from lang packs
   6604: Fixed AR-1476: JCR import end element escaping
   6605: Updated Japanese lang messages


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6746 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-09-11 03:03:50 +00:00
parent 19e1af2314
commit 57554088ae
33 changed files with 638 additions and 85 deletions

View File

@@ -44,6 +44,9 @@
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
<property name="cache">
<ref bean="avmStoreLookupCache"/>
</property>
</bean>
<bean id="versionRootDAO" class="org.alfresco.repo.avm.hibernate.VersionRootDAOHibernate">

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0">
<view:reference xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:d="http://www.alfresco.org/model/dictionary/1.0" xmlns:alf="http://www.alfresco.org" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:act="http://www.alfresco.org/model/action/1.0" xmlns:wf="http://www.alfresco.org/model/workflow/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0" xmlns:usr="http://www.alfresco.org/model/user/1.0" xmlns:ver="http://www.alfresco.org/model/versionstore/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:wcm="http://www.alfresco.org/model/wcmmodel/1.0" xmlns:wca="http://www.alfresco.org/model/wcmappmodel/1.0" xmlns:sys="http://www.alfresco.org/model/system/1.0" xmlns:wcmwf="http://www.alfresco.org/model/wcmworkflow/1.0" xmlns:rule="http://www.alfresco.org/model/rule/1.0" xmlns:bpm="http://www.alfresco.org/model/bpm/1.0" xmlns:fm="http://www.alfresco.org/model/forum/1.0" xmlns:custom="custom.model" xmlns:reg="http://www.alfresco.org/system/registry/1.0" xmlns:module="http://www.alfresco.org/system/modules/1.0" xmlns="" view:pathref="/app:company_home/app:dictionary/app:content_templates/cm:readme.ftl">
<view:properties>
<cm:content>contentUrl=classpath:alfresco/bootstrap/webscripts/readme.html|mimetype=text/html|size=|encoding=UTF-8|locale=en_US_</cm:content>
</view:properties>
</view:reference>
</view:view>

View File

@@ -1 +1,23 @@
<h1>Web Scripts</h1><p>Documentation on how to develop a Web Script may be found <a href="http://wiki.alfresco.com/wiki/Web_Scripts">here</a>. </p><p>Web Scripts allow you to bind new Alfresco-based functionality to a HTTP method and custom URL. A library of URLs may be built up to provide a complete API accessible via HTTP.&nbsp; They are ideal for building data access &amp; update APIs and simple UI components such as Portlets.&nbsp; Development of Web Scripts may be performed within Alfresco.&nbsp; Knowledge of Java is <em><strong>not</strong></em> required.<br /> </p><p>For example, you could create the following API for your particular application... </p> <dl><dt><strong>Execute a search</strong> </dt></dl> <p>GET http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/category?c=Web20 </p> <dl><dt><strong>Retrieve meta-data for an item in the repository</strong> </dt></dl> <p>GET http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release </p> <dl><dt><strong>Update meta-data for an item in the repository</strong> </dt></dl> <p>POST http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release?status=Draft </p> <dl><dt><strong>Delete an item in the repository</strong> </dt></dl> <p>DELETE http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release </p>
<h1>Web Scripts</h1>
<p>
Documentation on how to develop a Web Script may be found <a href="http://wiki.alfresco.com/wiki/Web_Scripts">here</a>. </p><p>Web Scripts allow you to bind new Alfresco-based functionality to a HTTP method and custom URL. A library of URLs may be built up to provide a complete API accessible via HTTP.&nbsp; They are ideal for building data access &amp; update APIs and simple UI components such as Portlets.&nbsp; Development of Web Scripts may be performed within Alfresco.&nbsp; Knowledge of Java is <em><strong>not</strong></em> required.<br/>
</p>
<p>
For example, you could create the following API for your particular application...
</p>
<dl><dt><strong>Execute a search</strong> </dt></dl>
<p>
GET http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/category/{category}
</p>
<dl><dt><strong>Retrieve meta-data for an item in the repository</strong> </dt></dl>
<p>
GET http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release
</p>
<dl><dt><strong>Update meta-data for an item in the repository</strong> </dt></dl>
<p>
POST http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release?status=Draft
</p>
<dl><dt><strong>Delete an item in the repository</strong></dt></dl>
<p>
DELETE http://&lt;host&gt;:&lt;port&gt;/alfresco/service/blog/2007/03/04/new-release
</p>

View File

@@ -280,6 +280,42 @@
<value>50</value>
</property>
</bean>
<!-- ===================================== -->
<!-- AVM Store lookup cache -->
<!-- ===================================== -->
<!-- The cross-transaction shared cache for AVM store lookups -->
<bean name="avmStoreLookupSharedCache" class="org.alfresco.repo.cache.EhCacheAdapter">
<property name="cache">
<bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref bean="internalEHCacheManager"/>
</property>
<property name="cacheName">
<value>org.alfresco.repo.avm.storeLookupSharedCache</value>
</property>
</bean>
</property>
</bean>
<!-- Transactional cache for AVM store lookups -->
<bean name="avmStoreLookupCache" class="org.alfresco.repo.cache.TransactionalCache">
<property name="sharedCache">
<ref bean="avmStoreLookupSharedCache"/>
</property>
<property name="cacheManager">
<ref bean="transactionalEHCacheManager"/>
</property>
<property name="name">
<value>org.alfresco.repo.avm.storeLookupTransactionalCache</value>
</property>
<property name="maxCacheSize">
<value>100</value>
</property>
</bean>
<!-- ===================================== -->
<!-- WebServices Query Session Cache -->

View File

@@ -3,8 +3,12 @@
<beans>
<!-- Schedule index tracking every 30s -->
<bean id="indexTrackerTrigger" class="org.alfresco.util.CronTriggerBean">
<!--===========================-->
<!-- ADM index tracking -->
<!--===========================-->
<!-- Schedule index tracking for ADM every 10s -->
<bean id="admIndexTrackerTrigger" class="org.alfresco.util.CronTriggerBean">
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
@@ -13,7 +17,7 @@
<property name="jobDataAsMap">
<map>
<entry key="indexRecoveryComponent">
<ref bean="indexTrackerComponent" />
<ref bean="admIndexTrackerComponent" />
</entry>
</map>
</property>
@@ -28,7 +32,7 @@
</bean>
<bean
id="indexTrackerComponent"
id="admIndexTrackerComponent"
class="org.alfresco.repo.node.index.IndexRemoteTransactionTracker"
parent="indexRecoveryComponentBase">
<property name="remoteOnly">
@@ -36,15 +40,12 @@
</property>
</bean>
<!-- Forces the reindexing of nodes where content may have been missing before -->
<!--
This component can be triggered at intervals where asynchronous content sharing
between clustered servers has been set up. If content sharing is synchronous
(see ReplicatingContentStore.setOutboundThreadPoolExecutor) then this component
is not required.
-->
<!--
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
<!--===========================-->
<!-- AVM (WCM) index tracking -->
<!--===========================-->
<!-- Schedule index tracking for AVM every 60s -->
<bean id="indexTrackerTrigger" class="org.alfresco.util.CronTriggerBean">
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
@@ -53,7 +54,7 @@
<property name="jobDataAsMap">
<map>
<entry key="indexRecoveryComponent">
<ref bean="missingContentReindexComponent" />
<ref bean="avmIndexTrackerComponent" />
</entry>
</map>
</property>
@@ -62,13 +63,21 @@
<property name="scheduler">
<ref bean="schedulerFactory" />
</property>
<property name="startDelayMinutes">
<value>5</value>
</property>
<property name="repeatCount">
<value>0</value>
<property name="cronExpression">
<value>15 * * * * ?</value>
</property>
</bean>
-->
<bean
id="avmIndexTrackerComponent"
class="org.alfresco.repo.node.index.AVMRemoteSnapshotTracker"
parent="indexRecoveryComponentBase">
<property name="avmService">
<ref bean="avmService" />
</property>
<property name="avmSnapShotTriggeredIndexingMethodInterceptor">
<ref bean="avmSnapShotTriggeredIndexingMethodInterceptor" />
</property>
</bean>
</beans>

View File

@@ -148,6 +148,7 @@ patch.AVMGuidPatch.result=AVM GUIDS set.
patch.webscripts.description=Adds Web Scripts to Data Dictionary.
patch.webscripts2.description=Adds Web Scripts (second set) to Data Dictionary.
patch.webscripts3.description=Update Web Scripts ReadMe.
patch.webscriptsExtension.description=Adds Web Scripts Extension to Data Dictionary.
patch.AVMLayeredSnapshot.description=Set indirectionVersion on Layered Nodes.

View File

@@ -1000,5 +1000,22 @@
<value>classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-RemoveWcmSubmittedAspect.sql</value>
</property>
</bean>
<bean id="patch.webscripts3" class="org.alfresco.repo.admin.patch.impl.GenericBootstrapPatch" parent="basePatch" >
<property name="id"><value>patch.webscripts3</value></property>
<property name="description"><value>patch.webscripts3.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>104</value></property>
<property name="targetSchema"><value>105</value></property>
<property name="importerBootstrap">
<ref bean="spacesBootstrap" />
</property>
<property name="bootstrapView">
<props>
<prop key="path">/</prop>
<prop key="location">alfresco/bootstrap/webScriptsReadme2.xml</prop>
</props>
</property>
</bean>
</beans>

View File

@@ -129,6 +129,9 @@
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
<property name="nameMatcher">
<ref bean="globalPathExcluder"/>
</property>
</bean>
<bean id="crossCopyScript" parent="baseJavaScriptExtension" class="org.alfresco.repo.jscript.CrossRepositoryCopy">

View File

@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
version.schema=104
version.schema=105