exo-jcr SVN: r4187 - jcr/tags/1.12.8-GA.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-29 06:10:32 -0400 (Tue, 29 Mar 2011)
New Revision: 4187
Added:
jcr/tags/1.12.8-GA/readme.txt
Log:
JCR-1608: add release notes
Added: jcr/tags/1.12.8-GA/readme.txt
===================================================================
--- jcr/tags/1.12.8-GA/readme.txt (rev 0)
+++ jcr/tags/1.12.8-GA/readme.txt 2011-03-29 10:10:32 UTC (rev 4187)
@@ -0,0 +1,514 @@
+JCR 1.12.8-GA release notes
+===========================
+
+eXoPlatform Java Content Repository (JSR-170) implementation and Extension services with clustering support.
+
+Changes of 1.12.8-GA
+=====================
+Bug
+ * [JCR-1560] - BackupManager restore : Temporary files not deleted
+ * [JCR-1562] - Check problem with compatibility of incremental backup for JCR 1.12.x to JCR 1.14.x.
+ * [JCR-1581] - NFS stale handle
+ * [JCR-1584] - ConstraintViolationException when Importing Version history of a nt:folder node having a nt:file child node
+
+Documentation
+ * [JCR-1561] - Document Repository or Workspace initialization from backup [apply patch]
+ * [JCR-1580] - Fix webdav docbook section since webdav bug with Mac OS Finder is fixed
+ * [JCR-1582] - Improve JCR Doc
+
+Improvement
+ * [JCR-1496] - remove some unncessary jars
+ * [JCR-1538] - Webdav: files icons is the same as folder icons
+ * [JCR-1573] - Reduce the time spent in ParentNodeEvictionActionPolicy
+ * [KER-168] - MimeTypeResolver does not work well with IE7
+
+Task
+ * [JCR-1578] - Check in IndexerSingletonStoreCacheLoader if the children should not be removed
+ * [JCR-1583] - Upgrade to exo-parent 8.1
+
+
+Changes of 1.12.7-GA
+=====================
+
+Bug
+ * [JCR-1483] - When a folder is cut server->client, folder on server doesn't remove.
+ * [JCR-1508] - Property not found dc:title during testing RandomReadNtFileWithMetadataTest
+ * [JCR-1529] - Node restore result depends on cache eviction
+ * [JCR-1541] - SessionDataManager.listChildPropertiesData(NodeData parent) must not return ValueDatas
+ * [JCR-1542] - XML elements are incorrectly parsed while using Woodstox XML processor
+ * [JCR-1544] - Exception error during edit content
+ * [JCR-1549] - Problems in JCR content after being imported
+ * [JCR-1552] - Corrupted data if the server is stopped while document is locked
+ * [JCR-1556] - The If-Modified-Since property in the HTTP header doesn't exist
+ * [JCR-1557] - If Groovy REST service deploy fails on JCR startup other workable services may not be deployed
+ * [JCR-1558] - FileCleaner is null in SysViewWorkspaceInitializer and BackupWorkapceInitializer
+ * [JCR-1564] - FORM authentication doesn't work with jcrbackup tool and Platform
+ * [JCR-1565] - Repository restore fails using exobackup tool with Component unregister error
+ * [JCR-1566] - Restored version nodes get id from jcr:uuid property instead fetch generated id
+ * [JCR-1574] - IncrementalBackupJob should be thread safe
+ * [WS-261] - Platform Packaging fails due to mistake in WS packaging JS file
+
+Documentation
+ * [JCR-1559] - Document databases supported by eXo JCR
+
+Improvement
+ * [JCR-1054] - Make Backup restore easier
+ * [JCR-1499] - Backup console binary distribution
+ * [JCR-1547] - Avoid to get an item from the DB if the parent node is new
+ * [JCR-1550] - Changes log traversing is under optimized
+ * [JCR-1567] - Code review of ACL managment in case of copy/moving nodes
+ * [JCR-1570] - DB clean on MySQL should not use iterating over all db
+ * [COR-217] - remove some unncessary jars
+ * [COR-218] - Support more MIME types
+ * [WS-258] - remove some unncessary jars
+
+Task
+ * [JCR-1463] - Lock operations does not checks any permission.
+ * [JCR-1502] - JCR backupset should be fully independent
+ * [JCR-1519] - Update XPath query ordering chapter in jcr documents
+ * [JCR-1568] - Check portability and compatibility backup in JCR 1.14.x and 1.12.x
+
+
+Changes of 1.12.6-GA
+=====================
+
+Bug
+ * [JCR-1497] - Backup console throws NPE if backup agent isn't deployed on server
+ * [JCR-1522] - Not correct MBean components registration when PortalContainer contains more then one repository
+ * [JCR-1527] - Create Group personnal folder should be after Group creation
+ * [JCR-1530] - Wrong Content-Type header for files over a certain size
+ * [JCR-1532] - MySQL-UTF8 dialect default collation can be case-insensitive - need case-sensitive set explicitly
+ * [JCR-1533] - Remove permission on child isn't used
+ * [JCR-1534] - Problem with uploading files via MacOS client
+ * [JCR-1539] - Webdav doesn't work on JBoss
+
+Improvement
+ * [JCR-1506] - Reduce contention on read in NodeTypeDataHierarchyHolder if possible
+ * [JCR-1523] - Avoid iterating over a List thanks to its iterator when it is possible [Part #2]
+
+Task
+ * [JCR-1521] - Adopt webdav-clients to eXo JCR 1.12.6-GA
+ * [JCR-1524] - Move JCR framework commands list configuration to it right place
+ * [JCR-1525] - Publish the reference guide in docbook format
+
+
+Changes of 1.12.6-CR02
+=====================
+
+Bug
+ * [JCR-1468] - Index already present error during cluster start
+ * [JCR-1504] - Indexer doesn't fully release resources on stop
+ * [JCR-1509] - Access Denied in jcr:content with anonim__ permission
+ * [JCR-1511] - WEBDav view in a webbrowser has hardcoded image links
+ * [JCR-1513] - Problems when start backup-console
+
+Improvement
+ * [JCR-1505] - Avoid iterating over a List thanks to its iterator when it is possible
+
+Task
+ * [JCR-1488] - Limit the total amount of WorkerThreads: apply patch
+
+Changes of 1.12.6-CR01
+=====================
+
+Bug
+ * [JCR-1470] - refresh breaks webdav published files
+ * [JCR-1482] - Corrupted Data if the server is stopped while somebobdy is editing a document in ECMS
+ * [JCR-1485] - Unknown error and strange behavior when mary edits a webcontent
+ * [JCR-1490] - Some Unit Tests on DB2 related to the CAS plugin fail
+ * [JCR-1494] - FTP server doesn't show list of workspaces after repository restoring
+
+Documentation
+ * [JCR-1433] - jcr backup/restore
+
+Improvement
+ * [KER-164] - Allow to use variables to define the realm, the rest context and the portal container name of a PortalContainerDefinition
+ * [WS-256] - Allow to use a String as entity for a JSON response
+ * [JCR-1459] - Whole Repository backup support in Backup Console tool
+ * [JCR-1469] - JCR clustering consumes lot of native threads
+ * [JCR-1491] - The result of the method getReferencesData is never stored into the cache
+
+Task
+ * [JCR-1489] - eXo JCR doesn't work with Oracle 11g R2 RAC
+ * [JCR-1495] - Bind slf4j-log4j and log4j dependencies onto the test phase of the various modules of JCR [part #2]
+
+Sub-task
+ * [JCR-1481] - Adding support form authentication in backup console
+
+Changes of 1.12.5-GA
+=====================
+
+Bug
+ * [KER-162] - Simple skin from examples folder doesn't appear at list
+ * [KER-163] - CachingContainer returns unregistered components
+ * [COR-213] - User logged-out and cannot login after some inactivity
+ * [WS-254] - Add org.exoplatform.services.rest.ext.method.filter.MethodAccessFilter in container configuration by default
+ * [JCR-1438] - Problem with JCR versionning
+ * [JCR-1449] - Can't get property of a node if it has a child node with the same name with the property
+ * [JCR-1450] - JCROrganizationService contains nodetype with same name as in CS
+ * [JCR-1453] - Missed nodetypes in cluster testing configuration
+ * [JCR-1462] - Problems during testing of backup on jcr 1.12.5-GA-SNAPSHOT
+ * [JCR-1466] - RepositoryException: URI is not hierarchical on remove workspace via backup console
+ * [JCR-1474] - NPE when try to import data via WorkspaceContentImporter
+
+Improvement
+ * [KER-160] - Prevent the JobSchedulerServiceImpl to launch jobs that rely on non started services in JBoss AS
+ * [KER-161] - Make the JobSchedulerServiceImpl support multi portal containers
+
+Task
+ * [JCR-1455] - Doc's title should be rename from eXoJCR Reference Manual to eXo JCR Developer Guide
+ * [JCR-1461] - Remove timestamp from names of jar-files in application bundles
+ * [JCR-1467] - Cannot use webdav service with a version of jcr:content
+ * [JCR-1471] - Updating eXo JCR version in ra.xml automatically
+ * [JCR-1472] - Adopt Backup client article
+ * [JCR-1473] - merge performance improvements
+
+Changes of 1.12.4-GA
+=====================
+
+Bug
+ * [EXOJCR-688] - Some entries in the eXo JCR cache are not evicted properly
+ * [EXOJCR-843] - Exceptions after importing file with version history
+ * [EXOJCR-849] - "Permission denied" on client side, when trying to move file(s) to another workspace through FTP
+ * [EXOJCR-856] - Problems while recopying same files via webdav
+ * [EXOJCR-865] - Data corrupt after restore a node which has been imported with version history
+ * [EXOJCR-878] - WebDAV doesn't work with nt:file
+ * [EXOJCR-879] - TestCaching.testNotModifiedSince failed in same cases
+ * [EXOJCR-888] - The problems with restore version node
+ * [EXOJCR-890] - JSON framework don't work with beans created in groovy
+ * [EXOJCR-891] - Snaphosts IDs make the applications build improperly
+ * [EXOJCR-908] - Used wrong delimiter during parsing permission value
+ * [EXOJCR-909] - In LDAPService, InitialContext is not safely closed in authenticate method
+ * [EXOJCR-912] - Unable to convert the JCR documentation to pdf
+ * [EXOJCR-916] - Duplicate instantiation of some services
+ * [EXOJCR-921] - Workspace.copy(srcWS, srcAbsPath, destAbsPath) can not copy root child to another workspace root child
+ * [EXOJCR-924] - Unable to coerce 'Event' into a LONG: java.lang.NumberFormatException: For input string: "Event"
+ * [EXOJCR-933] - Determine property type from nodetype definition in DocumentViewImport for version history.
+ * [EXOJCR-936] - Avoid converting binary value to String in tests
+
+Feature Request
+ * [EXOJCR-842] - Allow to disable a given PortalContainer
+ * [EXOJCR-880] - Determine property is multi or single value from nodetype definition in import.
+ * [EXOJCR-886] - Update the document handler to manage MS Office 2007 meta data extraction (docx, ...)
+ * [EXOJCR-934] - Decouple event name from listener name in ListenerService.
+ * [EXOJCR-935] - Add "dav:isreadonly" property management
+
+Task
+ * [EXOJCR-896] - Port Manageability article into docbook
+ * [EXOJCR-905] - Merge the reference guide and the user guide in one single guide
+ * [EXOJCR-913] - Abuse of INFO level logging for DocNumberCache.get()
+ * [EXOJCR-914] - excessive INFO logging by IndexMerger.run()
+ * [EXOJCR-915] - excessive INFO logging by IndexMerger.run()
+ * [EXOJCR-917] - core.packaging.module.js error when in deploy phase
+ * [EXOJCR-919] - maxVolatileTime should be checked on checkFlush()
+ * [EXOJCR-927] - Add "application/x-groovy+html" to HTMLDocumentReader and "application/x-jaxrs+groovy" to TextPlainDocumentReader
+ * [EXOJCR-892] - Remove Fake Chapters
+
+Changes of 1.12.3-GA
+=====================
+
+Bug
+ * [EXOJCR-754] - JDBC Statements left open : Use of Datasources instead of DBCP and C3P0 pools
+ * [EXOJCR-763] - Reordering samename sibling nodes does not update path of child nodes
+ * [EXOJCR-766] - QPath isDescendantOf returns wrong result on samename siblings
+ * [EXOJCR-774] - If-Modified-Since doesn't seem to be well managed in the Wevdav
+ * [EXOJCR-781] - LockManagerImpl should call InitialContextInitializer.recall
+ * [EXOJCR-784] - DOC : wrong examples in profiles section
+ * [EXOJCR-785] - Parameter maxVolatileTime is not working correctly
+ * [EXOJCR-788] - Inconsistency issue cans occur on default portal container parameters
+ * [EXOJCR-795] - Unexpected behavior of the method PortalContainer.isScopeValid()
+ * [EXOJCR-796] - Data corruption
+ * [EXOJCR-804] - "No such file or directory" exception for value storage when using MySQL or Postgres DB in WCM demo 2.0
+ * [EXOJCR-806] - Problems while copying "ftp-ftp"
+ * [EXOJCR-810] - TestRemoveFromValueStorage failed in configuration without ValueStorage
+ * [EXOJCR-813] - ItemImpl.getParent method must return session pooled parent
+ * [EXOJCR-817] - max-buffer-size from configuration should be use to TransientValueData in import (docview and sysview)
+ * [EXOJCR-835] - TestMultiDbJDBCConnection and TestSingleDbJDBCConnection must drop also JCR_xCONTAINER table on tearDown
+ * [EXOJCR-857] - Exception during PROPFIND request if some property content "%" and after not hex chracters
+ * [EXOJCR-865] - Data corrupt after restore a node which has been imported with version history
+ * [EXOJCR-882] - TestCaching fails on Windows XP SP 2 with Russian locale
+
+Feature Request
+ * [EXOJCR-230] - Refactore and move in main part of exo.ws.rest.core project class AbstractResourceTest
+ * [EXOJCR-782] - No longer force extension developers to redefine the whole dependencies list
+ * [EXOJCR-783] - Use cached table for HSLQLDB tables
+ * [EXOJCR-797] - Unable see error message from ProxyService if remote server does not provide Content-Type header.
+
+Task
+ * [EXOJCR-392] - Siblings reordering may update not all the child-items in cache
+ * [EXOJCR-751] - Prepare maintenance branch for jcr 1.12
+ * [EXOJCR-808] - For Sybase DB "check-sns-new-connection" should be set to false by default
+ * [EXOJCR-809] - OrganizationService's tests should not be excluded
+ * [EXOJCR-815] - Document how to use AS Managed DataSource
+ * [EXOJCR-867] - Port documentation for Kernel from wiki to docbook
+ * [EXOJCR-868] - Port documentation for Core from wiki to docbook
+ * [EXOJCR-869] - Port documentation for JCR from wiki to docbook
+ * [EXOJCR-870] - Cleanup WS documentation
+ * [EXOJCR-871] - Document RestServicesList service
+ * [EXOJCR-881] - Port functionality of EXOJCR-482 in jcr-1.12.x
+ * [EXOJCR-884] - Rename JCR documentation artifacts to exo.jcr.* form
+
+Changes of 1.12.2-GA
+====================
+
+Bug
+ * [EXOJCR-497] - JCR serialization test wrong logic with CASable storage
+ * [EXOJCR-730] - Restored repository not accessible after restart Tomcat
+ * [EXOJCR-731] - Deploy error (500 - Unexpected error. null) of REST Service with annotation inheritance.
+ * [EXOJCR-735] - JCR repositories created in runtime is not available after eXo Social restart
+ * [EXOJCR-736] - Problems with anonymous entrance on FTP and NPE
+ * [EXOJCR-743] - InitialContextBinder bind twice same datasource in some case
+ * [EXOJCR-762] - Check whether the repository with the given name doesn't exists before starting restore from backup
+
+Feature Request
+ * [EXOJCR-640] - Migrate to newer version of Apache PDFBox ( and FontBox ) if possible;
+
+Task
+ * [EXOJCR-596] - Upload eXoJCR documentation on jboss.org
+ * [EXOJCR-668] - Validate format of the default values of the property definition during the nodetype registration
+ * [EXOJCR-738] - Search does not work with source in CDATA tag in XML document
+ * [EXOJCR-740] - Constrains ranges are not used in NodeTypeImpl.canSetProperty() validation
+ * [EXOJCR-741] - Backupconsole build improvements
+ * [EXOJCR-765] - Use StringBuilder instead of String concatenation in MSExcelDocumentReader.getContentAsText
+ * [EXOJCR-681] - Decreasing perfomance while running WebdavReadWriteTest tests several times in row
+
+
+
+Changes of 1.12.2-CR1
+=====================
+
+Bug
+ * [EXOJCR-175] - Problems with HTTPBackupAgent - Cyrillic symbols aren't showing after restore
+ * [EXOJCR-683] - java.io.IOException: Socket read failed on heavy loaded WebdavAddBLOBTest benchmark test
+ * [EXOJCR-697] - SQL search by date doesn't work
+ * [EXOJCR-698] - URL encoding in SEARCH and PROPFIND responces differs.
+ * [EXOJCR-700] - Problem in user search with MySql and PostgresDB
+ * [EXOJCR-704] - JCR testuite hangs on sybase
+ * [EXOJCR-708] - Problem with full text searching in text files with non-latin content.
+ * [EXOJCR-712] - Concurrent service creation leads to duplicate service instantiation
+ * [EXOJCR-724] - Bad URL in the error message when a component cannot be instantiated
+ * [EXOJCR-726] - Improper conversion of jboss.server.config.url system property value into File (spaces in filename problem)
+ * [EXOJCR-729] - The FileNotFoundException in restore workspace over BackupWorkspaceinitializer
+ * [EXOJCR-734] - The binary values was not stored in incremental backup.
+
+Feature Request
+ * [EXOJCR-705] - Expose listeners in OrganizationService
+ * [EXOJCR-707] - Check repository management operations on thread safety
+ * [EXOJCR-718] - Allow to get the complete configuration at runtime
+ * [EXOJCR-719] - Better debugging of components loaded
+ * [EXOJCR-721] - Add possibility to use customized GroovyClassLoader in org.exoplatform.services.script.groovy.GroovyScriptInstantiator
+ * [EXOJCR-722] - Make it possible to use other then org.exoplatform.services.rest.impl.method.DefaultMethodInvoker
+
+Task
+ * [EXOJCR-354] - Invoke post read after permissions check
+ * [EXOJCR-663] - Make possibility extends classes RequestDispatcher and ResourceBinder.
+ * [EXOJCR-691] - Fix your missing dependencies
+ * [EXOJCR-692] - Find the reason why the method of type Node.hasNodes is much slower since beta5
+ * [EXOJCR-694] - Change JBC dependencies to use 3.2.4.GA
+ * [EXOJCR-696] - Reduce the concurrency Level in the JBoss Cache Config
+ * [EXOJCR-711] - Misleading error message appears when the external settings cannot be found
+ * [EXOJCR-714] - Improve the usability of the ContainerLifecyclePlugin
+ * [EXOJCR-715] - Ensure that the ExoContainer is fully ThreadSafe
+ * [EXOJCR-716] - Prevent the JobSchedulerServiceImpl to launch jobs that rely on non started services
+ * [EXOJCR-717] - Add to RestRegistryService method without repositoryName in PathParam, insted use current repository. Methods with repositoryName in PathParam marks as Deprecated.
+ * [EXOJCR-720] - Make possibility extends classe GroovyScript2RestLoader
+ * [EXOJCR-723] - JCR Statistics: Describe the arguments of the methods exposed through JMX
+ * [EXOJCR-728] - implementing RequestLifecycle for REST services
+
+
+Changes of 1.12.1-GA
+=====================
+
+Bug
+ * [EXOJCR-612] - JBoss Cache Implementation for the Cache Service test TestAbstractExoCache fails
+ * [EXOJCR-638] - get mixin types through the NodeTypeUtil class
+ * [EXOJCR-661] - Cannot access to the MBeans through the JConsole in Standalone mode
+ * [EXOJCR-662] - Processing SQLException may cause infinite loop.
+ * [EXOJCR-664] - org.exoplatform.services.jcr.impl.storage.value.fs.TestFileIOChannel.testConcurrentRead fail with MSSQL and DB2
+ * [EXOJCR-667] - Temporary spooled file can be not found on save
+ * [EXOJCR-671] - ConcurrentModificationException in FileCleaner with heavy load
+ * [EXOJCR-672] - An eXoCache clear should be local
+ * [EXOJCR-687] - Some JCR parameters that are time parameter are retrieved as number instead of time
+
+Feature Request
+ * [EXOJCR-498] - Provide more details when a JCR query is invalid
+ * [EXOJCR-634] - Upload of a file with special characters like " ' " in filename is not supported by the FTPservice
+ * [EXOJCR-645] - Add ExtHttpHeaders.JAXRS_BODY_PROVIDED header for unhandled exception in REST services and set error message to body responce
+
+Task
+ * [EXOJCR-578] - Use Fisheye in SCM urls used in maven
+ * [EXOJCR-611] - Provide a way to collect statistics around the JCR API accesses
+ * [EXOJCR-639] - Find the reason why the methods of type Property.setValue are much slower since beta5
+ * [EXOJCR-685] - Change JBC dependencies to use 3.2.3.GA
+ * [EXOJCR-689] - Standartize eXo JCR docnmentation projects description.
+ * [EXOJCR-690] - Apply changes in the eXo JCR project in order to be able to publish artifacts in the nexus of JBoss
+ * [EXOJCR-545] - Checking performance on SearchNodesByPropertyTest
+ * [EXOJCR-643] - Improve the performances of the lucene indexing in a cluster by removing contention for read operations
+
+
+Changes of 1.12.1-CR1
+=====================
+
+Bug
+ * [EXOJCR-256] - There are server errors "500 Internal Server Error:" during creation repository or workspace by RestRepositoryService
+ * [EXOJCR-348] - Test problem: TestCleanableFileStreamValueData failed
+ * [EXOJCR-519] - DAILY TESTS are going too long (avg time=5hours)
+ * [EXOJCR-531] - Problems with Lock operations
+ * [EXOJCR-546] - TESTING: Performance testing problems. LockUnlockOwnNodeTest - TPS fell down
+ * [EXOJCR-548] - problem with import & export node
+ * [EXOJCR-555] - NPE with cache eviction at startup
+ * [EXOJCR-557] - Problem while uploading *.pdf to WebDAV server using Mac OS Finder
+ * [EXOJCR-558] - Files uploaded by Mac OS finder are displayed with size "0"
+ * [EXOJCR-559] - Problems with daily performance testing - on PostgreSQL 8.2.9
+ * [EXOJCR-567] - The REST servlet dump errors when the client cut the socket too early should be only a debug log
+ * [EXOJCR-572] - Can not create workspace with default configuration of lock manager
+ * [EXOJCR-581] - Listing the directory in TreeFile may return null during race condition, causing NPE.
+ * [EXOJCR-584] - User's research is case sensitive
+ * [EXOJCR-586] - Missed slf4j dependency for jcr applications on tomcat AS
+ * [EXOJCR-587] - session.save() throws NPE after node reordering
+ * [EXOJCR-588] - Tests errors in eXo XML Processing Services on MACOS
+ * [EXOJCR-591] - Problem with ObservationManager
+ * [EXOJCR-599] - deadlock during dashboard editing
+ * [EXOJCR-600] - Concurrency problem (java.util.HashMap.put called from CacheableLockManagerImpl.getSessionLockManager(CacheableLockManagerImpl.java:473))
+ * [EXOJCR-601] - gatein sample extension should not be required
+ * [EXOJCR-602] - StackOverflow on JsonGeneratorImpl
+ * [EXOJCR-603] - impossible to change user password
+ * [EXOJCR-607] - Sybase Issue with GateIn
+ * [EXOJCR-608] - XaSessionImpl as XA resource should be unique per user, workspace and repository
+ * [EXOJCR-614] - Node.getReferences fail in some cases
+ * [EXOJCR-615] - Need check nodedata to avoid exception in method NodeImpl.isNodeType(String).
+ * [EXOJCR-619] - Log record forging (Security Issue)
+ * [EXOJCR-621] - Conflict between symlink feature and Jbosscache
+ * [EXOJCR-623] - Unable to get a version of document using WebDAV (HTTP Response 404 returned).
+ * [EXOJCR-633] - Problems with manual testing - tomcat-server on ftp -.IndexOutOfBoundsException
+
+Feature Request
+ * [EXOJCR-549] - Backup and Restore of a whole Repository
+ * [EXOJCR-571] - Change PersitedValueDataReader/Writer
+ * [EXOJCR-573] - Create database and bind DataSource in runtime
+ * [EXOJCR-582] - DB script modification for oracle11 compatibility
+ * [EXOJCR-585] - Allow to get statistics on Database Access without using a Profiler
+ * [EXOJCR-616] - Remove repository container from repositoryContainers map when repository container start fail.
+ * [EXOJCR-617] - Map environment parameters for all String fields in Repository configuration
+
+Task
+ * [EXOJCR-150] - Ftp client tests failute
+ * [EXOJCR-250] - Add human readable message in case Workspace creation error via HTTPBackupAgent
+ * [EXOJCR-393] - Create indexer load test
+ * [EXOJCR-523] - Upgrade to JBoss Cache 3.2.3.GA
+ * [EXOJCR-550] - Bind slf4j-log4j and log4j dependencies onto the test phase of the various modules of JCR
+ * [EXOJCR-552] - Allow to Test eXo JCR 1.12 on EC2
+ * [EXOJCR-575] - Remove unused PairChangesLog class
+ * [EXOJCR-589] - Limit network traffic and thread blocking for the Lucene Indexer in a cluster
+ * [EXOJCR-590] - DO NOT exclude tests from a parent pom
+ * [EXOJCR-598] - Allow to disable the hints used for the Complex Queries on oracle
+ * [EXOJCR-605] - Normalize logging categories
+ * [EXOJCR-631] - Find a reason, why functional tests fails under Tornado.MySQL with "Cannot create PoolableConnectionFactory (Too many connections)" message.
+ * [EXOJCR-632] - svn: File 'jcr.packaging.module/1.12.0-CP01/jcr.packaging.module-1.12.0-CP01.js' has inconsistent newlines
+
+
+Features of eXoJCR 1.12 comparing to 1.11
+=========================================
+
+- Repository clustering based on JBossCache and JBoss Transactions.
+- Lazy-load option for child nodes and properties read, improved items dataflow for read/write operations
+- Alternative data container optimized for read operations (consuming less database queries)
+- Database dialect can be autodetected (if not pointed in the configuration)
+- Support for Values large of 2GiB
+- Portal container configuration improvements (default definitions, link and externaly loaded parameters)
+- Concurrency improvements for Session registry and Values stroage
+- Concurrency improvements for XA transactions support (Repository login and logout faster now)
+- Improved serach based on Lucene 2.4
+- Support of MySQL/InnoDB database for multi-language content
+- Standalone container can use configuration stored in JBossAS server configuration directory by default
+- WebDAV server update-policy can be configured to different versioning behaviour
+- Lot of WebDAV server bugfixes
+- HTTP (RESTful) Backup agent with concole client
+- HTTP (RESTful) Repository management service
+- Support of Java6 and Java5 runtime and development environment
+
+Since version of 1.12 eXoJCR available under LGPL license (version 2.1).
+
+eXoJCR 1.12 tested in on the databases:
+ MySQL 5.1 MYSQL Connector/J 5.1.8
+ Oracle DB 10g (10.2.0.1) Oracle 10g (10.2.0.1)
+ PostgresSQL 8.3.7 JDBC4 Driver, Version 8.3-605
+ DB2 9,7 IBM Data Server Driver for JDBC and SQLJ (JCC Driver) Version: 9.1 (fixpack 3a)
+ MS SQL Server 2005 SP3 JDBC Driver 2.0
+ MS SQL Server 2008 SP1 JDBC Driver 2.0
+ Sybase 15.0.2 JConnect v6.0.5 (Build 26564 / 11 Jun 2009)
+
+
+Release includes:
+* eXo Kernel 2.2.8-GA
+* eXo Core 2.3.8-GA
+* eXo WS 2.1.8-GA
+* eXo JCR 1.12.8-GA
+
+1.12.8-GA tasks:
+https://jira.exoplatform.org/browse/JCR/fixforversion/12542
+https://jira.exoplatform.org/browse/KER/fixforversion/12544
+
+JCR Samples
+===========
+
+1. Start Up (Tomcat)
+ Tomcat 6 bundled can be started by executing the following commands:
+
+ $CATALINA_HOME\bin\eXo.bat run (Windows)
+
+ $CATALINA_HOME/bin/eXo.sh run (Unix)
+
+2. After startup, the sample applications will be available by visiting:
+
+ http://localhost:8080/browser - Simple JCR browser
+ Browse the JCR repository that was started with Tomcat
+ http://localhost:8080/fckeditor - FCK editor sample
+ Edits the sample node using FCKEditor and browse it JCR browser
+ http://localhost:8080/rest/jcr/repository/production - WebDAV service,
+ Open in Microsoft Explorer, File-Open-OpenAsWebFolder with url http://localhost:8080/rest/jcr/repository/production
+ Add/read/remove files there and browse it in the JCR browser or FTP.
+ User name/password: root/exo
+ ftp://localhost:2121 - FTP server
+ Open the repository in FTP client and browse the JCR repository started with Tomcat as FTP content,
+ add/read/remove files there and browse it in the JCR browser or WebDAV.
+
+EAR deploy
+==========
+
+eXo JCR was tested under JBoss-5.1.0.GA application server
+
+JBoss-5.1.0.GA
+
+ 1. Configuration
+
+ * Copy jcr.ear into $jboss_home/server/default/deploy
+ * Create $jboss_home/server/default/conf/exo-conf folder if it doesn't exist.
+ * Put exo-configuration.xml into $jboss_home/server/default/conf/exo-conf/exo-configuration.xml
+ * Configure JAAS by inserting XML fragment shown below into $jboss_home/server/default/conf/login-config.xml
+
+---------
+<application-policy name="exo-domain">
+ <authentication>
+ <login-module code="org.exoplatform.services.security.j2ee.JbossLoginModule" flag="required"></login-module>
+ </authentication>
+ </application-policy>
+---------
+
+ 2. Start Up
+
+ Execute
+ * bin/run.bat on Windows
+ or
+ * bin/run.sh on Unix
+
+Resources
+=========
+
+ Company site http://www.exoplatform.com
+ Documentation wiki http://wiki.exoplatform.org
+ Community JIRA https://jira.jboss.org/jira/browse/EXOJCR, http://jira.exoplatform.org
+ Comminity site http://www.exoplatform.org
+ Community forum http://www.exoplatform.com/portal/public/en/forum
+ JavaDoc site http://docs.exoplatform.org
+
\ No newline at end of file
15 years, 1 month
exo-jcr SVN: r4186 - jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-29 04:18:03 -0400 (Tue, 29 Mar 2011)
New Revision: 4186
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
Log:
EXOJCR-1081: increase timeout for test
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-03-29 07:42:36 UTC (rev 4185)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-03-29 08:18:03 UTC (rev 4186)
@@ -243,7 +243,7 @@
BackupChain bch = backup.startBackup(config);
waitEndOfBackup(bch);
- Thread.sleep(30000);
+ Thread.sleep(60000);
try
{
assertEquals(backup.getCurrentBackups().size(), 0);
15 years, 1 month
exo-jcr SVN: r4185 - in jcr/trunk/exo.jcr.component.ext: src/main/java/org/exoplatform/services/jcr/ext/repository/creation and 2 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-29 03:42:36 -0400 (Tue, 29 Mar 2011)
New Revision: 4185
Modified:
jcr/trunk/exo.jcr.component.ext/pom.xml
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java
Log:
EXOJCR-1281: Create database without datasource prefix in case of SingleDB
Modified: jcr/trunk/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.ext/pom.xml 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/pom.xml 2011-03-29 07:42:36 UTC (rev 4185)
@@ -190,6 +190,7 @@
<include>**/backup/load/TestLoadBackup.java</include>
<include>**/backup/*.java</include>
<include>**/backup/server/*.java</include>
+ <include>**/repository/creation/*.java</include>
</includes>
<excludes>
<exclude>**/BaseStandaloneTest.java</exclude>
Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -427,7 +427,9 @@
Map<String, String> refAddr = null;
try
{
- DBConnectionInfo dbConnectionInfo = dbCreator.createDatabase(rEntry.getName() + "_" + dataSource);
+ DBConnectionInfo dbConnectionInfo =
+ dbCreator.createDatabase(rEntry.getName() + (dataSourceNames.size() == 1 ? "" : "_" + dataSource));
+
refAddr = dbConnectionInfo.getProperties();
}
catch (DBCreatorException e)
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.ext.backup;
+import org.exoplatform.container.xml.InitParams;
+import org.exoplatform.container.xml.PropertiesParam;
import org.exoplatform.services.jcr.config.ContainerEntry;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.QueryHandlerParams;
@@ -30,6 +32,9 @@
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
import org.exoplatform.services.jcr.ext.BaseStandaloneTest;
+import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
+import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
+import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
import org.exoplatform.services.jcr.impl.RepositoryServiceImpl;
import org.exoplatform.services.jcr.impl.clean.rdbms.DBCleanService;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
@@ -38,9 +43,12 @@
import org.exoplatform.services.jcr.impl.core.query.SystemSearchManager;
import org.exoplatform.services.jcr.impl.storage.value.fs.FileValueStorage;
import org.exoplatform.services.jcr.impl.util.io.DirectoryHelper;
+import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import java.io.File;
import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -66,12 +74,16 @@
public abstract class AbstractBackupTestCase extends BaseStandaloneTest
{
+ protected TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
+
+ protected File blob;
+
+ protected ExtendedBackupManager backup;
+
protected SessionImpl ws1Session;
protected Node ws1TestRoot;
- protected ExtendedBackupManager backup;
-
protected String repositoryNameToBackup = "db7";
protected String workspaceNameToBackup = "ws1";
@@ -104,10 +116,59 @@
super.setUp();// this
backup = getBackupManager();
+ blob = createBLOBTempFile(300);
}
protected abstract ExtendedBackupManager getBackupManager();
+ protected ExtendedBackupManager getJCRBackupManager()
+ {
+ if (backup == null)
+ {
+ InitParams initParams = new InitParams();
+ PropertiesParam pps = new PropertiesParam();
+ pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
+ "org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob");
+ pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
+ "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
+ pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup");
+ pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
+
+ initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
+
+ BackupManagerImpl backup = new BackupManagerImpl(initParams, repositoryService);
+ backup.start();
+
+ return backup;
+ }
+
+ return backup;
+ }
+
+ protected ExtendedBackupManager getRDBMSBackupManager()
+ {
+ if (backup == null)
+ {
+ InitParams initParams = new InitParams();
+ PropertiesParam pps = new PropertiesParam();
+ pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
+ "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
+ pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
+ "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
+ pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup");
+ pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
+
+ initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
+
+ BackupManagerImpl backup = new BackupManagerImpl(initParams, repositoryService);
+ backup.start();
+
+ return backup;
+ }
+
+ return backup;
+ }
+
protected RepositoryImpl getReposityToBackup() throws RepositoryException, RepositoryConfigurationException
{
return (RepositoryImpl) repositoryService.getRepository(repositoryNameToBackup);
@@ -562,4 +623,102 @@
return sessionRegistry.closeSessions(workspaceName);
}
+
+ public void waitEndOfBackup(BackupChain bch) throws Exception
+ {
+ while (bch.getFullBackupState() != BackupChain.FINISHED)
+ {
+ Thread.yield();
+ Thread.sleep(50);
+ }
+ }
+
+ public void waitEndOfBackup(RepositoryBackupChain bch) throws Exception
+ {
+ while (bch.getState() != RepositoryBackupChain.FINISHED
+ && bch.getState() != RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING)
+ {
+ Thread.yield();
+ Thread.sleep(50);
+ }
+ }
+
+ public void waitEndOfRestore(String repositoryName) throws Exception
+ {
+ while (backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
+ && backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
+ {
+ Thread.sleep(50);
+ }
+ }
+
+ public void waitEndOfRestore(String repositoryName, String workspaceName) throws Exception
+ {
+ while (backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_SUCCESSFUL
+ && backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_FAIL)
+ {
+ Thread.sleep(50);
+ }
+ }
+
+ public void addIncrementalConent(ManageableRepository repository, String wsName) throws Exception
+ {
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+ Node rootNode = session.getRootNode().addNode("testIncremental");
+
+ // add some changes which will be logged in incremental log
+ rootNode.addNode("node1").setProperty("prop1", "value1");
+ rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
+ rootNode.addNode("node3").addMixin("mix:lockable");
+ session.save();
+ }
+
+ public void addConent(ManageableRepository repository, String wsName) throws Exception
+ {
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+ Node rootNode = session.getRootNode().addNode("test");
+
+ // add some changes which will be logged in incremental log
+ rootNode.addNode("node1").setProperty("prop1", "value1");
+ rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
+ rootNode.addNode("node3").addMixin("mix:lockable");
+ session.save();
+ }
+
+ public void checkConent(ManageableRepository repository, String wsName) throws Exception
+ {
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+
+ Node rootNode = session.getRootNode().getNode("test");
+ assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+
+ InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
+ try
+ {
+ compareStream(new FileInputStream(blob), in);
+ }
+ finally
+ {
+ in.close();
+ }
+ }
+
+ public void checkIncrementalConent(ManageableRepository repository, String wsName) throws Exception
+ {
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+
+ Node rootNode = session.getRootNode().getNode("testIncremental");
+ assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+
+ InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
+ try
+ {
+ compareStream(new FileInputStream(blob), in);
+ }
+ finally
+ {
+ in.close();
+ }
+ }
+
}
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -22,17 +22,11 @@
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
-import org.exoplatform.services.jcr.impl.core.SessionImpl;
import org.exoplatform.services.jcr.util.IdGenerator;
-import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
import java.util.Map;
-import javax.jcr.Node;
-
/**
* Created by The eXo Platform SAS.
*
@@ -44,17 +38,6 @@
public abstract class AbstractBackupUseCasesTest extends AbstractBackupTestCase
{
- private File blob;
-
- private TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
-
- @Override
- public void setUp() throws Exception
- {
- super.setUp();
- blob = createBLOBTempFile(300);
- }
-
public void testFullBackupRestore() throws Exception
{
// prepare
@@ -1206,102 +1189,4 @@
checkConent(repositoryService.getRepository(config.getRepository()),
repositoryService.getRepository(config.getRepository()).getConfiguration().getSystemWorkspaceName());
}
-
- public void waitEndOfBackup(BackupChain bch) throws Exception
- {
- while (bch.getFullBackupState() != BackupChain.FINISHED)
- {
- Thread.yield();
- Thread.sleep(50);
- }
- }
-
- public void waitEndOfBackup(RepositoryBackupChain bch) throws Exception
- {
- while (bch.getState() != RepositoryBackupChain.FINISHED
- && bch.getState() != RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING)
- {
- Thread.yield();
- Thread.sleep(50);
- }
- }
-
-
- public void waitEndOfRestore(String repositoryName) throws Exception
- {
- while (backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
- && backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
- {
- Thread.sleep(50);
- }
- }
-
- public void waitEndOfRestore(String repositoryName, String workspaceName) throws Exception
- {
- while (backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_SUCCESSFUL
- && backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_FAIL)
- {
- Thread.sleep(50);
- }
- }
-
- public void addIncrementalConent(ManageableRepository repository, String wsName) throws Exception
- {
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
- Node rootNode = session.getRootNode().addNode("testIncremental");
-
- // add some changes which will be logged in incremental log
- rootNode.addNode("node1").setProperty("prop1", "value1");
- rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
- rootNode.addNode("node3").addMixin("mix:lockable");
- session.save();
- }
-
- public void addConent(ManageableRepository repository, String wsName) throws Exception
- {
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
- Node rootNode = session.getRootNode().addNode("test");
-
- // add some changes which will be logged in incremental log
- rootNode.addNode("node1").setProperty("prop1", "value1");
- rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
- rootNode.addNode("node3").addMixin("mix:lockable");
- session.save();
- }
-
- public void checkConent(ManageableRepository repository, String wsName) throws Exception
- {
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-
- Node rootNode = session.getRootNode().getNode("test");
- assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
-
- InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
- try
- {
- compareStream(new FileInputStream(blob), in);
- }
- finally
- {
- in.close();
- }
- }
-
- public void checkIncrementalConent(ManageableRepository repository, String wsName) throws Exception
- {
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-
- Node rootNode = session.getRootNode().getNode("testIncremental");
- assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
-
- InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
- try
- {
- compareStream(new FileInputStream(blob), in);
- }
- finally
- {
- in.close();
- }
- }
}
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -16,9 +16,6 @@
*/
package org.exoplatform.services.jcr.ext.backup;
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
/**
* Created by The eXo Platform SAS.
@@ -28,26 +25,11 @@
* @author <a href="mailto:alex.reshetnyak@exoplatform.com.ua">Alex Reshetnyak</a>
* @version $Id$
*/
-public class BaseRDBMSBackupTest
- extends AbstractBackupTestCase
+public class BaseRDBMSBackupTest extends AbstractBackupTestCase
{
@Override
protected ExtendedBackupManager getBackupManager()
{
- InitParams initParams = new InitParams();
- PropertiesParam pps = new PropertiesParam();
- pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
- pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
- pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_BaseRDBMSBackupTest");
- pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
- initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
- BackupManagerImpl backupManagerImpl = new BackupManagerImpl(initParams, repositoryService);
- backupManagerImpl.start();
-
- return backupManagerImpl;
+ return getRDBMSBackupManager();
}
}
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -18,9 +18,6 @@
*/
package org.exoplatform.services.jcr.ext.backup;
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
/**
@@ -31,33 +28,12 @@
* @author <a href="mailto:peter.nedonosko@exoplatform.com.ua">Peter Nedonosko</a>
* @version $Id: TestBackupManager.java 760 2008-02-07 15:08:07Z pnedonosko $
*/
-public class TestBackupManager
- extends AbstractBackupUseCasesTest
+public class TestBackupManager extends AbstractBackupUseCasesTest
{
- private BackupManagerImpl backup;
-
@Override
protected ExtendedBackupManager getBackupManager()
{
- if (backup == null)
- {
-
- InitParams initParams = new InitParams();
- PropertiesParam pps = new PropertiesParam();
- pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob");
- pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
- pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_testBackupManager");
- pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
- initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
- backup = new BackupManagerImpl(initParams, repositoryService);
- backup.start();
- }
-
- return backup;
+ return getJCRBackupManager();
}
}
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -16,9 +16,6 @@
*/
package org.exoplatform.services.jcr.ext.backup;
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
/**
* Created by The eXo Platform SAS.
@@ -31,29 +28,10 @@
public class TestRDBMSBackupManager extends AbstractBackupUseCasesTest
{
- private BackupManagerImpl backup;
-
@Override
protected ExtendedBackupManager getBackupManager()
{
- if (backup == null)
- {
- InitParams initParams = new InitParams();
- PropertiesParam pps = new PropertiesParam();
- pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
- pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
- "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
- pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_testRDBMSBackupManager");
- pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
- initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
- backup = new BackupManagerImpl(initParams, repositoryService);
- backup.start();
- }
-
- return backup;
+ return getRDBMSBackupManager();
}
}
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java 2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java 2011-03-29 07:42:36 UTC (rev 4185)
@@ -19,19 +19,17 @@
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.backup.AbstractBackupTestCase;
import org.exoplatform.services.jcr.ext.backup.BackupManager;
import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChain;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupConfig;
-import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
-import org.exoplatform.services.jcr.impl.core.SessionImpl;
+import org.exoplatform.services.jcr.util.IdGenerator;
import java.io.File;
-import javax.jcr.Node;
-
/**
* Created by The eXo Platform SAS.
*
@@ -43,86 +41,107 @@
public class TestRepositoryCreationService extends AbstractBackupTestCase
{
- protected ExtendedBackupManager getBackupManager()
+ public void testCreateRepositoryMultiDB() throws Exception
{
- return (ExtendedBackupManager)container.getComponentInstanceOfType(BackupManager.class);
- }
+ // prepare
+ ManageableRepository repository = helper.createRepository(container, true, null);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+ helper.addWorkspace(repository, wsEntry);
+ addConent(repository, wsEntry.getName());
- public void testCreateRepository() throws Exception
- {
-
// backup
File backDir = new File("target/backup");
backDir.mkdirs();
- RepositoryImpl repository = getReposityToBackup();
-
RepositoryBackupConfig config = new RepositoryBackupConfig();
- config.setRepository(repository.getName());
+ config.setRepository(repository.getConfiguration().getName());
config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
config.setBackupDir(backDir);
- backup.startBackup(config);
+ RepositoryBackupChain bch = backup.startBackup(config);
+ waitEndOfBackup(bch);
+ backup.stopBackup(bch);
- RepositoryBackupChain bch = backup.findRepositoryBackup(repository.getName());
+ // restore with RepositoryCreatorService
+ RepositoryCreationService creatorService =
+ (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+ assertNotNull(creatorService);
- backup.getRepositoryBackupsLogs();
+ String tenantName = "new_repository_mutli-db";
+ String repoToken = creatorService.reserveRepositoryName(tenantName);
- // wait till full backup will be stopped
- while (bch.getState() != RepositoryBackupChain.FINISHED)
- {
- Thread.yield();
- Thread.sleep(50);
- }
+ // restore
+ RepositoryEntry newRE =
+ helper.createRepositoryEntry(true, repository.getConfiguration().getSystemWorkspaceName(),
+ IdGenerator.generate());
+ newRE.setName(tenantName);
- // stop fullBackup
+ WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(true, IdGenerator.generate());
+ newWSEntry.setName(wsEntry.getName());
+ newRE.addWorkspace(newWSEntry);
- if (bch != null)
- backup.stopBackup(bch);
- else
- fail("Can't get fullBackup chain");
+ creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
+ // check
+ ManageableRepository restoredRepository = repositoryService.getRepository(tenantName);
+ assertNotNull(restoredRepository);
+
+ checkConent(restoredRepository, wsEntry.getName());
+
+ //check repositoryConfiguration
+ RepositoryService repoService = (RepositoryService)this.container.getComponentInstance(RepositoryService.class);
+ assertNotNull(repoService.getConfig().getRepositoryConfiguration(tenantName));
+ }
+
+ public void testCreateRepositorySingleDB() throws Exception
+ {
+ // prepare
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false, dsName);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ helper.addWorkspace(repository, wsEntry);
+ addConent(repository, wsEntry.getName());
+
+ // backup
+ File backDir = new File("target/backup");
+ backDir.mkdirs();
+
+ RepositoryBackupConfig config = new RepositoryBackupConfig();
+ config.setRepository(repository.getConfiguration().getName());
+ config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+ config.setBackupDir(backDir);
+
+ RepositoryBackupChain bch = backup.startBackup(config);
+ waitEndOfBackup(bch);
+ backup.stopBackup(bch);
+
// restore with RepositoryCreatorService
RepositoryCreationService creatorService =
(RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+ assertNotNull(creatorService);
- String tenantName = "new_repository";
-
+ String tenantName = "new_repository_single-db";
String repoToken = creatorService.reserveRepositoryName(tenantName);
// restore
- RepositoryEntry baseRE =
- (RepositoryEntry)ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
+ String newDSName = IdGenerator.generate();
- RepositoryEntry rEntry = makeRepositoryEntry(tenantName, baseRE, "source", null);
+ RepositoryEntry newRE =
+ helper.createRepositoryEntry(false, repository.getConfiguration().getSystemWorkspaceName(), newDSName);
+ newRE.setName(tenantName);
- creatorService.createRepository(bch.getBackupId(), rEntry, repoToken);
+ WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(false, newDSName);
+ newWSEntry.setName(wsEntry.getName());
+ newRE.addWorkspace(newWSEntry);
+ creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
+
// check
ManageableRepository restoredRepository = repositoryService.getRepository(tenantName);
assertNotNull(restoredRepository);
- for (String wsName : restoredRepository.getWorkspaceNames())
- {
- SessionImpl back = null;
- try
- {
- back = (SessionImpl)restoredRepository.login(credentials, wsName);
- Node ws1backTestRoot = back.getRootNode().getNode("backupTest");
- assertEquals("Restored content should be same", "property-5", ws1backTestRoot.getNode("node_5")
- .getProperty("exo:data").getString());
- }
- catch (Exception e)
- {
- e.printStackTrace();
- fail(e.getMessage());
- }
- finally
- {
- if (back != null)
- back.logout();
- }
- }
+ checkConent(restoredRepository, wsEntry.getName());
+
//check repositoryConfiguration
RepositoryService repoService = (RepositoryService)this.container.getComponentInstance(RepositoryService.class);
assertNotNull(repoService.getConfig().getRepositoryConfiguration(tenantName));
@@ -164,10 +183,12 @@
public void testCreateRepositoryException() throws Exception
{
String tenantName = "new_repository_3";
- RepositoryEntry baseRE =
- (RepositoryEntry)ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
- RepositoryEntry rEntry = makeRepositoryEntry(tenantName, baseRE, "source2", null);
+ // prepare
+ ManageableRepository repository = helper.createRepository(container, true, null);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+ helper.addWorkspace(repository, wsEntry);
+ addConent(repository, wsEntry.getName());
RepositoryCreationService creatorService =
(RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
@@ -175,43 +196,67 @@
// 1) try to create with unregistered token
try
{
- creatorService.createRepository("nomatter", rEntry, "any_name");
+ creatorService.createRepository("nomatter", repository.getConfiguration(), "any_name");
fail("There must be RepositoryCreationException.");
}
catch (RepositoryCreationException e)
{
//ok
}
+ }
+ public void testCreateRepositoryMultiDBExistingDS() throws Exception
+ {
+ // prepare
+ ManageableRepository repository = helper.createRepository(container, true, null);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+ helper.addWorkspace(repository, wsEntry);
+ addConent(repository, wsEntry.getName());
+
+ // backup
+ File backDir = new File("target/backup");
+ backDir.mkdirs();
+
+ RepositoryBackupConfig config = new RepositoryBackupConfig();
+ config.setRepository(repository.getConfiguration().getName());
+ config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+ config.setBackupDir(backDir);
+
+ RepositoryBackupChain bch = backup.startBackup(config);
+ waitEndOfBackup(bch);
+ backup.stopBackup(bch);
+
+ // restore with RepositoryCreatorService
+ RepositoryCreationService creatorService =
+ (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+ assertNotNull(creatorService);
+
+ String tenantName = "new_repository_mutli-db_existing_ds";
String repoToken = creatorService.reserveRepositoryName(tenantName);
- // 2) test with malformed repository entry
- RepositoryEntry brokenRepositoryEntry = rEntry;
+ // restore
+ RepositoryEntry newRE =
+ helper.createRepositoryEntry(true, repository.getConfiguration().getSystemWorkspaceName(), null);
+ newRE.setName(tenantName);
- brokenRepositoryEntry.getWorkspaceEntries().get(0).getContainer().getParameters().remove(0);
- brokenRepositoryEntry.getWorkspaceEntries().get(0).getContainer().getParameters().remove(0);
+ WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(true, null);
+ newWSEntry.setName(wsEntry.getName());
+ newRE.addWorkspace(newWSEntry);
try
{
- creatorService.createRepository("nomatter", brokenRepositoryEntry, repoToken);
- fail("There must be RepositoryConfigurationException.");
+ creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
+ fail("Exception should be thrown");
}
catch (RepositoryConfigurationException e)
{
- //ok
+ // ok
}
+ }
- repoToken = creatorService.reserveRepositoryName(tenantName);
- // 3) test configuration with existing datasource
- RepositoryEntry rEntryWithRealDataSource = makeRepositoryEntry(tenantName, baseRE, null, null);
- try
- {
- creatorService.createRepository("nomatter", rEntryWithRealDataSource, repoToken);
- fail("There must be RepositoryConfigurationException.");
- }
- catch (RepositoryConfigurationException e)
- {
- //ok
- }
+ @Override
+ protected ExtendedBackupManager getBackupManager()
+ {
+ return getRDBMSBackupManager();
}
}
15 years, 1 month
exo-jcr SVN: r4184 - kernel/trunk.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-28 13:45:23 -0400 (Mon, 28 Mar 2011)
New Revision: 4184
Modified:
kernel/trunk/pom.xml
Log:
EXOJCR-1279: Upgrade ISPN to 4.2.1 FINAL
Modified: kernel/trunk/pom.xml
===================================================================
--- kernel/trunk/pom.xml 2011-03-28 17:36:22 UTC (rev 4183)
+++ kernel/trunk/pom.xml 2011-03-28 17:45:23 UTC (rev 4184)
@@ -191,7 +191,7 @@
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
- <version>4.2.0.FINAL</version>
+ <version>4.2.1.FINAL</version>
</dependency>
<dependency>
<groupId>org.jibx</groupId>
15 years, 1 month
exo-jcr SVN: r4183 - jcr/trunk.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-28 13:36:22 -0400 (Mon, 28 Mar 2011)
New Revision: 4183
Modified:
jcr/trunk/pom.xml
Log:
EXOJCR-1279: Upgrade ISPN to 4.2.1 FINAL
Modified: jcr/trunk/pom.xml
===================================================================
--- jcr/trunk/pom.xml 2011-03-28 13:44:44 UTC (rev 4182)
+++ jcr/trunk/pom.xml 2011-03-28 17:36:22 UTC (rev 4183)
@@ -397,12 +397,12 @@
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
- <version>4.2.0.FINAL</version>
+ <version>4.2.1.FINAL</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-cachestore-jdbc</artifactId>
- <version>4.2.0.FINAL</version>
+ <version>4.2.1.FINAL</version>
</dependency>
</dependencies>
</dependencyManagement>
15 years, 1 month
exo-jcr SVN: r4182 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-28 09:44:44 -0400 (Mon, 28 Mar 2011)
New Revision: 4182
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
Log:
EXOJCR-1275: close error log at suspend
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java 2011-03-28 13:21:37 UTC (rev 4181)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/SearchIndex.java 2011-03-28 13:44:44 UTC (rev 4182)
@@ -679,8 +679,8 @@
new Integer(getIndexFormatVersion().getVersion()));
}
- File file = new File(indexDirectory, ERROR_LOG);
- errorLog = new ErrorLog(file, errorLogfileSize);
+ doInitErrorLog();
+
// reprocess any notfinished notifies;
if (modeHandler.getMode() == IndexerIoMode.READ_WRITE)
{
@@ -2837,6 +2837,15 @@
errorLog.writeChanges(removed, added);
}
+ /**
+ * Initialization error log.
+ */
+ private void doInitErrorLog() throws IOException
+ {
+ File file = new File(new File(path), ERROR_LOG);
+ errorLog = new ErrorLog(file, errorLogfileSize);
+ }
+
private void recoverErrorLog(ErrorLog errlog) throws IOException, RepositoryException
{
final Set<String> rem = new HashSet<String>();
@@ -2967,6 +2976,8 @@
*/
public void suspend() throws SuspendException
{
+ errorLog.close();
+
if (index instanceof Suspendable)
{
((Suspendable)index).suspend();
@@ -2978,6 +2989,15 @@
*/
public void resume() throws ResumeException
{
+ try
+ {
+ doInitErrorLog();
+ }
+ catch (IOException e)
+ {
+ throw new ResumeException(e);
+ }
+
if (index instanceof Suspendable)
{
((Suspendable)index).resume();
15 years, 1 month
exo-jcr SVN: r4181 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2011-03-28 09:21:37 -0400 (Mon, 28 Mar 2011)
New Revision: 4181
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/OfflinePersistentIndex.java
Log:
EXOJCR-834 : removing System.outs
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/OfflinePersistentIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/OfflinePersistentIndex.java 2011-03-28 12:42:25 UTC (rev 4180)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/OfflinePersistentIndex.java 2011-03-28 13:21:37 UTC (rev 4181)
@@ -73,7 +73,6 @@
{
int count = super.removeDocument(idTerm);
processedIDs.add(idTerm.text());
- System.out.println("RM: " + idTerm.text());
return count;
}
@@ -83,7 +82,6 @@
super.addDocuments(docs);
for (Document doc : docs)
{
- System.out.println("add: " + doc.get(FieldNames.UUID));
processedIDs.add(doc.get(FieldNames.UUID));
}
}
15 years, 1 month
exo-jcr SVN: r4180 - jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-28 08:42:25 -0400 (Mon, 28 Mar 2011)
New Revision: 4180
Added:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositoryRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java
Removed:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRDBMSRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRDBMSRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRestore.java
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
Log:
EXOJCR-1276: Determinate the way of comparing two configurations
Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2011-03-28 12:10:43 UTC (rev 4179)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -61,6 +61,8 @@
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import org.exoplatform.ws.frameworks.json.impl.JsonException;
+import org.exoplatform.ws.frameworks.json.impl.JsonGeneratorImpl;
import org.picocontainer.Startable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -1557,21 +1559,42 @@
// check if we have deal with RDBMS backup
- boolean isRDBMSBackup = false;
+ boolean isSameConfigRestore = false;
try
{
- isRDBMSBackup =
- (Class.forName(workspacesMapping.get(repositoryEntry.getWorkspaceEntries().get(0).getName())
- .getFullBackupType()).equals(org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob.class));
+ if (Class.forName(
+ workspacesMapping.get(repositoryEntry.getWorkspaceEntries().get(0).getName()).getFullBackupType()).equals(
+ org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob.class))
+ {
+ String newConf = new JsonGeneratorImpl().createJsonObject(repositoryEntry).toString();
+ String currnetConf =
+ new JsonGeneratorImpl().createJsonObject(
+ repoService.getRepository(repositoryEntry.getName()).getConfiguration()).toString();
+
+ isSameConfigRestore = newConf.equals(currnetConf);
+ }
}
+ catch (JsonException e)
+ {
+ this.log.error("Can't get JSON object from wokrspace configuration", e);
+ }
+ catch (RepositoryException e)
+ {
+ this.log.error(e);
+ }
+ catch (RepositoryConfigurationException e)
+ {
+ this.log.error(e);
+ }
catch (ClassNotFoundException e)
{
this.log.error(e);
}
JobRepositoryRestore jobExistedRepositoryRestore =
- isRDBMSBackup ? new JobExistedRepositoryRDBMSRestore(repoService, this, repositoryEntry, workspacesMapping,
- rblog) : new JobExistedRepositoryRestore(repoService, this, repositoryEntry, workspacesMapping, rblog);
+ isSameConfigRestore ? new JobExistingRepositorySameConfigRestore(repoService, this, repositoryEntry,
+ workspacesMapping, rblog) : new JobExistingRepositoryRestore(repoService, this, repositoryEntry,
+ workspacesMapping, rblog);
restoreRepositoryJobs.add(jobExistedRepositoryRestore);
if (asynchronous)
@@ -1636,22 +1659,52 @@
throw new WorkspaceRestoreException("Repository \"" + repositoryName + "\" should be existed", e);
}
- // check if we have deal with RDBMS backup
- boolean isRDBMSBackup = false;
+ // check if we need to use restore with same configuration as original
+ // it allows to use atomic restore in cluster env
+ boolean isSameConfigRestore = false;
try
{
- isRDBMSBackup =
- (Class.forName(log.getFullBackupType())
- .equals(org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob.class));
+ if (Class.forName(log.getFullBackupType()).equals(
+ org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob.class))
+ {
+
+ WorkspaceEntry currentWsEntry = null;
+ for (WorkspaceEntry wsEntry : repoService.getRepository(repositoryName).getConfiguration()
+ .getWorkspaceEntries())
+ {
+ if (wsEntry.getName().equals(workspaceEntry.getName()))
+ {
+ currentWsEntry = wsEntry;
+ break;
+ }
+ }
+
+ String newConf = new JsonGeneratorImpl().createJsonObject(workspaceEntry).toString();
+ String currnetConf = new JsonGeneratorImpl().createJsonObject(currentWsEntry).toString();
+
+ isSameConfigRestore = newConf.equals(currnetConf);
+ }
}
+ catch (JsonException e)
+ {
+ this.log.error("Can't get JSON object from wokrspace configuration", e);
+ }
+ catch (RepositoryException e)
+ {
+ this.log.error(e);
+ }
+ catch (RepositoryConfigurationException e)
+ {
+ this.log.error(e);
+ }
catch (ClassNotFoundException e)
{
this.log.error(e);
}
JobWorkspaceRestore jobRestore =
- isRDBMSBackup ? new JobExistedWorkspaceRDBMSRestore(repoService, this, repositoryName, log,
- workspaceEntry) : new JobExistedWorkspaceRestore(repoService, this, repositoryName, log, workspaceEntry);
+ isSameConfigRestore ? new JobExistingWorkspaceSameConfigRestore(repoService, this, repositoryName, log,
+ workspaceEntry) : new JobExistingWorkspaceRestore(repoService, this, repositoryName, log, workspaceEntry);
restoreJobs.add(jobRestore);
if (asynchronous)
Deleted: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRDBMSRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRDBMSRestore.java 2011-03-28 12:10:43 UTC (rev 4179)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRDBMSRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -1,244 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.ext.backup.impl;
-
-import org.exoplatform.commons.utils.SecurityHelper;
-import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryEntry;
-import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.dataflow.DataManager;
-import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.RepositoryRestoreExeption;
-import org.exoplatform.services.jcr.impl.backup.BackupException;
-import org.exoplatform.services.jcr.impl.backup.Backupable;
-import org.exoplatform.services.jcr.impl.backup.DataRestor;
-import org.exoplatform.services.jcr.impl.backup.JCRRestor;
-import org.exoplatform.services.jcr.impl.backup.JdbcBackupable;
-import org.exoplatform.services.jcr.impl.backup.ResumeException;
-import org.exoplatform.services.jcr.impl.backup.Suspendable;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
-import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
-
-import java.io.File;
-import java.security.PrivilegedExceptionAction;
-import java.sql.Connection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.InitialContext;
-import javax.naming.NameNotFoundException;
-import javax.sql.DataSource;
-
-/**
- * Created by The eXo Platform SAS.
- *
- * Date: 24 01 2011
- *
- * @author <a href="mailto:anatoliy.bazko@exoplatform.com.ua">Anatoliy Bazko</a>
- * @version $Id: JobExistedRepositoryRestoreSameConfig.java 34360 2010-11-11 11:11:11Z tolusha $
- */
-public class JobExistedRepositoryRDBMSRestore extends JobRepositoryRestore
-{
-
- /**
- * JobExistedRepositoryRDBMSRestore constructor.
- */
- public JobExistedRepositoryRDBMSRestore(RepositoryService repoService, BackupManagerImpl backupManagerImpl,
- RepositoryEntry repositoryEntry, Map<String, BackupChainLog> workspacesMapping,
- RepositoryBackupChainLog backupChainLog)
- {
- super(repoService, backupManagerImpl, repositoryEntry, workspacesMapping, backupChainLog);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void restoreRepository() throws RepositoryRestoreExeption
- {
- // list of data restorers
- List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
-
- // the list of components to resume
- List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
-
- try
- {
- WorkspaceEntry wsEntry = repositoryEntry.getWorkspaceEntries().get(0);
-
- // define one common connection for all restores and cleaners for single db case
- Connection jdbcConn = null;
- if (!Boolean.parseBoolean(wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.MULTIDB)))
- {
- String dsName = wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME);
-
- final DataSource ds = (DataSource)new InitialContext().lookup(dsName);
- if (ds == null)
- {
- throw new NameNotFoundException("Data source " + dsName + " not found");
- }
-
- jdbcConn = SecurityHelper.doPrivilegedSQLExceptionAction(new PrivilegedExceptionAction<Connection>()
- {
- public Connection run() throws Exception
- {
- return ds.getConnection();
-
- }
- });
- jdbcConn.setAutoCommit(false);
- }
-
- // suspend all components
- for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
- {
- List<Suspendable> suspendableComponents =
- repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Suspendable.class);
-
- for (Suspendable component : suspendableComponents)
- {
- component.suspend();
- resumeComponents.add(component);
- }
- }
-
- // collect all restorers
- for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
- {
- // get all backupable components
- List<Backupable> backupable =
- repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Backupable.class);
-
- File fullBackupDir =
- JCRRestor.getFullBackupFile(workspacesMapping.get(wEntry.getName()).getBackupConfig().getBackupDir());
-
- for (Backupable component : backupable)
- {
- if (component instanceof JdbcBackupable && jdbcConn != null)
- {
- dataRestorer.add(((JdbcBackupable)component).getDataRestorer(fullBackupDir, jdbcConn));
- }
- else
- {
- dataRestorer.add(component.getDataRestorer(fullBackupDir));
- }
- }
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.clean();
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.restore();
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.commit();
- }
-
- // resume components
- for (int i = 0; i < resumeComponents.size(); i++)
- {
- try
- {
- resumeComponents.remove(i).resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
- }
-
- // incremental restore
- for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
- {
- repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Backupable.class);
-
- DataManager dataManager =
- (WorkspacePersistentDataManager)repositoryService.getRepository(this.repositoryEntry.getName())
- .getWorkspaceContainer(wEntry.getName()).getComponent(WorkspacePersistentDataManager.class);
-
- FileCleanerHolder fileCleanHolder =
- (FileCleanerHolder)repositoryService.getRepository(this.repositoryEntry.getName())
- .getWorkspaceContainer(wEntry.getName()).getComponent(FileCleanerHolder.class);
-
- File storageDir =
- JCRRestor.getFullBackupFile(workspacesMapping.get(wEntry.getName()).getBackupConfig().getBackupDir());
-
- JCRRestor restorer = new JCRRestor(dataManager, fileCleanHolder.getFileCleaner());
- for (File incrBackupFile : JCRRestor.getIncrementalFiles(storageDir))
- {
- restorer.incrementalRestore(incrBackupFile);
- }
- }
- }
- catch (Throwable t)
- {
- // rollback
- for (DataRestor restorer : dataRestorer)
- {
- try
- {
- restorer.rollback();
- }
- catch (BackupException e)
- {
- log.error("Can't rollback changes", e);
- }
- }
-
- throw new RepositoryRestoreExeption("Repository " + repositoryEntry.getName() + " was not restored", t);
- }
- finally
- {
- // close
- for (DataRestor restorer : dataRestorer)
- {
- try
- {
- restorer.close();
- }
- catch (BackupException e)
- {
- log.error("Can't close restorer", e);
- }
- }
-
- for (Suspendable component : resumeComponents)
- {
- try
- {
- component.resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component " + component.getClass(), e);
- }
- }
- }
- }
-}
Deleted: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRestore.java 2011-03-28 12:10:43 UTC (rev 4179)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.ext.backup.impl;
-
-import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
-import org.exoplatform.services.jcr.config.RepositoryEntry;
-import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
-import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.RepositoryRestoreExeption;
-import org.exoplatform.services.jcr.impl.RepositoryServiceImpl;
-import org.exoplatform.services.jcr.impl.backup.Backupable;
-import org.exoplatform.services.jcr.impl.core.SessionRegistry;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.jcr.RepositoryException;
-
-/**
- * Created by The eXo Platform SAS.
- *
- * <br/>Date: 2010
- *
- * @author <a href="mailto:alex.reshetnyak@exoplatform.com.ua">Alex Reshetnyak</a>
- * @version $Id$
- */
-public class JobExistedRepositoryRestore extends JobRepositoryRestore
-{
-
- /**
- * JobExistedRepositoryRestore constructor.
- */
- public JobExistedRepositoryRestore(RepositoryService repoService, BackupManagerImpl backupManagerImpl,
- RepositoryEntry repositoryEntry, Map<String, BackupChainLog> workspacesMapping,
- RepositoryBackupChainLog backupChainLog)
- {
- super(repoService, backupManagerImpl, repositoryEntry, workspacesMapping, backupChainLog);
- }
-
- @Override
- /**
- * {@inheritDoc}
- */
- protected void restoreRepository() throws RepositoryRestoreExeption
- {
- // list of components to clean
- List<Backupable> backupable = new ArrayList<Backupable>();
-
- try
- {
- // get current repository configuration
- RepositoryEntry repositoryEntry =
- repositoryService.getConfig().getRepositoryConfiguration(this.repositoryEntry.getName());
-
- if (repositoryEntry == null)
- {
- throw new RepositoryRestoreExeption("Current repository configuration " + this.repositoryEntry.getName()
- + " did not found");
- }
-
- boolean isDefault =
- repositoryService.getDefaultRepository().getConfiguration().getName().equals(repositoryEntry.getName());
-
- String systemWsName =
- repositoryService.getRepository(this.repositoryEntry.getName()).getConfiguration().getSystemWorkspaceName();
-
- //Create local copy of WorkspaceEntry for all workspaces
- ArrayList<WorkspaceEntry> workspaceList = new ArrayList<WorkspaceEntry>();
- workspaceList.addAll(repositoryEntry.getWorkspaceEntries());
-
- // get all backupable components
- for (WorkspaceEntry wEntry : workspaceList)
- {
- backupable.addAll(repositoryService.getRepository(this.repositoryEntry.getName())
- .getWorkspaceContainer(wEntry.getName()).getComponentInstancesOfType(Backupable.class));
- }
-
- //close all session
- for (WorkspaceEntry wEntry : workspaceList)
- {
- forceCloseSession(repositoryEntry.getName(), wEntry.getName());
- }
-
- //remove repository
- if (isDefault)
- {
- ((RepositoryServiceImpl)repositoryService).removeDefaultRepository();
- }
- else
- {
- repositoryService.removeRepository(repositoryEntry.getName());
- }
-
- // clean
- for (Backupable component : backupable)
- {
- component.clean();
- }
-
- super.restoreRepository();
- }
- catch (Throwable t)
- {
- throw new RepositoryRestoreExeption("Repository " + repositoryEntry.getName() + " was not restored", t);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void removeRepository(RepositoryService repositoryService, String repositoryName)
- throws RepositoryException, RepositoryConfigurationException
- {
- }
-
- /**
- * Close sessions on specific workspace.
- *
- * @param repositoryName
- * repository name
- * @param workspaceName
- * workspace name
- * @return int return the how many sessions was closed
- * @throws RepositoryConfigurationException
- * will be generate RepositoryConfigurationException
- * @throws RepositoryException
- * will be generate RepositoryException
- */
- private int forceCloseSession(String repositoryName, String workspaceName) throws RepositoryException,
- RepositoryConfigurationException
- {
- ManageableRepository mr = repositoryService.getRepository(repositoryName);
- WorkspaceContainerFacade wc = mr.getWorkspaceContainer(workspaceName);
-
- SessionRegistry sessionRegistry = (SessionRegistry)wc.getComponent(SessionRegistry.class);
-
- return sessionRegistry.closeSessions(workspaceName);
- }
-}
Deleted: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRDBMSRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRDBMSRestore.java 2011-03-28 12:10:43 UTC (rev 4179)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRDBMSRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -1,190 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.ext.backup.impl;
-
-import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.dataflow.DataManager;
-import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.BackupManager;
-import org.exoplatform.services.jcr.ext.backup.WorkspaceRestoreException;
-import org.exoplatform.services.jcr.impl.backup.BackupException;
-import org.exoplatform.services.jcr.impl.backup.Backupable;
-import org.exoplatform.services.jcr.impl.backup.DataRestor;
-import org.exoplatform.services.jcr.impl.backup.JCRRestor;
-import org.exoplatform.services.jcr.impl.backup.ResumeException;
-import org.exoplatform.services.jcr.impl.backup.Suspendable;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
-import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by The eXo Platform SAS.
- *
- * Date: 24 01 2011
- *
- * @author <a href="mailto:anatoliy.bazko@exoplatform.com.ua">Anatoliy Bazko</a>
- * @version $Id: JobExistedWorkspaceRestoreSameConfig.java 34360 2010-11-11 11:11:11Z tolusha $
- */
-public class JobExistedWorkspaceRDBMSRestore extends JobWorkspaceRestore
-{
- /**
- * The logger.
- */
- private static Log log = ExoLogger.getLogger("exo.jcr.component.ext.JobExistedWorkspaceRDBMSRestore");
-
- /**
- * JobExistedWorkspaceRestore JobExistedWorkspaceRDBMSRestore.
- */
- public JobExistedWorkspaceRDBMSRestore(RepositoryService repositoryService, BackupManager backupManager,
- String repositoryName, BackupChainLog log, WorkspaceEntry wEntry)
- {
- super(repositoryService, backupManager, repositoryName, log, wEntry);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void restore() throws WorkspaceRestoreException
- {
- // list of data restorers
- List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
-
- // the list of components to resume
- List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
-
- try
- {
- // suspend all components
- List<Suspendable> suspendableComponents =
- repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Suspendable.class);
-
- for (Suspendable component : suspendableComponents)
- {
- component.suspend();
- resumeComponents.add(component);
- }
-
- // get all restorers
- List<Backupable> backupable =
- repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Backupable.class);
-
- File storageDir = backupChainLog.getBackupConfig().getBackupDir();
-
- for (Backupable component : backupable)
- {
- File fullBackupDir = JCRRestor.getFullBackupFile(storageDir);
- dataRestorer.add(component.getDataRestorer(fullBackupDir));
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.clean();
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.restore();
- }
-
- for (DataRestor restorer : dataRestorer)
- {
- restorer.commit();
- }
-
- // resume components
- for (int i = 0; i < resumeComponents.size(); i++)
- {
- try
- {
- resumeComponents.remove(i).resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
- }
-
- // incremental restore
- DataManager dataManager =
- (WorkspacePersistentDataManager)repositoryService.getRepository(repositoryName)
- .getWorkspaceContainer(wEntry.getName()).getComponent(WorkspacePersistentDataManager.class);
-
- FileCleanerHolder fileCleanHolder =
- (FileCleanerHolder)repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
- .getComponent(FileCleanerHolder.class);
-
- JCRRestor restorer = new JCRRestor(dataManager, fileCleanHolder.getFileCleaner());
- for (File incrBackupFile : JCRRestor.getIncrementalFiles(storageDir))
- {
- restorer.incrementalRestore(incrBackupFile);
- }
- }
- catch (Throwable t)
- {
- // rollback
- for (DataRestor restorer : dataRestorer)
- {
- try
- {
- restorer.rollback();
- }
- catch (BackupException e)
- {
- log.error("Can't rollback changes", e);
- }
- }
-
- throw new WorkspaceRestoreException("Workspace " + wEntry.getName() + " was not restored", t);
- }
- finally
- {
- // close
- for (DataRestor restorer : dataRestorer)
- {
- try
- {
- restorer.close();
- }
- catch (BackupException e)
- {
- log.error("Can't close restorer", e);
- }
- }
-
- for (Suspendable component : resumeComponents)
- {
- try
- {
- component.resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
- }
- }
- }
-}
Deleted: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRestore.java 2011-03-28 12:10:43 UTC (rev 4179)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.ext.backup.impl;
-
-import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
-import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
-import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.BackupManager;
-import org.exoplatform.services.jcr.ext.backup.WorkspaceRestoreException;
-import org.exoplatform.services.jcr.impl.backup.Backupable;
-import org.exoplatform.services.jcr.impl.core.SessionRegistry;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-
-import java.util.List;
-
-import javax.jcr.RepositoryException;
-
-/**
- * Created by The eXo Platform SAS.
- *
- * <br/>Date: 2010
- *
- * @author <a href="mailto:alex.reshetnyak@exoplatform.com.ua">Alex Reshetnyak</a>
- * @version $Id$
- */
-public class JobExistedWorkspaceRestore extends JobWorkspaceRestore
-{
- /**
- * The logger.
- */
- private static Log log = ExoLogger.getLogger("exo.jcr.component.ext.JobExistedWorkspaceRestore");
-
- /**
- * JobExistedWorkspaceRestore constructor.
- */
- public JobExistedWorkspaceRestore(RepositoryService repositoryService, BackupManager backupManager,
- String repositoryName, BackupChainLog log, WorkspaceEntry wEntry)
- {
- super(repositoryService, backupManager, repositoryName, log, wEntry);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void restore() throws WorkspaceRestoreException
- {
- try
- {
- // get current workspace configuration
- WorkspaceEntry wEntry = null;;
- for (WorkspaceEntry entry : repositoryService.getRepository(repositoryName).getConfiguration()
- .getWorkspaceEntries())
- {
- if (entry.getName().equals(this.wEntry.getName()))
- {
- wEntry = entry;
- break;
- }
- }
-
- if (wEntry == null)
- {
- throw new WorkspaceRestoreException("Workspace " + this.wEntry.getName()
- + " did not found in current repository " + repositoryName + " configuration");
- }
-
- // get all backupable components
- List<Backupable> backupable =
- repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Backupable.class);
-
- // close all session
- forceCloseSession(repositoryName, wEntry.getName());
-
- repositoryService.getRepository(repositoryName).removeWorkspace(wEntry.getName());
-
- // clean
- for (Backupable component : backupable)
- {
- component.clean();
- }
-
- super.restore();
- }
- catch (Throwable t)
- {
- throw new WorkspaceRestoreException("Workspace " + wEntry.getName() + " was not restored", t);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void removeWorkspace(ManageableRepository mr, String workspaceName) throws RepositoryException
- {
- }
-
- /**
- * Close sessions on specific workspace.
- *
- * @param repositoryName
- * repository name
- * @param workspaceName
- * workspace name
- * @return int return the how many sessions was closed
- * @throws RepositoryConfigurationException
- * will be generate RepositoryConfigurationException
- * @throws RepositoryException
- * will be generate RepositoryException
- */
- private int forceCloseSession(String repositoryName, String workspaceName) throws RepositoryException,
- RepositoryConfigurationException
- {
- ManageableRepository mr = repositoryService.getRepository(repositoryName);
- WorkspaceContainerFacade wc = mr.getWorkspaceContainer(workspaceName);
-
- SessionRegistry sessionRegistry = (SessionRegistry)wc.getComponent(SessionRegistry.class);
-
- return sessionRegistry.closeSessions(workspaceName);
- }
-}
Copied: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositoryRestore.java (from rev 4178, jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRestore.java)
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositoryRestore.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositoryRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.services.jcr.ext.backup.impl;
+
+import org.exoplatform.services.jcr.RepositoryService;
+import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.config.RepositoryEntry;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
+import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.RepositoryRestoreExeption;
+import org.exoplatform.services.jcr.impl.RepositoryServiceImpl;
+import org.exoplatform.services.jcr.impl.backup.Backupable;
+import org.exoplatform.services.jcr.impl.core.SessionRegistry;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.RepositoryException;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * <br/>Date: 2010
+ *
+ * @author <a href="mailto:alex.reshetnyak@exoplatform.com.ua">Alex Reshetnyak</a>
+ * @version $Id$
+ */
+public class JobExistingRepositoryRestore extends JobRepositoryRestore
+{
+
+ /**
+ * JobExistingRepositoryRestore constructor.
+ */
+ public JobExistingRepositoryRestore(RepositoryService repoService, BackupManagerImpl backupManagerImpl,
+ RepositoryEntry repositoryEntry, Map<String, BackupChainLog> workspacesMapping,
+ RepositoryBackupChainLog backupChainLog)
+ {
+ super(repoService, backupManagerImpl, repositoryEntry, workspacesMapping, backupChainLog);
+ }
+
+ @Override
+ /**
+ * {@inheritDoc}
+ */
+ protected void restoreRepository() throws RepositoryRestoreExeption
+ {
+ // list of components to clean
+ List<Backupable> backupable = new ArrayList<Backupable>();
+
+ try
+ {
+ // get current repository configuration
+ RepositoryEntry repositoryEntry =
+ repositoryService.getConfig().getRepositoryConfiguration(this.repositoryEntry.getName());
+
+ if (repositoryEntry == null)
+ {
+ throw new RepositoryRestoreExeption("Current repository configuration " + this.repositoryEntry.getName()
+ + " did not found");
+ }
+
+ boolean isDefault =
+ repositoryService.getDefaultRepository().getConfiguration().getName().equals(repositoryEntry.getName());
+
+ String systemWsName =
+ repositoryService.getRepository(this.repositoryEntry.getName()).getConfiguration().getSystemWorkspaceName();
+
+ //Create local copy of WorkspaceEntry for all workspaces
+ ArrayList<WorkspaceEntry> workspaceList = new ArrayList<WorkspaceEntry>();
+ workspaceList.addAll(repositoryEntry.getWorkspaceEntries());
+
+ // get all backupable components
+ for (WorkspaceEntry wEntry : workspaceList)
+ {
+ backupable.addAll(repositoryService.getRepository(this.repositoryEntry.getName())
+ .getWorkspaceContainer(wEntry.getName()).getComponentInstancesOfType(Backupable.class));
+ }
+
+ //close all session
+ for (WorkspaceEntry wEntry : workspaceList)
+ {
+ forceCloseSession(repositoryEntry.getName(), wEntry.getName());
+ }
+
+ //remove repository
+ if (isDefault)
+ {
+ ((RepositoryServiceImpl)repositoryService).removeDefaultRepository();
+ }
+ else
+ {
+ repositoryService.removeRepository(repositoryEntry.getName());
+ }
+
+ // clean
+ for (Backupable component : backupable)
+ {
+ component.clean();
+ }
+
+ super.restoreRepository();
+ }
+ catch (Throwable t)
+ {
+ throw new RepositoryRestoreExeption("Repository " + repositoryEntry.getName() + " was not restored", t);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void removeRepository(RepositoryService repositoryService, String repositoryName)
+ throws RepositoryException, RepositoryConfigurationException
+ {
+ }
+
+ /**
+ * Close sessions on specific workspace.
+ *
+ * @param repositoryName
+ * repository name
+ * @param workspaceName
+ * workspace name
+ * @return int return the how many sessions was closed
+ * @throws RepositoryConfigurationException
+ * will be generate RepositoryConfigurationException
+ * @throws RepositoryException
+ * will be generate RepositoryException
+ */
+ private int forceCloseSession(String repositoryName, String workspaceName) throws RepositoryException,
+ RepositoryConfigurationException
+ {
+ ManageableRepository mr = repositoryService.getRepository(repositoryName);
+ WorkspaceContainerFacade wc = mr.getWorkspaceContainer(workspaceName);
+
+ SessionRegistry sessionRegistry = (SessionRegistry)wc.getComponent(SessionRegistry.class);
+
+ return sessionRegistry.closeSessions(workspaceName);
+ }
+}
Property changes on: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositoryRestore.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Copied: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java (from rev 4178, jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedRepositoryRDBMSRestore.java)
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.services.jcr.ext.backup.impl;
+
+import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.services.jcr.RepositoryService;
+import org.exoplatform.services.jcr.config.RepositoryEntry;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.dataflow.DataManager;
+import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.RepositoryRestoreExeption;
+import org.exoplatform.services.jcr.impl.backup.BackupException;
+import org.exoplatform.services.jcr.impl.backup.Backupable;
+import org.exoplatform.services.jcr.impl.backup.DataRestor;
+import org.exoplatform.services.jcr.impl.backup.JCRRestor;
+import org.exoplatform.services.jcr.impl.backup.JdbcBackupable;
+import org.exoplatform.services.jcr.impl.backup.ResumeException;
+import org.exoplatform.services.jcr.impl.backup.Suspendable;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
+import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
+
+import java.io.File;
+import java.security.PrivilegedExceptionAction;
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.sql.DataSource;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * Date: 24 01 2011
+ *
+ * @author <a href="mailto:anatoliy.bazko@exoplatform.com.ua">Anatoliy Bazko</a>
+ * @version $Id: JobExistingRepositorySameConfigRestore.java 34360 2010-11-11 11:11:11Z tolusha $
+ */
+public class JobExistingRepositorySameConfigRestore extends JobRepositoryRestore
+{
+
+ /**
+ * JobExistingRepositorySameConfigRestore constructor.
+ */
+ public JobExistingRepositorySameConfigRestore(RepositoryService repoService, BackupManagerImpl backupManagerImpl,
+ RepositoryEntry repositoryEntry, Map<String, BackupChainLog> workspacesMapping,
+ RepositoryBackupChainLog backupChainLog)
+ {
+ super(repoService, backupManagerImpl, repositoryEntry, workspacesMapping, backupChainLog);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void restoreRepository() throws RepositoryRestoreExeption
+ {
+ // list of data restorers
+ List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
+
+ // the list of components to resume
+ List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
+
+ try
+ {
+ WorkspaceEntry wsEntry = repositoryEntry.getWorkspaceEntries().get(0);
+
+ // define one common connection for all restores and cleaners for single db case
+ Connection jdbcConn = null;
+ if (!Boolean.parseBoolean(wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.MULTIDB)))
+ {
+ String dsName = wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME);
+
+ final DataSource ds = (DataSource)new InitialContext().lookup(dsName);
+ if (ds == null)
+ {
+ throw new NameNotFoundException("Data source " + dsName + " not found");
+ }
+
+ jdbcConn = SecurityHelper.doPrivilegedSQLExceptionAction(new PrivilegedExceptionAction<Connection>()
+ {
+ public Connection run() throws Exception
+ {
+ return ds.getConnection();
+
+ }
+ });
+ jdbcConn.setAutoCommit(false);
+ }
+
+ // suspend all components
+ for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
+ {
+ List<Suspendable> suspendableComponents =
+ repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Suspendable.class);
+
+ for (Suspendable component : suspendableComponents)
+ {
+ component.suspend();
+ resumeComponents.add(component);
+ }
+ }
+
+ // collect all restorers
+ for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
+ {
+ // get all backupable components
+ List<Backupable> backupable =
+ repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Backupable.class);
+
+ File fullBackupDir =
+ JCRRestor.getFullBackupFile(workspacesMapping.get(wEntry.getName()).getBackupConfig().getBackupDir());
+
+ for (Backupable component : backupable)
+ {
+ if (component instanceof JdbcBackupable && jdbcConn != null)
+ {
+ dataRestorer.add(((JdbcBackupable)component).getDataRestorer(fullBackupDir, jdbcConn));
+ }
+ else
+ {
+ dataRestorer.add(component.getDataRestorer(fullBackupDir));
+ }
+ }
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.clean();
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.restore();
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.commit();
+ }
+
+ // resume components
+ for (int i = 0; i < resumeComponents.size(); i++)
+ {
+ try
+ {
+ resumeComponents.remove(i).resume();
+ }
+ catch (ResumeException e)
+ {
+ log.error("Can't resume component", e);
+ }
+ }
+
+ // incremental restore
+ for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
+ {
+ repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Backupable.class);
+
+ DataManager dataManager =
+ (WorkspacePersistentDataManager)repositoryService.getRepository(this.repositoryEntry.getName())
+ .getWorkspaceContainer(wEntry.getName()).getComponent(WorkspacePersistentDataManager.class);
+
+ FileCleanerHolder fileCleanHolder =
+ (FileCleanerHolder)repositoryService.getRepository(this.repositoryEntry.getName())
+ .getWorkspaceContainer(wEntry.getName()).getComponent(FileCleanerHolder.class);
+
+ File storageDir =
+ JCRRestor.getFullBackupFile(workspacesMapping.get(wEntry.getName()).getBackupConfig().getBackupDir());
+
+ JCRRestor restorer = new JCRRestor(dataManager, fileCleanHolder.getFileCleaner());
+ for (File incrBackupFile : JCRRestor.getIncrementalFiles(storageDir))
+ {
+ restorer.incrementalRestore(incrBackupFile);
+ }
+ }
+ }
+ catch (Throwable t)
+ {
+ // rollback
+ for (DataRestor restorer : dataRestorer)
+ {
+ try
+ {
+ restorer.rollback();
+ }
+ catch (BackupException e)
+ {
+ log.error("Can't rollback changes", e);
+ }
+ }
+
+ throw new RepositoryRestoreExeption("Repository " + repositoryEntry.getName() + " was not restored", t);
+ }
+ finally
+ {
+ // close
+ for (DataRestor restorer : dataRestorer)
+ {
+ try
+ {
+ restorer.close();
+ }
+ catch (BackupException e)
+ {
+ log.error("Can't close restorer", e);
+ }
+ }
+
+ for (Suspendable component : resumeComponents)
+ {
+ try
+ {
+ component.resume();
+ }
+ catch (ResumeException e)
+ {
+ log.error("Can't resume component " + component.getClass(), e);
+ }
+ }
+ }
+ }
+}
Copied: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceRestore.java (from rev 4178, jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRestore.java)
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceRestore.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.services.jcr.ext.backup.impl;
+
+import org.exoplatform.services.jcr.RepositoryService;
+import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
+import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.BackupManager;
+import org.exoplatform.services.jcr.ext.backup.WorkspaceRestoreException;
+import org.exoplatform.services.jcr.impl.backup.Backupable;
+import org.exoplatform.services.jcr.impl.core.SessionRegistry;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+import java.util.List;
+
+import javax.jcr.RepositoryException;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * <br/>Date: 2010
+ *
+ * @author <a href="mailto:alex.reshetnyak@exoplatform.com.ua">Alex Reshetnyak</a>
+ * @version $Id$
+ */
+public class JobExistingWorkspaceRestore extends JobWorkspaceRestore
+{
+ /**
+ * The logger.
+ */
+ private static Log log = ExoLogger.getLogger("exo.jcr.component.ext.JobExistedWorkspaceRestore");
+
+ /**
+ * JobExistingWorkspaceRestore constructor.
+ */
+ public JobExistingWorkspaceRestore(RepositoryService repositoryService, BackupManager backupManager,
+ String repositoryName, BackupChainLog log, WorkspaceEntry wEntry)
+ {
+ super(repositoryService, backupManager, repositoryName, log, wEntry);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void restore() throws WorkspaceRestoreException
+ {
+ try
+ {
+ // get current workspace configuration
+ WorkspaceEntry wEntry = null;;
+ for (WorkspaceEntry entry : repositoryService.getRepository(repositoryName).getConfiguration()
+ .getWorkspaceEntries())
+ {
+ if (entry.getName().equals(this.wEntry.getName()))
+ {
+ wEntry = entry;
+ break;
+ }
+ }
+
+ if (wEntry == null)
+ {
+ throw new WorkspaceRestoreException("Workspace " + this.wEntry.getName()
+ + " did not found in current repository " + repositoryName + " configuration");
+ }
+
+ // get all backupable components
+ List<Backupable> backupable =
+ repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Backupable.class);
+
+ // close all session
+ forceCloseSession(repositoryName, wEntry.getName());
+
+ repositoryService.getRepository(repositoryName).removeWorkspace(wEntry.getName());
+
+ // clean
+ for (Backupable component : backupable)
+ {
+ component.clean();
+ }
+
+ super.restore();
+ }
+ catch (Throwable t)
+ {
+ throw new WorkspaceRestoreException("Workspace " + wEntry.getName() + " was not restored", t);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void removeWorkspace(ManageableRepository mr, String workspaceName) throws RepositoryException
+ {
+ }
+
+ /**
+ * Close sessions on specific workspace.
+ *
+ * @param repositoryName
+ * repository name
+ * @param workspaceName
+ * workspace name
+ * @return int return the how many sessions was closed
+ * @throws RepositoryConfigurationException
+ * will be generate RepositoryConfigurationException
+ * @throws RepositoryException
+ * will be generate RepositoryException
+ */
+ private int forceCloseSession(String repositoryName, String workspaceName) throws RepositoryException,
+ RepositoryConfigurationException
+ {
+ ManageableRepository mr = repositoryService.getRepository(repositoryName);
+ WorkspaceContainerFacade wc = mr.getWorkspaceContainer(workspaceName);
+
+ SessionRegistry sessionRegistry = (SessionRegistry)wc.getComponent(SessionRegistry.class);
+
+ return sessionRegistry.closeSessions(workspaceName);
+ }
+}
Property changes on: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceRestore.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Copied: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java (from rev 4178, jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistedWorkspaceRDBMSRestore.java)
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java 2011-03-28 12:42:25 UTC (rev 4180)
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.services.jcr.ext.backup.impl;
+
+import org.exoplatform.services.jcr.RepositoryService;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.dataflow.DataManager;
+import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.BackupManager;
+import org.exoplatform.services.jcr.ext.backup.WorkspaceRestoreException;
+import org.exoplatform.services.jcr.impl.backup.BackupException;
+import org.exoplatform.services.jcr.impl.backup.Backupable;
+import org.exoplatform.services.jcr.impl.backup.DataRestor;
+import org.exoplatform.services.jcr.impl.backup.JCRRestor;
+import org.exoplatform.services.jcr.impl.backup.ResumeException;
+import org.exoplatform.services.jcr.impl.backup.Suspendable;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
+import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * Date: 24 01 2011
+ *
+ * @author <a href="mailto:anatoliy.bazko@exoplatform.com.ua">Anatoliy Bazko</a>
+ * @version $Id: JobExistingWorkspaceSameConfigRestore.java 34360 2010-11-11 11:11:11Z tolusha $
+ */
+public class JobExistingWorkspaceSameConfigRestore extends JobWorkspaceRestore
+{
+ /**
+ * The logger.
+ */
+ private static Log log = ExoLogger.getLogger("exo.jcr.component.ext.JobExistingWorkspaceSameConfigRestore");
+
+ /**
+ * JobExistingWorkspaceSameConfigRestore constructor.
+ */
+ public JobExistingWorkspaceSameConfigRestore(RepositoryService repositoryService, BackupManager backupManager,
+ String repositoryName, BackupChainLog log, WorkspaceEntry wEntry)
+ {
+ super(repositoryService, backupManager, repositoryName, log, wEntry);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void restore() throws WorkspaceRestoreException
+ {
+ // list of data restorers
+ List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
+
+ // the list of components to resume
+ List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
+
+ try
+ {
+ // suspend all components
+ List<Suspendable> suspendableComponents =
+ repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Suspendable.class);
+
+ for (Suspendable component : suspendableComponents)
+ {
+ component.suspend();
+ resumeComponents.add(component);
+ }
+
+ // get all restorers
+ List<Backupable> backupable =
+ repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .getComponentInstancesOfType(Backupable.class);
+
+ File storageDir = backupChainLog.getBackupConfig().getBackupDir();
+
+ for (Backupable component : backupable)
+ {
+ File fullBackupDir = JCRRestor.getFullBackupFile(storageDir);
+ dataRestorer.add(component.getDataRestorer(fullBackupDir));
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.clean();
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.restore();
+ }
+
+ for (DataRestor restorer : dataRestorer)
+ {
+ restorer.commit();
+ }
+
+ // resume components
+ for (int i = 0; i < resumeComponents.size(); i++)
+ {
+ try
+ {
+ resumeComponents.remove(i).resume();
+ }
+ catch (ResumeException e)
+ {
+ log.error("Can't resume component", e);
+ }
+ }
+
+ // incremental restore
+ DataManager dataManager =
+ (WorkspacePersistentDataManager)repositoryService.getRepository(repositoryName)
+ .getWorkspaceContainer(wEntry.getName()).getComponent(WorkspacePersistentDataManager.class);
+
+ FileCleanerHolder fileCleanHolder =
+ (FileCleanerHolder)repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .getComponent(FileCleanerHolder.class);
+
+ JCRRestor restorer = new JCRRestor(dataManager, fileCleanHolder.getFileCleaner());
+ for (File incrBackupFile : JCRRestor.getIncrementalFiles(storageDir))
+ {
+ restorer.incrementalRestore(incrBackupFile);
+ }
+ }
+ catch (Throwable t)
+ {
+ // rollback
+ for (DataRestor restorer : dataRestorer)
+ {
+ try
+ {
+ restorer.rollback();
+ }
+ catch (BackupException e)
+ {
+ log.error("Can't rollback changes", e);
+ }
+ }
+
+ throw new WorkspaceRestoreException("Workspace " + wEntry.getName() + " was not restored", t);
+ }
+ finally
+ {
+ // close
+ for (DataRestor restorer : dataRestorer)
+ {
+ try
+ {
+ restorer.close();
+ }
+ catch (BackupException e)
+ {
+ log.error("Can't close restorer", e);
+ }
+ }
+
+ for (Suspendable component : resumeComponents)
+ {
+ try
+ {
+ component.resume();
+ }
+ catch (ResumeException e)
+ {
+ log.error("Can't resume component", e);
+ }
+ }
+ }
+ }
+}
15 years, 1 month
exo-jcr SVN: r4179 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-03-28 08:10:43 -0400 (Mon, 28 Mar 2011)
New Revision: 4179
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
Log:
EXOJCR-1170: start merger during resume
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-03-25 16:58:38 UTC (rev 4178)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2011-03-28 12:10:43 UTC (rev 4179)
@@ -1531,7 +1531,7 @@
/**
* Initialize IndexMerger.
*/
- private IndexMerger doInitIndexMerger() throws IOException
+ private void doInitIndexMerger() throws IOException
{
merger = new IndexMerger(this);
merger.setMaxMergeDocs(handler.getMaxMergeDocs());
@@ -1542,8 +1542,6 @@
{
merger.indexAdded(((PersistentIndex)index).getName(), ((PersistentIndex)index).getNumDocuments());
}
-
- return merger;
}
/**
@@ -3203,7 +3201,7 @@
attemptDelete();
// now that we are ready, start index merger
- merger = doInitIndexMerger();
+ doInitIndexMerger();
merger.start();
if (redoLogApplied)
@@ -3648,6 +3646,7 @@
refreshIndexList();
doInitIndexMerger();
+ merger.start();
}
catch (IOException e)
{
15 years, 1 month
exo-jcr SVN: r4178 - in jcr/trunk: applications/product-patches/as/jonas and 5 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-03-25 12:58:38 -0400 (Fri, 25 Mar 2011)
New Revision: 4178
Removed:
jcr/trunk/applications/product-patches/as/jetty/exo-conf/
jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-config.xml
jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-ispn-config.xml
jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-jbc-config.xml
Modified:
jcr/trunk/applications/product-patches/as/jetty/eXo.bat
jcr/trunk/applications/product-patches/as/jetty/eXo.sh
jcr/trunk/applications/product-patches/as/jetty/exo-configuration.xml
jcr/trunk/applications/product-patches/as/jonas/bin/nt/jonas.bat
jcr/trunk/applications/product-patches/as/jonas/bin/unix/jonas
jcr/trunk/applications/product-patches/as/jonas/exo-configuration.xml
jcr/trunk/applications/product-patches/as/tomcat/exo-configuration.xml
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-config.xml
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-ispn-config.xml
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-jbc-config.xml
Log:
EXOJCR-1260: Improved the configuration using EXOJCR-1268 and EXOJCR-1269
Modified: jcr/trunk/applications/product-patches/as/jetty/eXo.bat
===================================================================
--- jcr/trunk/applications/product-patches/as/jetty/eXo.bat 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jetty/eXo.bat 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1 +1 @@
-java -Djava.security.auth.login.config=jaas.conf -Dexo.profiles=%1 -Djava.net.preferIPv4Stack=true -jar start.jar
+java -Djava.security.auth.login.config=jaas.conf -Dexo.profiles=%1 -Djava.net.preferIPv4Stack=true -Dexo.jcr.parent.dir=. -jar start.jar
Modified: jcr/trunk/applications/product-patches/as/jetty/eXo.sh
===================================================================
--- jcr/trunk/applications/product-patches/as/jetty/eXo.sh 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jetty/eXo.sh 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1 +1 @@
-java -Djava.security.auth.login.config=jaas.conf -Dexo.profiles=$1 -Djava.net.preferIPv4Stack=true -jar start.jar
+java -Djava.security.auth.login.config=jaas.conf -Dexo.profiles=$1 -Djava.net.preferIPv4Stack=true -Dexo.jcr.parent.dir=. -jar start.jar
Modified: jcr/trunk/applications/product-patches/as/jetty/exo-configuration.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/jetty/exo-configuration.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jetty/exo-configuration.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
@@ -43,7 +43,7 @@
<property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.stdout.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<property name="log4j.appender.file" value="org.apache.log4j.FileAppender" />
- <property name="log4j.appender.file.File" value="logs/jcr.log" />
+ <property name="log4j.appender.file.File" value="${exo.jcr.parent.dir:..}/logs/jcr.log" />
<property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.file.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<!-- property name="log4j.category.jcr.FileCleaner" value="DEBUG" / -->
@@ -58,17 +58,17 @@
<value-param>
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-config.xml</value>
</value-param>
<value-param profiles="ispn">
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-ispn-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-ispn-config.xml</value>
</value-param>
<value-param profiles="jbc">
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-jbc-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-jbc-config.xml</value>
</value-param>
</init-params>
</component>
@@ -182,7 +182,7 @@
<key>org.jboss.cache.transaction.TransactionManagerLookup</key>
<type>org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup</type>
</component>
-
+
<component profiles="ispn,jbc">
<key>org.exoplatform.services.transaction.TransactionService</key>
<type>org.exoplatform.services.transaction.jbosscache.JBossTransactionsService</type>
@@ -300,7 +300,7 @@
</value-param>
<value-param>
<name>cache-folder-name</name>
- <value>temp/ftp_cache</value>
+ <value>${exo.jcr.parent.dir:..}/temp/ftp_cache</value>
</value-param>
<!-- bytes per second -->
@@ -327,9 +327,9 @@
<type>org.exoplatform.services.organization.impl.mock.DummyOrganizationService</type>
</component>
- <component>
- <key>org.exoplatform.services.security.Authenticator</key>
- <type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
+ <component>
+ <key>org.exoplatform.services.security.Authenticator</key>
+ <type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
</component>
<component>
@@ -359,7 +359,7 @@
<name>ref-addresses</name>
<description>ref-addresses</description>
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:file:temp/data/exodb" />
+ <property name="url" value="jdbc:hsqldb:file:${exo.jcr.parent.dir:..}/temp/data/exodb" />
<property name="username" value="sa" />
<property name="password" value="" />
</properties-param>
Modified: jcr/trunk/applications/product-patches/as/jonas/bin/nt/jonas.bat
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/bin/nt/jonas.bat 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/bin/nt/jonas.bat 2011-03-25 16:58:38 UTC (rev 4178)
@@ -80,7 +80,7 @@
Rem ----------------------- Begin eXo configuration ----------------------------
cd %JONAS_ROOT%/bin
-set JONAS_OPTS=%JONAS_OPTS% -Dorg.exoplatform.services.log.Log=org.apache.commons.logging.impl.SimpleLog -Djava.awt.headless=true -Dexo.profiles=%1 -Djava.net.preferIPv4Stack=true
+set JONAS_OPTS=%JONAS_OPTS% -Dorg.exoplatform.services.log.Log=org.apache.commons.logging.impl.SimpleLog -Djava.awt.headless=true -Dexo.profiles=%1 -Djava.net.preferIPv4Stack=true -Dexo.jcr.parent.dir=../..
set JAVA_OPTS=%JAVA_OPTS% -Xmx512M
if ""%1"" == ""jbc"" shift
if ""%1"" == ""ispn"" shift
Modified: jcr/trunk/applications/product-patches/as/jonas/bin/unix/jonas
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/bin/unix/jonas 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/bin/unix/jonas 2011-03-25 16:58:38 UTC (rev 4178)
@@ -79,7 +79,7 @@
# ------------------------- Begin eXo configuration ----------------------------
cd $JONAS_ROOT/bin
-JONAS_OPTS="$JONAS_OPTS -Dorg.exoplatform.services.log.Log=org.apache.commons.logging.impl.SimpleLog -Djava.awt.headless=true -Dexo.profiles=$1 -Djava.net.preferIPv4Stack=true"
+JONAS_OPTS="$JONAS_OPTS -Dorg.exoplatform.services.log.Log=org.apache.commons.logging.impl.SimpleLog -Djava.awt.headless=true -Dexo.profiles=$1 -Djava.net.preferIPv4Stack=true -Dexo.jcr.parent.dir=../.."
JAVA_OPTS="$JAVA_OPTS -Xmx512M"
if [ "$1" = "jbc" ] || [ "$1" = "ispn" ]; then
shift
Deleted: jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-config.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1,169 +0,0 @@
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
-<repository-service default-repository="repository">
- <repositories>
- <repository name="repository" system-workspace="production" default-workspace="production">
- <security-domain>exo-domain</security-domain>
- <access-control>optional</access-control>
- <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
- <workspaces>
- <workspace name="production">
- <!-- for system storage -->
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/production" />
- </properties>
- <value-storages>
- <value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/production" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
- <properties>
- <property name="max-size" value="10k" />
- <property name="live-time" value="1h" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/production" />
- </properties>
- </query-handler>
- <lock-manager>
- <time-out>15m</time-out>
- <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
- <properties>
- <property name="path" value="../../temp/lock/production" />
- </properties>
- </persister>
- </lock-manager>
- </workspace>
-
- <workspace name="backup">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/backup" />
- </properties>
- <value-storages>
- <value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/backup" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
- <properties>
- <property name="max-size" value="10k" />
- <property name="live-time" value="1h" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/backup" />
- </properties>
- </query-handler>
- <lock-manager>
- <time-out>15m</time-out>
- <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
- <properties>
- <property name="path" value="../../temp/lock/backup" />
- </properties>
- </persister>
- </lock-manager>
- </workspace>
-
- <workspace name="digital-assets">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/digital-assets" />
- </properties>
- <value-storages>
- <value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/digital-assets" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:folder" />
- </properties>
- </initializer>
- <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
- <properties>
- <property name="max-size" value="5k" />
- <property name="live-time" value="15m" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/digital-assets" />
- </properties>
- </query-handler>
- <lock-manager>
- <time-out>15m</time-out>
- <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
- <properties>
- <property name="path" value="../../temp/lock/digital-assets" />
- </properties>
- </persister>
- </lock-manager>
- </workspace>
- </workspaces>
- </repository>
- </repositories>
-</repository-service>
Deleted: jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-ispn-config.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-ispn-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-ispn-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1,214 +0,0 @@
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
-<repository-service default-repository="repository">
- <repositories>
- <repository name="repository" system-workspace="production" default-workspace="production">
- <security-domain>exo-domain</security-domain>
- <access-control>optional</access-control>
- <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
- <workspaces>
- <workspace name="production">
- <!-- for system storage -->
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/production" />
- </properties>
- <value-storages>
- <value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/production" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
- <properties>
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/production" />
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
- <property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
- <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
- <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
- <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
- <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
- </properties>
- </lock-manager>
- </workspace>
-
- <workspace name="backup">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/backup" />
- </properties>
- <value-storages>
- <value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/backup" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
- <properties>
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/backup" />
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
- <property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
- <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
- <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
- <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
- <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
- </properties>
- </lock-manager>
- </workspace>
-
- <workspace name="digital-assets">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/digital-assets" />
- </properties>
- <value-storages>
- <value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/digital-assets" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:folder" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
- <properties>
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/digital-assets" />
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.infinispan.ISPNCacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
- <property name="infinispan-cluster-name" value="JCR-cluster" />
- <property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="infinispan-cl-cache.jdbc.table.create" value="true" />
- <property name="infinispan-cl-cache.jdbc.table.drop" value="false" />
- <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
- <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
- <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
- <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
- </properties>
- </lock-manager>
- </workspace>
- </workspaces>
- </repository>
- </repositories>
-</repository-service>
Deleted: jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-jbc-config.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-jbc-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/exo-conf/exo-jcr-jbc-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1,235 +0,0 @@
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
-<repository-service default-repository="repository">
- <repositories>
- <repository name="repository" system-workspace="production" default-workspace="production">
- <security-domain>exo-domain</security-domain>
- <access-control>optional</access-control>
- <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
- <workspaces>
- <workspace name="production">
- <!-- for system storage -->
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/production" />
- </properties>
- <value-storages>
- <value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/production" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
- <properties>
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-data.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-data" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/production" />
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
- <property name="jbosscache-shareable" value="true" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-lock.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-locks" />
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
- <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
- <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
- <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
- <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
- <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </lock-manager>
- </workspace>
-
- <workspace name="backup">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/backup" />
- </properties>
- <value-storages>
- <value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/backup" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:unstructured" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
- <properties>
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-data.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-data" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/backup" />
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
- <property name="jbosscache-shareable" value="true" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-lock.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-locks" />
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
- <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
- <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
- <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
- <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
- <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </lock-manager>
- </workspace>
-
- <workspace name="digital-assets">
- <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
- <properties>
- <property name="source-name" value="jdbcjcr" />
- <property name="multi-db" value="false" />
- <property name="update-storage" value="false" />
- <property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../../temp/swap/digital-assets" />
- </properties>
- <value-storages>
- <value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
- <properties>
- <property name="path" value="../../temp/values/digital-assets" />
- </properties>
- <filters>
- <filter property-type="Binary" />
- </filters>
- </value-storage>
- </value-storages>
- </container>
- <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
- <properties>
- <property name="root-nodetype" value="nt:folder" />
- </properties>
- </initializer>
- <cache enabled="true"
- class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
- <properties>
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-data.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-data" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </cache>
- <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="index-dir" value="../../temp/jcrlucenedb/digital-assets" />
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
- <property name="jbosscache-shareable" value="true" />
- <property name="max-volatile-time" value="60" />
- </properties>
- </query-handler>
- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
- <properties>
- <property name="time-out" value="15m" />
- <property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-lock.xml" />
- <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="false" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-locks" />
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
- <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
- <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
- <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
- <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
- <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
- <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
- <property name="jbosscache-shareable" value="true" />
- </properties>
- </lock-manager>
- </workspace>
- </workspaces>
- </repository>
- </repositories>
-</repository-service>
Modified: jcr/trunk/applications/product-patches/as/jonas/exo-configuration.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/jonas/exo-configuration.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/jonas/exo-configuration.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-
- Copyright (C) 2009 eXo Platform SAS.
-
- This is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
-
- This software is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this software; if not, write to the Free
- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-
--->
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
@@ -43,7 +43,7 @@
<property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.stdout.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<property name="log4j.appender.file" value="org.apache.log4j.FileAppender" />
- <property name="log4j.appender.file.File" value="../../logs/jcr.log" />
+ <property name="log4j.appender.file.File" value="${exo.jcr.parent.dir:..}/logs/jcr.log" />
<property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.file.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<!-- property name="log4j.category.jcr.FileCleaner" value="DEBUG" / -->
@@ -58,17 +58,17 @@
<value-param>
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-config.xml</value>
</value-param>
<value-param profiles="ispn">
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-ispn-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-ispn-config.xml</value>
</value-param>
<value-param profiles="jbc">
<name>conf-path</name>
<description>JCR configuration file</description>
- <value>exo-conf/exo-jcr-jbc-config.xml</value>
+ <value>jar:/conf/portal/exo-jcr-jbc-config.xml</value>
</value-param>
</init-params>
</component>
@@ -182,7 +182,7 @@
<key>org.jboss.cache.transaction.TransactionManagerLookup</key>
<type>org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup</type>
</component>
-
+
<component profiles="ispn,jbc">
<key>org.exoplatform.services.transaction.TransactionService</key>
<type>org.exoplatform.services.transaction.jbosscache.JBossTransactionsService</type>
@@ -300,7 +300,7 @@
</value-param>
<value-param>
<name>cache-folder-name</name>
- <value>../../temp/ftp_cache</value>
+ <value>${exo.jcr.parent.dir:..}/temp/ftp_cache</value>
</value-param>
<!-- bytes per second -->
@@ -327,9 +327,9 @@
<type>org.exoplatform.services.organization.impl.mock.DummyOrganizationService</type>
</component>
- <component>
- <key>org.exoplatform.services.security.Authenticator</key>
- <type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
+ <component>
+ <key>org.exoplatform.services.security.Authenticator</key>
+ <type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
</component>
<component>
@@ -359,7 +359,7 @@
<name>ref-addresses</name>
<description>ref-addresses</description>
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:file:../../temp/data/exodb" />
+ <property name="url" value="jdbc:hsqldb:file:${exo.jcr.parent.dir:..}/temp/data/exodb" />
<property name="username" value="sa" />
<property name="password" value="" />
</properties-param>
Modified: jcr/trunk/applications/product-patches/as/tomcat/exo-configuration.xml
===================================================================
--- jcr/trunk/applications/product-patches/as/tomcat/exo-configuration.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/applications/product-patches/as/tomcat/exo-configuration.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -43,7 +43,7 @@
<property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.stdout.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<property name="log4j.appender.file" value="org.apache.log4j.FileAppender" />
- <property name="log4j.appender.file.File" value="../logs/jcr.log" />
+ <property name="log4j.appender.file.File" value="${exo.jcr.parent.dir:..}/logs/jcr.log" />
<property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout" />
<property name="log4j.appender.file.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n" />
<!-- property name="log4j.category.jcr.FileCleaner" value="DEBUG" / -->
@@ -300,7 +300,7 @@
</value-param>
<value-param>
<name>cache-folder-name</name>
- <value>../temp/ftp_cache</value>
+ <value>${exo.jcr.parent.dir:..}/temp/ftp_cache</value>
</value-param>
<!-- bytes per second -->
@@ -359,7 +359,7 @@
<name>ref-addresses</name>
<description>ref-addresses</description>
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
- <property name="url" value="jdbc:hsqldb:file:../temp/data/exodb" />
+ <property name="url" value="jdbc:hsqldb:file:${exo.jcr.parent.dir:..}/temp/data/exodb" />
<property name="username" value="sa" />
<property name="password" value="" />
</properties-param>
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -33,12 +33,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/production" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/production" />
</properties>
<value-storages>
<value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/production" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/production" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -59,14 +59,14 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/production" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/production" />
</properties>
</query-handler>
<lock-manager>
<time-out>15m</time-out>
<persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
<properties>
- <property name="path" value="../temp/lock/production" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/lock/production" />
</properties>
</persister>
</lock-manager>
@@ -79,12 +79,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/backup" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/backup" />
</properties>
<value-storages>
<value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/backup" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/backup" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -105,14 +105,14 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/backup" />
</properties>
</query-handler>
<lock-manager>
<time-out>15m</time-out>
<persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
<properties>
- <property name="path" value="../temp/lock/backup" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/lock/backup" />
</properties>
</persister>
</lock-manager>
@@ -125,12 +125,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/digital-assets" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/digital-assets" />
</properties>
<value-storages>
<value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/digital-assets" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/digital-assets" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -151,14 +151,14 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/digital-assets" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/digital-assets" />
</properties>
</query-handler>
<lock-manager>
<time-out>15m</time-out>
<persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
<properties>
- <property name="path" value="../temp/lock/digital-assets" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/lock/digital-assets" />
</properties>
</persister>
</lock-manager>
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-ispn-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-ispn-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-ispn-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -33,12 +33,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/production" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/production" />
</properties>
<value-storages>
<value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/production" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/production" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -55,16 +55,16 @@
class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
<properties>
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
</properties>
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/production" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/production" />
<property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="max-volatile-time" value="60" />
</properties>
@@ -73,7 +73,7 @@
<properties>
<property name="time-out" value="15m" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -94,12 +94,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/backup" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/backup" />
</properties>
<value-storages>
<value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/backup" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/backup" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -116,16 +116,16 @@
class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
<properties>
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
</properties>
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/backup" />
<property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="max-volatile-time" value="60" />
</properties>
@@ -134,7 +134,7 @@
<properties>
<property name="time-out" value="15m" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
@@ -155,12 +155,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/digital-assets" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/digital-assets" />
</properties>
<value-storages>
<value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/digital-assets" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/digital-assets" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -177,16 +177,16 @@
class="org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.ISPNCacheWorkspaceStorageCache">
<properties>
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-data.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
</properties>
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/digital-assets" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/digital-assets" />
<property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-indexer.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="max-volatile-time" value="60" />
</properties>
@@ -195,7 +195,7 @@
<properties>
<property name="time-out" value="15m" />
<property name="infinispan-configuration" value="jar:/conf/portal/cluster/infinispan-lock.xml" />
- <property name="jgroups-configuration" value="conf/portal/cluster/udp-mux.xml" />
+ <property name="jgroups-configuration" value="jar:/conf/portal/cluster/udp-mux.xml" />
<property name="infinispan-cluster-name" value="JCR-cluster" />
<property name="infinispan-cl-cache.jdbc.table.name" value="jcrlocks" />
<property name="infinispan-cl-cache.jdbc.table.create" value="true" />
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-jbc-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-jbc-config.xml 2011-03-25 16:21:35 UTC (rev 4177)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/exo-jcr-jbc-config.xml 2011-03-25 16:58:38 UTC (rev 4178)
@@ -33,12 +33,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/production" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/production" />
</properties>
<value-storages>
<value-storage id="production" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/production" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/production" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -63,7 +63,7 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/production" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/production" />
<property name="changesfilter-class"
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
<property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
@@ -101,12 +101,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/backup" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/backup" />
</properties>
<value-storages>
<value-storage id="backup" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/backup" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/backup" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -131,7 +131,7 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/backup" />
<property name="changesfilter-class"
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
<property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
@@ -169,12 +169,12 @@
<property name="multi-db" value="false" />
<property name="update-storage" value="false" />
<property name="max-buffer-size" value="200k" />
- <property name="swap-directory" value="../temp/swap/digital-assets" />
+ <property name="swap-directory" value="${exo.jcr.parent.dir:..}/temp/swap/digital-assets" />
</properties>
<value-storages>
<value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
- <property name="path" value="../temp/values/digital-assets" />
+ <property name="path" value="${exo.jcr.parent.dir:..}/temp/values/digital-assets" />
</properties>
<filters>
<filter property-type="Binary" />
@@ -199,7 +199,7 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="index-dir" value="../temp/jcrlucenedb/digital-assets" />
+ <property name="index-dir" value="${exo.jcr.parent.dir:..}/temp/jcrlucenedb/digital-assets" />
<property name="changesfilter-class"
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
<property name="jbosscache-configuration" value="jar:/conf/portal/cluster/jbosscache-indexer.xml" />
15 years, 1 month