mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged BRANCHES/V2.0-BUG_FIX to HEAD:
40344: RM-477: RM 2.0 does not work with SOLR * first pass at supporting SOLR in RM2 * currently requires reimplementation of permissionServiceImpl due to visibility of methods and member variables * job execution delayed to try and prevent start up errors * fetchSOLR task added to gradle to retrieve SOLR zip from Maven (could do with some scripts to help with setup for module) * TODO more testing and refinement of solution 40383: RM: Fix unit test 40656: Updated ReadMe.txt 40696: RM-439: Folders have no File to... option 40778: RM-434: The user has all rights for audit once "Access Audit" capability is added to him 40784: RM-482: RM .classpath files have local library references 40785: RM: Remove .settings dir for Eclipse projects * See RM-482 40786: RM: Set svn:ignore for generated eclipse project files 40800: RM-434 40904: It was not possible to edit/delete a custom meta data 40920: Disabled the delete button for custom meta data 40948: RM-438: Custom metadata fields and Special Types aren't available in Email Mappings 41021: RM-438: Custom metadata fields and Special Types aren't available in Email Mappings * ensured the 'group' information was being passed to property-menu (so the custom and dynamic record meta-data is available) * also tweaked audit in the same way * removed code to add custom meta-data props as no longer needed 41023: Merged HEAD to BANCHES/V2.0-BUG-FIX: 40944: Adds Spanish RM translation git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@41024 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
11
ReadMe.txt
11
ReadMe.txt
@@ -19,6 +19,7 @@ Initial Setup
|
||||
|
||||
Using Eclipse
|
||||
|
||||
- Run "gradlew eclipse". This will generate the eclipse project files.
|
||||
- Start Eclipse in the usual way.
|
||||
Note: make sure the WAR dependancies have been exploded before opening Eclispe.
|
||||
- Import projects found in rm-server and rm-share directories.
|
||||
@@ -28,15 +29,16 @@ Deploying the RM AMPs
|
||||
- Set the envoronment variables TOMCAT_HOME and APP_TOMCAT_HOME to the home directory of the repository and share Tomcat instances respectively.
|
||||
NOTE: these can be the same tomcat instance, but it is recommended that two are used.
|
||||
- Configure your repository Tomcat so that your repository.properties settings will be successfully picked up when Alfresco is started.
|
||||
- Run "gradlew installAmp" in the root directory. This will use the MMT to apply the RM AMPs to the Alfresco and Share WARs respectively. The modified WARs will then be copied to the set Tomcat instances, cleaning any exisiting exploded WARs.
|
||||
- Run "gradlew deployAmp" in the root directory. This will use the MMT to apply the RM AMPs to the Alfresco and Share WARs respectively. The modified WARs will then be copied to the set Tomcat instances, cleaning any exisiting exploded WARs.
|
||||
- Start Tomcat(s).
|
||||
|
||||
For users of the Alfresco DevEnv
|
||||
|
||||
- Create a normal project using "create-project".
|
||||
- Manually check out RM code into the "code" directory as described above. Don't use the checkout script provided.
|
||||
- Check out RM code into the "code" directory (checkout https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD)
|
||||
- The devEnv will automatically set the TOMCAT_HOME and APP_TOMCAT_HOME environment variables to point to the Tomcat instances created by the use-tomcat6 and use-app-tomcat6 scipts. Magic!
|
||||
- You can use the dev-context.xml generated for you to configure the repository. Place it in <TOMCAT_HOME>/shared/alfresco/extension.
|
||||
- Copy the JDBC driver to <TOMCAT_HOME>/lib/
|
||||
- You can use the dev-context.xml generated for you to configure the repository. Place it in <TOMCAT_HOME>/shared/classes/alfresco/extension and <PROJECT_NAME>/code/rm-server/config/alfresco/extension.
|
||||
|
||||
Summary Of Available Gradle Tasks
|
||||
|
||||
@@ -50,4 +52,5 @@ Summary Of Available Gradle Tasks
|
||||
- installAmp : installs the AMP into a copy of the projects dependant WAR using the MMT.
|
||||
NOTE: the installed WAR can be found in build/dist.
|
||||
- deployAmp : depolys the project AMP to the configured Tomcat instance.
|
||||
- fetchWarFile : fetches the dependant Alfresco WAR files
|
||||
- fetchWarFile : fetches the dependant Alfresco WAR files
|
||||
- eclipse : generates eclipse projects for repository and share projects
|
10
build.gradle
10
build.gradle
@@ -101,6 +101,9 @@ subprojects {
|
||||
compile fileTree(dir: explodedLibsDir, include: '*.jar')
|
||||
}
|
||||
|
||||
// make sure existing eclipse projects are cleared
|
||||
tasks.eclipse.dependsOn(cleanEclipse)
|
||||
|
||||
/** --- Compile tasks --- */
|
||||
|
||||
// make sure that the dependancies have been unpacked before compiling the Java
|
||||
@@ -239,6 +242,13 @@ subprojects {
|
||||
}
|
||||
}
|
||||
|
||||
task localisationPackage (type: Copy) << {
|
||||
|
||||
from configDir
|
||||
include "**/*.properties"
|
||||
into "${assembleDir}/i18n"
|
||||
}
|
||||
|
||||
task deployExploded(dependsOn: 'jar') << {
|
||||
|
||||
def jarFileObj = file(jarFilePath)
|
||||
|
@@ -1,297 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="source/java"/>
|
||||
<classpathentry kind="src" path="config"/>
|
||||
<classpathentry kind="src" path="source/compatibility"/>
|
||||
<classpathentry kind="src" path="test/java"/>
|
||||
<classpathentry kind="src" path="test/resources"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
<classpathentry sourcepath="C:/Users/royw/.gradle/caches/artifacts-8/filestore/javax.servlet/servlet-api/2.5/source/21599814ad9a605b86f3e6381571beccd861a32/servlet-api-2.5-sources.jar" kind="lib" path="C:/Users/royw/.gradle/caches/artifacts-8/filestore/javax.servlet/servlet-api/2.5/jar/5959582d97d8b61f4d154ca9e495aafd16726e34/servlet-api-2.5.jar" exported="true"/>
|
||||
<classpathentry sourcepath="C:/Users/royw/.gradle/caches/artifacts-8/filestore/org.springframework/spring-test/2.5/source/a2bbfbf1ac87047202c49c8da06bdb48eaf6ffe0/spring-test-2.5-sources.jar" kind="lib" path="C:/Users/royw/.gradle/caches/artifacts-8/filestore/org.springframework/spring-test/2.5/jar/af084e37cf532fbdd15da44e400930d0f8fbf52f/spring-test-2.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/Users/royw/.gradle/caches/artifacts-8/filestore/org.alfresco.enterprise/alfresco/4.0.2/war/f9d0388332c9417dfcc3aad1c8404d7de2aa48c3/alfresco-4.0.2.war" exported="true"/>
|
||||
<classpathentry sourcepath="C:/Users/royw/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1/source/5c2bd34c9a05067c72dcf08cd248630561a9c852/commons-logging-1.1-sources.jar" kind="lib" path="C:/Users/royw/.gradle/caches/artifacts-8/filestore/commons-logging/commons-logging/1.1/jar/ba24d5de831911b684c92cd289ed5ff826271824/commons-logging-1.1.jar" exported="true"/>
|
||||
<classpathentry sourcepath="C:/Users/royw/.gradle/caches/artifacts-8/filestore/junit/junit/3.8.1/source/525753763e53f6f76da052b316d0f2e3bfa4d73/junit-3.8.1-sources.jar" kind="lib" path="C:/Users/royw/.gradle/caches/artifacts-8/filestore/junit/junit/3.8.1/jar/99129f16442844f6a4a11ae22fbbee40b14d774f/junit-3.8.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/config" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/config" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/test/resources" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/abdera-client-0.4.0-incubating.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/abdera-core-0.4.0-incubating.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/abdera-extensions-json-0.4.0-incubating.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/abdera-i18n-0.4.0-incubating.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/abdera-parser-0.4.0-incubating.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/acegi-security-0.8.2_patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/activation-1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/activiti-engine-5.7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/activiti-spring-5.7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/activiti-webapp-explorer2-5.7-ui-jar.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/addressing-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-core-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-data-model-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-deployment-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-enterprise-remote-api-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-enterprise-repo-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-jlan-embed-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-mbeans-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-opencmis-extension-0.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-remote-api-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-repository-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-wdr-deployment.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-web-client-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/alfresco-web-framework-commons-4.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/ant-1.7.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/antlr-3.3-complete.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/aopalliance.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/apache-mime4j-core-0.7.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/apache-mime4j-dom-0.7.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/apache-solr-solrj-1.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/asm-3.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/avalon-framework-4.2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/axiom-api-1.2.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/axiom-impl-1.2.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/axis-1.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/batik-all-1.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bcel.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bcmail-jdk15-1.45.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bcprov-jdk15-1.45.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bliki-3.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/boilerpipe-1.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bsf-2.4.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/bsh-1.3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/cglib-2.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-abdera-0.1-incubating-SNAPSHOT.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-client-api-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-client-bindings-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-client-impl-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-commons-api-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-commons-impl-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-server-bindings-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-server-support-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-test-browser-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-opencmis-test-tck-0.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chemistry-tck-atompub-0.1-incubating-SNAPSHOT.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/chiba-1.3.0-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-beanutils-1.7.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-codec-1.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-collections-3.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-compress-1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-csv-20110211.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-dbcp-1.4-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-digester-1.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-discovery-0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-el.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-fileupload-1.2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-httpclient-3.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-io-1.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-jxpath-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-lang-2.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-logging-1.1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-modeler.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-net-2.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-pool-1.5.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/commons-validator-1.4.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/concurrentlinkedhashmap-lru-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/cxf-2.2.2-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/dom4j-1.6.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/drew-image-metadata-extractor-2.4.0-beta-1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/ehcache-core-2.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/facebook_070716.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/FastInfoset-1.2.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/fontbox-1.6.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/fop-0.94.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/freemarker-2.3.18-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-analytics-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-analytics-meta-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-appsforyourdomain-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-appsforyourdomain-meta-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-base-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-blogger-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-blogger-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-books-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-books-meta-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-calendar-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-calendar-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-client-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-client-meta-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-codesearch-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-codesearch-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-contacts-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-contacts-meta-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-core-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-docs-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-docs-meta-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-finance-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-finance-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-gtt-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-gtt-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-health-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-health-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-maps-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-maps-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-media-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-photos-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-photos-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-projecthosting-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-projecthosting-meta-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-sidewiki-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-sidewiki-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-sites-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-sites-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-spreadsheet-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-spreadsheet-meta-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-webmastertools-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-webmastertools-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-youtube-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/gdata-youtube-meta-2.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/geronimo-activation_1.1_spec-1.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/geronimo-annotation_1.0_spec-1.1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/geronimo-jaxws_2.1_spec-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/geronimo-stax-api_1.0_spec-1.0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/google-collect-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/greenmail-1.3-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/groovy-1.7.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/guessencoding-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/hazelcast-1.9.4.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/hazelcast-spring-1.9.4.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/hibernate-3.2.6-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/hrtlib.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/htmlparser-1.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/httpclient-4.1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/httpclient-cache-4.1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/httpcore-4.1.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/icu4j_3_6_1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/isoparser-1.0-beta-5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jackson-core-asl-1.8.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jackson-mapper-asl-1.8.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jakarta-oro-2.0.8.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/javassist-3.6.0.GA.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxb-api-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxb-impl-2.1.11.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxb-xjc-2.1.7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxen-1.1.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxrpc.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxws-api-2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jaxws-rt-2.1.7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jbpm-identity-3.3.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jbpm-jpdl-3.3.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jcr-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jempbox-1.6.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jgroups-2.11.1.Final.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jibx-bind.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jibx-run.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jid3lib-0.5.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/JMagick.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/joda-time-1.2.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jodconverter-core-3.0-SNAPSHOT-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jooconverter-2.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/JSlideShare-0.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/json-simple-1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/json.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jsr107cache-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jsr181-api-1.0-MR1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jsr250-api-1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jstl-1.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jta.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jtds-1.2.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jug-asl-2.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/junit-dep-4.10.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jut.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/jutf7-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/livetribe-jsr223-2.0.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/log4j-1.2.15.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/lucene-analyzers-2.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/lucene-core-2.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/lucene-regex-2.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/lucene-snowball-2.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/mail.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/maven-ant-tasks-2.1.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/mimepull-1.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/mockito-all-1.8.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/mybatis-3.0.4-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/mybatis-spring-1.0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/myfaces-api-1.1.8.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/myfaces-impl-1.1.8.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/neethi-2.0.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/netcdf-4.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/odmg-3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/ooxml-schemas-1.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/openoffice-juh-3.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/openoffice-jurt-3.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/openoffice-ridl-3.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/openoffice-sandbox-2.0.3.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/openoffice-unoil-3.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/opensaml-1.0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.aop-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.asm-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.beans-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.context-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.context.support-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.core-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.expression-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.jdbc-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.orm-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.transaction-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.web-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/org.springframework.web.servlet-3.0.5.RELEASE.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/pdfbox-1.6.0-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/PDFRenderer-0.9.1-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/poi-3.9-beta1-20120329.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/poi-ooxml-3.9-beta1-20120329.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/poi-scratchpad-3.9-beta1-20120329.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/quartz-1.8.3-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/resolver-20050927.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/rhino-js-1.6R7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/rome-0.9.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/scannotation-1.0.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/shale-test-1.0.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/slf4j-api-1.5.11.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/slf4j-log4j12-1.5.11.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-cmis-framework-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-security-core-3.1.0.RC2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-core-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-facebook-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-facebook-web-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-linkedin-1.0.0.BUILD-SNAPSHOT.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-test-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-twitter-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-social-web-1.0.0.RC1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-surf-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-surf-api-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-surf-core-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-surf-core-configservice-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-webscripts-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/spring-webscripts-api-1.0.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/springmodules-jbpm31.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/standard.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/stax-api-1.0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/stax-ex-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/stax-utils-20060502.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/streambuffer-0.9.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/subethasmtp-3.1.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/tagsoup-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/tika-core-1.2-20120504.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/tika-parsers-1.2-20120504.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/truelicense-1_29-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/truexml-1_29-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/truezip.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/urlrewritefilter-3.1.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/vaadin-6.5.6.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/vorbis-java-core-0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/vorbis-java-tika-0.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/wsdl4j-1.6.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/wss4j-1.5.4-patched.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/wstx-asl-3.2.4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xercesImpl-2.8.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xml-resolver-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xmlbeans-2.3.0.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xmlgraphics-commons-1.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xmlrpc.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/XmlSchema-1.4.5.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xmlsec-1.4.1.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xpp3-1.1.3_8.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/xstream-1.2.2.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/explodedDeps/lib/yuicompressor-2.4.7.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/libs/postgresql-9.0-801.jdbc4.jar" exported="true"/>
|
||||
<classpathentry kind="lib" path="C:/mywork/projects/rm2/code/rm-server/libs/spring-webscripts-1.0.0-tests.jar" exported="true"/>
|
||||
</classpath>
|
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>rm-server</name>
|
||||
<comment/>
|
||||
<projects/>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments/>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<linkedResources/>
|
||||
</projectDescription>
|
@@ -1,13 +0,0 @@
|
||||
#
|
||||
#Tue Jul 10 13:39:51 EST 2012
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
@@ -13,6 +13,33 @@ dependencies {
|
||||
testRuntime files(testResourceDir)
|
||||
|
||||
testRuntime group: 'org.alfresco.enterprise', name: 'alfresco', version: alfrescoBaseVersion, type: 'war'
|
||||
testRuntime group: 'org.alfresco.enterprise', name: 'alfresco-solr', version: alfrescoBaseVersion, type: 'zip'
|
||||
}
|
||||
|
||||
task fetchSOLR(type:Copy) {
|
||||
from configurations.testRuntime
|
||||
into '.'
|
||||
include '*.zip'
|
||||
rename { String filename -> solrFile }
|
||||
}
|
||||
|
||||
task useSOLR << {
|
||||
}
|
||||
|
||||
eclipse {
|
||||
classpath {
|
||||
file {
|
||||
withXml {
|
||||
|
||||
Map<String, String> map = new HashMap<String, String>()
|
||||
map.put('kind', 'src')
|
||||
map.put('path', configDir)
|
||||
|
||||
def node = it.asNode()
|
||||
node.appendNode('classpathentry', map)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task resetDatabase << {
|
||||
|
@@ -2,6 +2,53 @@
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<bean id="permissionServiceImpl" class="org.alfresco.module.org_alfresco_module_rm.permission.PermissionServiceImpl" init-method="init">
|
||||
<property name="nodeService">
|
||||
<ref bean="mtAwareNodeService" />
|
||||
</property>
|
||||
<property name="tenantService">
|
||||
<ref bean="tenantService"/>
|
||||
</property>
|
||||
<property name="dictionaryService">
|
||||
<ref bean="dictionaryService" />
|
||||
</property>
|
||||
<property name="permissionsDaoComponent">
|
||||
<ref bean="permissionsDaoComponent" />
|
||||
</property>
|
||||
<property name="modelDAO">
|
||||
<ref bean="permissionsModelDAO" />
|
||||
</property>
|
||||
<property name="authorityService">
|
||||
<ref bean="authorityService" />
|
||||
</property>
|
||||
<property name="accessCache">
|
||||
<ref bean="permissionsAccessCache" />
|
||||
</property>
|
||||
<property name="readersCache">
|
||||
<ref bean="readersCache" />
|
||||
</property>
|
||||
<property name="readersDeniedCache">
|
||||
<ref bean="readersDeniedCache" />
|
||||
</property>
|
||||
<property name="policyComponent">
|
||||
<ref bean="policyComponent" />
|
||||
</property>
|
||||
<property name="aclDAO">
|
||||
<ref bean="aclDAO" />
|
||||
</property>
|
||||
<property name="ownableService">
|
||||
<ref bean="ownableService" />
|
||||
</property>
|
||||
<property name="anyDenyDenies">
|
||||
<value>${security.anyDenyDenies}</value>
|
||||
</property>
|
||||
<property name="dynamicAuthorities">
|
||||
<list>
|
||||
<ref bean="ownerDynamicAuthority" />
|
||||
<ref bean="lockOwnerDynamicAuthority" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Bootstrap records management data -->
|
||||
<bean id="org_alfresco_module_rm_bootstrapData"
|
||||
|
@@ -292,7 +292,7 @@
|
||||
{
|
||||
"name" : "Vital Records Due For Review",
|
||||
"description" : "All records currently due for review.",
|
||||
"search" : "reviewAsOf:[MIN TO TODAY]",
|
||||
"search" : "rma:reviewAsOf:[MIN TO TODAY]",
|
||||
"searchparams" :
|
||||
{
|
||||
"records" : true,
|
||||
|
@@ -270,6 +270,7 @@
|
||||
<property name="kinds">
|
||||
<set>
|
||||
<value>RECORD</value>
|
||||
<value>RECORD_FOLDER</value>
|
||||
</set>
|
||||
</property>
|
||||
<property name="capability" value="FileToRecords" />
|
||||
|
@@ -3,5 +3,6 @@ moduleid=org_alfresco_module_rm
|
||||
|
||||
webAppName=alfresco
|
||||
warFile=alfresco.war
|
||||
solrFile=alfresco-solr.zip
|
||||
|
||||
tomcatEnv=TOMCAT_HOME
|
@@ -83,6 +83,7 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.extensions.surf.util.I18NUtil;
|
||||
import org.springframework.extensions.surf.util.ParameterCheck;
|
||||
import org.springframework.extensions.surf.util.URLDecoder;
|
||||
|
||||
/**
|
||||
* Records Management AdminService Implementation.
|
||||
@@ -765,20 +766,23 @@ public class RecordsManagementAdminServiceImpl implements RecordsManagementAdmin
|
||||
if (newName == null) return propQName;
|
||||
|
||||
QName newPropQName = getQNameForClientId(newName);
|
||||
propDefn = dictionaryService.getProperty(newPropQName);
|
||||
if (propDefn != null)
|
||||
if (newPropQName != null)
|
||||
{
|
||||
// The requested QName is already in use
|
||||
String propIdAsString = newPropQName.toPrefixString(namespaceService);
|
||||
throw new PropertyAlreadyExistsMetadataException(propIdAsString);
|
||||
propDefn = dictionaryService.getProperty(newPropQName);
|
||||
if (propDefn != null)
|
||||
{
|
||||
// The requested QName is already in use
|
||||
String propIdAsString = newPropQName.toPrefixString(namespaceService);
|
||||
throw new PropertyAlreadyExistsMetadataException(propIdAsString);
|
||||
}
|
||||
}
|
||||
|
||||
NodeRef modelRef = getCustomModelRef(propQName.getNamespaceURI());
|
||||
M2Model deserializedModel = readCustomContentModel(modelRef);
|
||||
|
||||
M2Property targetProperty = findProperty(propQName, deserializedModel);
|
||||
targetProperty.setName(newName);
|
||||
targetProperty.setTitle(newName);
|
||||
targetProperty.setName(new StringBuilder().append(RecordsManagementCustomModel.RM_CUSTOM_PREFIX).append(QName.NAMESPACE_PREFIX).append(newName).toString());
|
||||
targetProperty.setTitle(URLDecoder.decode(newName));
|
||||
writeCustomContentModel(modelRef, deserializedModel);
|
||||
|
||||
if (logger.isInfoEnabled())
|
||||
|
@@ -473,8 +473,11 @@ public class RMAfterInvocationProvider extends RMSecurityCommon
|
||||
{
|
||||
inclusionMask.set(i, true);
|
||||
}
|
||||
filteringResultSet.setResultSetMetaData(new SimpleResultSetMetaData(returnedObject.getResultSetMetaData().getLimitedBy(), PermissionEvaluationMode.EAGER, returnedObject.getResultSetMetaData()
|
||||
.getSearchParameters()));
|
||||
filteringResultSet.setResultSetMetaData(
|
||||
new SimpleResultSetMetaData(
|
||||
returnedObject.getResultSetMetaData().getLimitedBy(),
|
||||
PermissionEvaluationMode.EAGER,
|
||||
returnedObject.getResultSetMetaData().getSearchParameters()));
|
||||
return filteringResultSet;
|
||||
}
|
||||
else
|
||||
@@ -483,27 +486,37 @@ public class RMAfterInvocationProvider extends RMSecurityCommon
|
||||
{
|
||||
inclusionMask.set(i, true);
|
||||
}
|
||||
filteringResultSet.setResultSetMetaData(new SimpleResultSetMetaData(returnedObject.getResultSetMetaData().getLimitedBy(), PermissionEvaluationMode.EAGER, returnedObject.getResultSetMetaData()
|
||||
.getSearchParameters()));
|
||||
filteringResultSet.setResultSetMetaData(
|
||||
new SimpleResultSetMetaData(
|
||||
returnedObject.getResultSetMetaData().getLimitedBy(),
|
||||
PermissionEvaluationMode.EAGER,
|
||||
returnedObject.getResultSetMetaData().getSearchParameters()));
|
||||
return filteringResultSet;
|
||||
}
|
||||
}
|
||||
|
||||
// record the start time
|
||||
long startTimeMillis = System.currentTimeMillis();
|
||||
|
||||
// set the default, unlimited resultset type
|
||||
filteringResultSet.setResultSetMetaData(new SimpleResultSetMetaData(returnedObject.getResultSetMetaData().getLimitedBy(), PermissionEvaluationMode.EAGER, returnedObject.getResultSetMetaData()
|
||||
.getSearchParameters()));
|
||||
filteringResultSet.setResultSetMetaData(
|
||||
new SimpleResultSetMetaData(
|
||||
returnedObject.getResultSetMetaData().getLimitedBy(),
|
||||
PermissionEvaluationMode.EAGER,
|
||||
returnedObject.getResultSetMetaData().getSearchParameters()));
|
||||
|
||||
for (int i = 0; i < returnedObject.length(); i++)
|
||||
{
|
||||
long currentTimeMillis = System.currentTimeMillis();
|
||||
if (i >= maxChecks || (currentTimeMillis - startTimeMillis) > maxCheckTime)
|
||||
{
|
||||
filteringResultSet.setResultSetMetaData(new SimpleResultSetMetaData(LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS, PermissionEvaluationMode.EAGER, returnedObject
|
||||
.getResultSetMetaData().getSearchParameters()));
|
||||
break;
|
||||
}
|
||||
// if (i >= maxChecks || (currentTimeMillis - startTimeMillis) > maxCheckTime)
|
||||
// {
|
||||
// filteringResultSet.setResultSetMetaData(
|
||||
// new SimpleResultSetMetaData(
|
||||
// LimitBy.NUMBER_OF_PERMISSION_EVALUATIONS,
|
||||
// PermissionEvaluationMode.EAGER,
|
||||
// returnedObject.getResultSetMetaData().getSearchParameters()));
|
||||
// break;
|
||||
// }
|
||||
|
||||
// All permission checks must pass
|
||||
inclusionMask.set(i, true);
|
||||
|
@@ -106,13 +106,14 @@ public class RMSecurityCommon
|
||||
*/
|
||||
public int checkRead(NodeRef nodeRef)
|
||||
{
|
||||
int result = AccessDecisionVoter.ACCESS_ABSTAIN;
|
||||
if (nodeRef != null)
|
||||
{
|
||||
// now we know the node - we can abstain for certain types and aspects (eg, rm)
|
||||
return checkRead(nodeRef, false);
|
||||
result = checkRead(nodeRef, false);
|
||||
}
|
||||
|
||||
return AccessDecisionVoter.ACCESS_ABSTAIN;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -123,35 +124,32 @@ public class RMSecurityCommon
|
||||
*/
|
||||
public int checkRead(NodeRef nodeRef, boolean allowDMRead)
|
||||
{
|
||||
if (nodeService.hasAspect(nodeRef, RecordsManagementModel.ASPECT_FILE_PLAN_COMPONENT))
|
||||
int result = AccessDecisionVoter.ACCESS_ABSTAIN;
|
||||
|
||||
if (rmService.isFilePlanComponent(nodeRef) == true)
|
||||
{
|
||||
return checkRmRead(nodeRef);
|
||||
result = checkRmRead(nodeRef);
|
||||
}
|
||||
else
|
||||
else if (allowDMRead == true)
|
||||
{
|
||||
if (allowDMRead)
|
||||
// Check DM read for copy etc
|
||||
// DM does not grant - it can only deny
|
||||
if (permissionService.hasPermission(nodeRef, PermissionService.READ) == AccessStatus.DENIED)
|
||||
{
|
||||
// Check DM read for copy etc
|
||||
// DM does not grant - it can only deny
|
||||
if (permissionService.hasPermission(nodeRef, PermissionService.READ) == AccessStatus.DENIED)
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("\t\tPermission is denied");
|
||||
Thread.dumpStack();
|
||||
}
|
||||
return AccessDecisionVoter.ACCESS_DENIED;
|
||||
}
|
||||
else
|
||||
{
|
||||
return AccessDecisionVoter.ACCESS_GRANTED;
|
||||
logger.debug("\t\tPermission is denied");
|
||||
Thread.dumpStack();
|
||||
}
|
||||
result = AccessDecisionVoter.ACCESS_DENIED;
|
||||
}
|
||||
else
|
||||
{
|
||||
return AccessDecisionVoter.ACCESS_ABSTAIN;
|
||||
result = AccessDecisionVoter.ACCESS_GRANTED;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -72,7 +72,7 @@ public class DispositionLifecycleJobExecuter extends RecordsManagementJobExecute
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJobExecuter#execute()
|
||||
*/
|
||||
public void execute()
|
||||
public void executeImpl()
|
||||
{
|
||||
logger.debug("Job Starting");
|
||||
|
||||
|
@@ -69,7 +69,7 @@ public class NotifyOfRecordsDueForReviewJobExecuter extends RecordsManagementJob
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJobExecuter#execute()
|
||||
*/
|
||||
public void execute()
|
||||
public void executeImpl()
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
|
@@ -80,7 +80,7 @@ public class PublishUpdatesJobExecuter extends RecordsManagementJobExecuter
|
||||
this.behaviourFilter = behaviourFilter;
|
||||
}
|
||||
|
||||
public void execute()
|
||||
public void executeImpl()
|
||||
{
|
||||
if (logger.isDebugEnabled() == true)
|
||||
{
|
||||
|
@@ -20,18 +20,73 @@ package org.alfresco.module.org_alfresco_module_rm.job;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.extensions.surf.util.AbstractLifecycleBean;
|
||||
|
||||
/**
|
||||
* Records management job executer base class.
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
*/
|
||||
public abstract class RecordsManagementJobExecuter implements RecordsManagementModel
|
||||
public abstract class RecordsManagementJobExecuter extends AbstractLifecycleBean
|
||||
implements RecordsManagementModel
|
||||
{
|
||||
/** Retrying transaction helper */
|
||||
protected RetryingTransactionHelper retryingTransactionHelper;
|
||||
|
||||
/** Indicates whether the application bootstrap is complete or not */
|
||||
protected boolean bootstrapComplete = false;
|
||||
|
||||
/**
|
||||
* @param retryingTransactionHelper retrying transaction helper
|
||||
*/
|
||||
public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
|
||||
{
|
||||
this.retryingTransactionHelper = retryingTransactionHelper;
|
||||
}
|
||||
|
||||
public abstract void execute();
|
||||
/**
|
||||
* Executes the jobs work.
|
||||
*/
|
||||
public void execute()
|
||||
{
|
||||
// jobs not allowed to execute unless bootstrap is complete
|
||||
if (bootstrapComplete == true)
|
||||
{
|
||||
executeImpl();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Jobs work implementation.
|
||||
*/
|
||||
public abstract void executeImpl();
|
||||
|
||||
/**
|
||||
* @see org.springframework.extensions.surf.util.AbstractLifecycleBean#onBootstrap(org.springframework.context.ApplicationEvent)
|
||||
*/
|
||||
@Override
|
||||
protected void onBootstrap(ApplicationEvent arg0)
|
||||
{
|
||||
// record that the bootstrap has complete
|
||||
bootstrapComplete = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.springframework.extensions.surf.util.AbstractLifecycleBean#onShutdown(org.springframework.context.ApplicationEvent)
|
||||
*/
|
||||
@Override
|
||||
protected void onShutdown(ApplicationEvent arg0)
|
||||
{
|
||||
// no implementation
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.springframework.extensions.surf.util.AbstractLifecycleBean#onApplicationEvent(org.springframework.context.ApplicationEvent)
|
||||
*/
|
||||
@Override
|
||||
public void onApplicationEvent(ApplicationEvent arg0)
|
||||
{
|
||||
// no implementation
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,370 @@
|
||||
package org.alfresco.module.org_alfresco_module_rm.permission;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
||||
import org.alfresco.repo.cache.SimpleCache;
|
||||
import org.alfresco.repo.domain.permissions.AclDAO;
|
||||
import org.alfresco.repo.security.permissions.AccessControlEntry;
|
||||
import org.alfresco.repo.security.permissions.AccessControlList;
|
||||
import org.alfresco.repo.security.permissions.PermissionEntry;
|
||||
import org.alfresco.repo.security.permissions.PermissionReference;
|
||||
import org.alfresco.repo.security.permissions.impl.ModelDAO;
|
||||
import org.alfresco.repo.security.permissions.impl.PermissionServiceImpl;
|
||||
import org.alfresco.repo.security.permissions.impl.RequiredPermission;
|
||||
import org.alfresco.repo.security.permissions.impl.SimplePermissionReference;
|
||||
import org.alfresco.service.cmr.security.AccessStatus;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.Pair;
|
||||
|
||||
public class OtherImpl extends PermissionServiceImpl
|
||||
{
|
||||
static SimplePermissionReference RM_OLD_ALL_PERMISSIONS_REFERENCE = SimplePermissionReference.getPermissionReference(
|
||||
QName.createQName("", PermissionService.ALL_PERMISSIONS),
|
||||
PermissionService.ALL_PERMISSIONS);
|
||||
|
||||
private SimpleCache<Serializable, Set<String>> rmReadersCache;
|
||||
|
||||
private AclDAO rmAclDaoComponent;
|
||||
|
||||
private ModelDAO rmModelDao;
|
||||
|
||||
public void setRmReadersCache(SimpleCache<Serializable, Set<String>> rmReadersCache)
|
||||
{
|
||||
this.rmReadersCache = rmReadersCache;
|
||||
}
|
||||
|
||||
public void setRmAclDAO(AclDAO rmAclDaoComponent)
|
||||
{
|
||||
this.rmAclDaoComponent = rmAclDaoComponent;
|
||||
}
|
||||
|
||||
public void setRmModelDAO(ModelDAO rmModelDao)
|
||||
{
|
||||
this.rmModelDao = rmModelDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnyDenyDenies(boolean anyDenyDenies)
|
||||
{
|
||||
super.setAnyDenyDenies(anyDenyDenies);
|
||||
rmReadersCache.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getReaders(Long aclId)
|
||||
{
|
||||
Set<String> dmReaders = super.getReaders(aclId);
|
||||
|
||||
Set<String> rmReaders = rmReadersCache.get(aclId);
|
||||
if (rmReaders == null)
|
||||
{
|
||||
rmReaders = buildRMReaders(aclId);
|
||||
rmReadersCache.put(aclId, rmReaders);
|
||||
}
|
||||
|
||||
Set<String> result = new HashSet<String>();
|
||||
result.addAll(dmReaders);
|
||||
result.addAll(rmReaders);
|
||||
return result;
|
||||
}
|
||||
|
||||
private Set<String> buildRMReaders(Long aclId)
|
||||
{
|
||||
AccessControlList acl = rmAclDaoComponent.getAccessControlList(aclId);
|
||||
if (acl == null)
|
||||
{
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
HashSet<String> assigned = new HashSet<String>();
|
||||
HashSet<String> readers = new HashSet<String>();
|
||||
|
||||
for (AccessControlEntry ace : acl.getEntries())
|
||||
{
|
||||
assigned.add(ace.getAuthority());
|
||||
}
|
||||
|
||||
PermissionReference permissionRef = getPermissionReference(RMPermissionModel.READ_RECORDS);
|
||||
|
||||
for (String authority : assigned)
|
||||
{
|
||||
RMUnconditionalAclTest rmTest = new RMUnconditionalAclTest(permissionRef);
|
||||
if (rmTest.evaluate(authority, aclId))
|
||||
{
|
||||
readers.add(authority);
|
||||
}
|
||||
}
|
||||
|
||||
return Collections.unmodifiableSet(readers);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ignores type and aspect requirements on the node
|
||||
*
|
||||
*/
|
||||
private class RMUnconditionalAclTest
|
||||
{
|
||||
/*
|
||||
* The required permission.
|
||||
*/
|
||||
PermissionReference required;
|
||||
|
||||
/*
|
||||
* Granters of the permission
|
||||
*/
|
||||
Set<PermissionReference> granters;
|
||||
|
||||
/*
|
||||
* The additional permissions required at the node level.
|
||||
*/
|
||||
Set<PermissionReference> nodeRequirements = new HashSet<PermissionReference>();
|
||||
|
||||
/*
|
||||
* Constructor just gets the additional requirements
|
||||
*/
|
||||
RMUnconditionalAclTest(PermissionReference required)
|
||||
{
|
||||
this.required = required;
|
||||
|
||||
// Set the required node permissions
|
||||
if (required.equals(getPermissionReference(ALL_PERMISSIONS)))
|
||||
{
|
||||
nodeRequirements = rmModelDao.getUnconditionalRequiredPermissions(getPermissionReference(PermissionService.FULL_CONTROL), RequiredPermission.On.NODE);
|
||||
}
|
||||
else
|
||||
{
|
||||
nodeRequirements = rmModelDao.getUnconditionalRequiredPermissions(required, RequiredPermission.On.NODE);
|
||||
}
|
||||
|
||||
if (rmModelDao.getUnconditionalRequiredPermissions(required, RequiredPermission.On.PARENT).size() > 0)
|
||||
{
|
||||
throw new IllegalStateException("Parent permissions can not be checked for an acl");
|
||||
}
|
||||
|
||||
if (rmModelDao.getUnconditionalRequiredPermissions(required, RequiredPermission.On.CHILDREN).size() > 0)
|
||||
{
|
||||
throw new IllegalStateException("Child permissions can not be checked for an acl");
|
||||
}
|
||||
|
||||
// Find all the permissions that grant the allowed permission
|
||||
// All permissions are treated specially.
|
||||
granters = new LinkedHashSet<PermissionReference>(128, 1.0f);
|
||||
granters.addAll(rmModelDao.getGrantingPermissions(required));
|
||||
granters.add(getAllPermissionReference());
|
||||
granters.add(RM_OLD_ALL_PERMISSIONS_REFERENCE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal hook point for recursion
|
||||
*
|
||||
* @param authorisations
|
||||
* @param nodeRef
|
||||
* @param denied
|
||||
* @param recursiveIn
|
||||
* @return true if granted
|
||||
*/
|
||||
boolean evaluate(String authority, Long aclId)
|
||||
{
|
||||
// Start out true and "and" all other results
|
||||
boolean success = true;
|
||||
|
||||
// Check the required permissions but not for sets they rely on
|
||||
// their underlying permissions
|
||||
//if (modelDAO.checkPermission(required))
|
||||
//{
|
||||
|
||||
// We have to do the test as no parent will help us out
|
||||
success &= hasSinglePermission(authority, aclId);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
//}
|
||||
|
||||
// Check the other permissions required on the node
|
||||
for (PermissionReference pr : nodeRequirements)
|
||||
{
|
||||
// Build a new test
|
||||
RMUnconditionalAclTest nt = new RMUnconditionalAclTest(pr);
|
||||
success &= nt.evaluate(authority, aclId);
|
||||
if (!success)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
boolean hasSinglePermission(String authority, Long aclId)
|
||||
{
|
||||
// Check global permission
|
||||
|
||||
if (checkGlobalPermissions(authority))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if(aclId == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return checkRequired(authority, aclId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if we have a global permission
|
||||
*
|
||||
* @param authorisations
|
||||
* @return true if granted
|
||||
*/
|
||||
private boolean checkGlobalPermissions(String authority)
|
||||
{
|
||||
for (PermissionEntry pe : rmModelDao.getGlobalPermissionEntries())
|
||||
{
|
||||
if (isGranted(pe, authority))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that a given authentication is available on a node
|
||||
*
|
||||
* @param authorisations
|
||||
* @param nodeRef
|
||||
* @param denied
|
||||
* @return true if a check is required
|
||||
*/
|
||||
boolean checkRequired(String authority, Long aclId)
|
||||
{
|
||||
AccessControlList acl = rmAclDaoComponent.getAccessControlList(aclId);
|
||||
|
||||
if (acl == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Set<Pair<String, PermissionReference>> denied = new HashSet<Pair<String, PermissionReference>>();
|
||||
|
||||
// Check if each permission allows - the first wins.
|
||||
// We could have other voting style mechanisms here
|
||||
for (AccessControlEntry ace : acl.getEntries())
|
||||
{
|
||||
if (isGranted(ace, authority, denied))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is a permission granted
|
||||
*
|
||||
* @param pe -
|
||||
* the permissions entry to consider
|
||||
* @param granters -
|
||||
* the set of granters
|
||||
* @param authorisations -
|
||||
* the set of authorities
|
||||
* @param denied -
|
||||
* the set of denied permissions/authority pais
|
||||
* @return true if granted
|
||||
*/
|
||||
private boolean isGranted(AccessControlEntry ace, String authority, Set<Pair<String, PermissionReference>> denied)
|
||||
{
|
||||
// If the permission entry denies then we just deny
|
||||
if (ace.getAccessStatus() == AccessStatus.DENIED)
|
||||
{
|
||||
denied.add(new Pair<String, PermissionReference>(ace.getAuthority(), ace.getPermission()));
|
||||
|
||||
Set<PermissionReference> granters = rmModelDao.getGrantingPermissions(ace.getPermission());
|
||||
for (PermissionReference granter : granters)
|
||||
{
|
||||
denied.add(new Pair<String, PermissionReference>(ace.getAuthority(), granter));
|
||||
}
|
||||
|
||||
// All the things granted by this permission must be
|
||||
// denied
|
||||
Set<PermissionReference> grantees = rmModelDao.getGranteePermissions(ace.getPermission());
|
||||
for (PermissionReference grantee : grantees)
|
||||
{
|
||||
denied.add(new Pair<String, PermissionReference>(ace.getAuthority(), grantee));
|
||||
}
|
||||
|
||||
// All permission excludes all permissions available for
|
||||
// the node.
|
||||
if (ace.getPermission().equals(getAllPermissionReference()) || ace.getPermission().equals(RM_OLD_ALL_PERMISSIONS_REFERENCE))
|
||||
{
|
||||
for (PermissionReference deny : rmModelDao.getAllPermissions())
|
||||
{
|
||||
denied.add(new Pair<String, PermissionReference>(ace.getAuthority(), deny));
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// The permission is allowed but we deny it as it is in the denied
|
||||
// set
|
||||
|
||||
if (denied != null)
|
||||
{
|
||||
Pair<String, PermissionReference> specific = new Pair<String, PermissionReference>(ace.getAuthority(), required);
|
||||
if (denied.contains(specific))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// If the permission has a match in both the authorities and
|
||||
// granters list it is allowed
|
||||
// It applies to the current user and it is granted
|
||||
if (authority.equals(ace.getAuthority()) && granters.contains(ace.getPermission()))
|
||||
{
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Default deny
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isGranted(PermissionEntry pe, String authority)
|
||||
{
|
||||
// If the permission entry denies then we just deny
|
||||
if (pe.isDenied())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// If the permission has a match in both the authorities and
|
||||
// granters list it is allowed
|
||||
// It applies to the current user and it is granted
|
||||
if (granters.contains(pe.getPermissionReference()) && authority.equals(pe.getAuthority()))
|
||||
{
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Default deny
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@@ -33,6 +33,7 @@ import org.alfresco.service.namespace.QName;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.json.JSONTokener;
|
||||
import org.springframework.extensions.surf.util.URLDecoder;
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptException;
|
||||
@@ -152,7 +153,7 @@ public class CustomPropertyDefinitionPost extends BaseCustomPropertyWebScript
|
||||
String customisableElement = (String)params.get(PARAM_ELEMENT);
|
||||
QName customisableType = mapToTypeQName(customisableElement);
|
||||
|
||||
String label = (String)params.get(PARAM_LABEL);
|
||||
String label = URLDecoder.decode((String)params.get(PARAM_LABEL));
|
||||
|
||||
//According to the wireframes, type here can only be date|text|number
|
||||
Serializable serializableParam = params.get(PARAM_DATATYPE);
|
||||
|
@@ -136,26 +136,27 @@ public class CustomPropertyDefinitionPut extends BaseCustomPropertyWebScript
|
||||
"Could not find property definition for: " + propId);
|
||||
}
|
||||
|
||||
if (params.containsKey(PARAM_CONSTRAINT_REF))
|
||||
{
|
||||
String constraintRef = (String)params.get(PARAM_CONSTRAINT_REF);
|
||||
|
||||
if (constraintRef == null)
|
||||
{
|
||||
result = rmAdminService.removeCustomPropertyDefinitionConstraints(propQName);
|
||||
}
|
||||
else
|
||||
{
|
||||
QName constraintRefQName = QName.createQName(constraintRef, namespaceService);
|
||||
result = rmAdminService.setCustomPropertyDefinitionConstraint(propQName, constraintRefQName);
|
||||
}
|
||||
}
|
||||
|
||||
if (params.containsKey(PARAM_LABEL))
|
||||
{
|
||||
String label = (String)params.get(PARAM_LABEL);
|
||||
result = rmAdminService.updateCustomPropertyDefinitionName(propQName, label);
|
||||
}
|
||||
|
||||
if (params.containsKey(PARAM_CONSTRAINT_REF))
|
||||
{
|
||||
String constraintRef = (String)params.get(PARAM_CONSTRAINT_REF);
|
||||
|
||||
if (constraintRef == null)
|
||||
{
|
||||
result = rmAdminService.removeCustomPropertyDefinitionConstraints(propQName);
|
||||
}
|
||||
else
|
||||
{
|
||||
QName constraintRefQName = QName.createQName(constraintRef, namespaceService);
|
||||
result = rmAdminService.setCustomPropertyDefinitionConstraint(propQName, constraintRefQName);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@@ -982,7 +982,7 @@ public class DispositionServiceImplTest extends BaseRMTestCase
|
||||
{
|
||||
// Publish the updates
|
||||
PublishUpdatesJobExecuter updater = (PublishUpdatesJobExecuter)applicationContext.getBean("publishUpdatesJobExecuter");
|
||||
updater.execute();
|
||||
updater.executeImpl();
|
||||
|
||||
// Check the record has been updated
|
||||
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(testRM386Record);
|
||||
|
Reference in New Issue
Block a user