A wrapper around AVMService which knows aboout locking. It works
by auto-locking on write operations or throwing an AVMLockingException
if the requested target is already locked to another user or to a
different store in a web project.
It is wired up as avmLockingAwareService, AVMLockingAwareService, and
indexingAVMLockingAwareService. It isn't hooked into anything
else yet.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6000 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Augmented AVMRemote to expose lookup that can fetch deleted nodes.
Minor fixup to excluder regex in avm-services-context.xml.
Added excluder to LinkValidationServiceImpl.
Prep to walk difference using SyncService (getting ready for incremental update of link validation tables).
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5898 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- refactoring to centralize regenerate code
- adding onchange event to UISelectList to trigger reload of page
- reorganizing some webproject code for better reuse
- fix for submit from create web content (a webproject property was added to submitdialog but not createwebcontent)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5889 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- A patch will assign initial version values to the entities
- Deprecated TransactionUtil in favour of the RetryingTransactionHelper
- Renamed RetryingTransactionHelper.Callback to RetryingTransactionHelper.RetryingTransactionCallback
The name Callback clashes with many other classes in the classpath
- Moved loads of components to be included in the retry behaviour
Duplicate name checks
- This is done using a query, but the entity update is not written to the database early
- Concurrent adds of the same-named child node will only fail at the end of the transaction
- TODO: Detect the duplicate violation during transaction retrying
Workaround for ADMLuceneTest
- Disable session size resource management during tests
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5823 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Fixed bug when handling expired items submitted by users removed from web project
- Re-applied config for comments in manage task dialogs
- Re-applied config for expired items actions
- Removed fix width for comment column in workflow history
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5811 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- I18N title for change request workflow
- change request workflow title now includes the web project name the content came from
- Added admin user name and workflow name as configurable properties for quartz job
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5683 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- The source store is implicitly snapshotted before deployment begins.
- The destination (remote) store is implicitly snapshotted before deployment begins
and again when the deployment is finished.
- This means that comparison of GUIDs on directories can be used to short circuit
the tree comparison.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5636 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Deploying to a filesystem implicitly snapshots the source store.
This allows shortcutting the tree comparison for directories, because
guids on directories act as a deep modification indicator if deployments
are always from snapshots. Doh!
- I'll do this for alfresco -> alfresco deployment too.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5635 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
actually capture the repository context at snapshot creation time.
Gave ListEntry and MapEntry proper equals() and hashCode methods and backed out
hibernate-cfg.properties changes. Doh!
Added cache configuration for AttributeService entities.
Did some warning removal in a few places.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5576 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V2.0@5141 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V2.0@51352 .
- FLOSS
- Some files will need a follow-up
-root/projects/repository/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java (not yet on HEAD: 5094)
-root/projects/repository/source/java/org/alfresco/filesys/server/state/FileStateLockManager.java (not yet on HEAD: 5093)
-onContentUpdateRecord (not on HEAD)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5167 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
within the webapp. Currently, we don't support either updating
a single-webapp, or removing a single-webapp because the GUI
cannot invite someone to only one webapp within a project.
Therefore, the JMX calls are "updateAllVirtualWebapps"
and "removeAllVirtualWebapps", rather than implying we're
more fine-grained that we actually are.
The case of removal would be particularly misleading
because if you thought you could just get rid of single
webapp, you'd be sadly mistaken.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5072 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Issuers were using Spring init to load data. The Hibernate database auto-update was switch on and this bypassed the SchemaBootstrap.
- Added an AvmBootstrap bean for initializing AVM components that require DB interaction
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5042 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Now the virt server can react properly when a file in WEB-INF
(such as a jar or web.xml file) is submitted to staging.
Details
-------
More testing is needed, but the basic stuff looks ok.
Here's a list of the events within the webapp that
the virt server is now able to receive & handle properly:
o Invite user to web project
o Create web project
o Delete sandbox
o Delete web project
o Submission of files to WEB-INF
The virt server does not yet get:
o Revert events
o Out-of-band changes from CIFS (and probably never will).
The plan to deal with changes made to critical files in WEB-INF
is to have an exlicit control available within the webapp.
It does not yet handle "approved with changes" very gracefully.
That can probably be fixed over the next few days.
Gory details
-----------
projects/core/source/java/org/alfresco/util/VirtServerUtils.java
Moved pattern that detects whether virt server needs
updating in from AVMConstants, due to build dependencies;
now this function is needed by workflow, which is in the
repository package.
projects/repository/config/alfresco/avm-services-context.xml
Added AVMSubmitTransactionListener bean to allow virt
server notification to hapen immediately after the
submit transaction has been committed sucessfully.
projects/repository/source/java/org/alfresco/repo/avm/wf/AVMSubmitPackageHandler.java
Added transaction listner that does the virt server update,
and added the list of staging diffs to AlfrescoTransactionSupport
as a bound resource.
projects/repository/source/java/org/alfresco/repo/avm/wf/AVMSubmitTransactionListener.java
Does the actual notification of the virt server.
The logic in this class still needs some work to handle
"approved with changes" gracefully, but it does do
the right thing when it comes to recursively reloading
staging when a jar or web.xml file is modified.
Light testing so far, but looks ok. Consider this
a point checkin only. A singleton of this class is
instantiated via the Spring config avm-services-context.xml,
and used by AVMSubmitPackageHandler.
projects/web-client/source/java/org/alfresco/web/bean/wcm/AVMConstants.java
Removed the utility function that tests whether or not
updating a file would require the virt server to be notified.
This class would benifit from a major cleanup when time permits.
projects/web-client/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java
Using the function that was moved/renamed from AVMConstants
to VirtServerUtils that tests if a given file update requires
a virt server notification message.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4990 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261