mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Point checkin for link validation.
Everything but that code that will bring virtualized staging archives up & apply diffs to href validity info. Handles abort(), filters junk, graceful start/stop, etc. Not usable yet, but soon (assuming no gaping bugs). git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6079 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -25,62 +25,61 @@
|
|||||||
|
|
||||||
<beans>
|
<beans>
|
||||||
|
|
||||||
<!-- ensure that the schema is bootstrapped -->
|
<!-- ensure that the schema is bootstrapped -->
|
||||||
<bean id="schemaBootstrap" class="org.alfresco.repo.domain.schema.SchemaBootstrap" >
|
<bean id="schemaBootstrap" class="org.alfresco.repo.domain.schema.SchemaBootstrap" >
|
||||||
<property name="localSessionFactory">
|
<property name="localSessionFactory">
|
||||||
<ref bean="&sessionFactory"></ref> <!-- inject the actual factory, not a session -->
|
<ref bean="&sessionFactory"></ref> <!-- inject the actual factory, not a session -->
|
||||||
</property>
|
</property>
|
||||||
<property name="updateSchema">
|
<property name="updateSchema">
|
||||||
<value>${db.schema.update}</value>
|
<value>${db.schema.update}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="postCreateScriptUrls">
|
<property name="postCreateScriptUrls">
|
||||||
<list>
|
<list>
|
||||||
<value>classpath:alfresco/dbscripts/create/2.0/${db.script.dialect}/AlfrescoPostCreate-2.0-FKIndexes.sql</value>
|
<value>classpath:alfresco/dbscripts/create/2.0/${db.script.dialect}/AlfrescoPostCreate-2.0-FKIndexes.sql</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<property name="validateUpdateScriptPatches">
|
<property name="validateUpdateScriptPatches">
|
||||||
<list>
|
<list>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<property name="preUpdateScriptPatches">
|
<property name="preUpdateScriptPatches">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="patch.schemaUpdateScript-V1.4-1" />
|
<ref bean="patch.schemaUpdateScript-V1.4-1" />
|
||||||
<ref bean="patch.schemaUpdateScript-V1.4-2" />
|
<ref bean="patch.schemaUpdateScript-V1.4-2" />
|
||||||
<ref bean="patch.db-V1.4-PostgresFKIndexes" />
|
<ref bean="patch.db-V1.4-PostgresFKIndexes" />
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<property name="postUpdateScriptPatches">
|
<property name="postUpdateScriptPatches">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="patch.db-V2.0-ExplicitIndexes" />
|
<ref bean="patch.db-V2.0-ExplicitIndexes" />
|
||||||
<ref bean="patch.db-V2.0-AVMFKIndexes" />
|
<ref bean="patch.db-V2.0-AVMFKIndexes" />
|
||||||
<ref bean="patch.db-V2.1-JBPMData" />
|
<ref bean="patch.db-V2.1-JBPMData" />
|
||||||
<ref bean="patch.db-V2.1-VersionColumns" />
|
<ref bean="patch.db-V2.1-VersionColumns" />
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- Bootstrap the AVM -->
|
<!-- Bootstrap the AVM -->
|
||||||
<bean id="avmBootstrap" class="org.alfresco.repo.avm.AvmBootstrap" >
|
<bean id="avmBootstrap" class="org.alfresco.repo.avm.AvmBootstrap" >
|
||||||
<property name="issuers">
|
<property name="issuers">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="nodeIssuer" />
|
<ref bean="nodeIssuer" />
|
||||||
<ref bean="layerIssuer" />
|
<ref bean="layerIssuer" />
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<property name="avmLockingAwareService">
|
<property name="avmLockingAwareService">
|
||||||
<ref bean="avmLockingAwareService"/>
|
<ref bean="avmLockingAwareService"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- Bootstrap AVM Locking Service. -->
|
<!-- Bootstrap AVM Locking Service. -->
|
||||||
<bean id="avmLockingBootstrap" class="org.alfresco.repo.avm.locking.AVMLockingBootstrap">
|
<bean id="avmLockingBootstrap" class="org.alfresco.repo.avm.locking.AVMLockingBootstrap">
|
||||||
<property name="avmLockingService">
|
<property name="avmLockingService">
|
||||||
<ref bean="avmLockingService"/>
|
<ref bean="avmLockingService"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- Bootstrap Files -->
|
|
||||||
|
|
||||||
|
<!-- Bootstrap Files -->
|
||||||
<bean id="systemInfoBootstrap" parent="systemInfoImporter">
|
<bean id="systemInfoBootstrap" parent="systemInfoImporter">
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
@@ -279,13 +278,19 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="avmIndexRecoveryBootstrap" class="org.alfresco.repo.node.index.IndexRecoveryBootstrapBean" >
|
<bean id="avmIndexRecoveryBootstrap" class="org.alfresco.repo.node.index.IndexRecoveryBootstrapBean" >
|
||||||
<property name="indexRecoveryComponent">
|
<property name="indexRecoveryComponent">
|
||||||
<ref bean="avmIndexRecoveryComponent"/>
|
<ref bean="avmIndexRecoveryComponent"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- LinkValidationService -->
|
||||||
|
<bean id="linkValidationServiceBootstrap"
|
||||||
|
class="org.alfresco.linkvalidation.LinkValidationServiceBootstrap">
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
<!-- This component checks the interconnection between the metadata, indexes and content -->
|
<!-- This component checks the interconnection between the metadata, indexes and content -->
|
||||||
<bean id="configurationChecker" class="org.alfresco.repo.admin.ConfigurationChecker">
|
<bean id="configurationChecker" class="org.alfresco.repo.admin.ConfigurationChecker">
|
||||||
<property name="strict">
|
<property name="strict">
|
||||||
@@ -317,7 +322,8 @@
|
|||||||
<ref bean="contentService"/>
|
<ref bean="contentService"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
<!-- This component ensures that patches get applied on startup -->
|
<!-- This component ensures that patches get applied on startup -->
|
||||||
|
|
||||||
<bean id="patchExecuter" class="org.alfresco.repo.admin.patch.PatchExecuter">
|
<bean id="patchExecuter" class="org.alfresco.repo.admin.patch.PatchExecuter">
|
||||||
@@ -329,6 +335,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
<!-- Start module components -->
|
<!-- Start module components -->
|
||||||
|
|
||||||
<bean id="moduleStarter" class="org.alfresco.repo.module.ModuleStarter">
|
<bean id="moduleStarter" class="org.alfresco.repo.module.ModuleStarter">
|
||||||
|
@@ -31,9 +31,14 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.alfresco.service.cmr.avm.AVMNotFoundException;
|
import org.alfresco.service.cmr.avm.AVMNotFoundException;
|
||||||
import org.alfresco.util.NameMatcher;
|
import org.alfresco.util.NameMatcher;
|
||||||
|
import java.net.SocketException;
|
||||||
|
import javax.net.ssl.SSLException;
|
||||||
|
|
||||||
public interface LinkValidationService
|
public interface LinkValidationService
|
||||||
{
|
{
|
||||||
|
public void onBootstrap();
|
||||||
|
public void onShutdown();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates href status and href file dependencies for path.
|
* Updates href status and href file dependencies for path.
|
||||||
*
|
*
|
||||||
@@ -61,7 +66,7 @@ public interface LinkValidationService
|
|||||||
* @param nthreads
|
* @param nthreads
|
||||||
* Number of threads to use when fetching URLs (e.g.: 5)
|
* Number of threads to use when fetching URLs (e.g.: 5)
|
||||||
*
|
*
|
||||||
* @param status
|
* @param progress
|
||||||
* While updateHrefInfo() is a synchronous function,
|
* While updateHrefInfo() is a synchronous function,
|
||||||
* 'status' may be polled in a separate thread to
|
* 'status' may be polled in a separate thread to
|
||||||
* observe its progress.
|
* observe its progress.
|
||||||
@@ -73,8 +78,10 @@ public interface LinkValidationService
|
|||||||
int nthreads,
|
int nthreads,
|
||||||
HrefValidationProgress progress
|
HrefValidationProgress progress
|
||||||
)
|
)
|
||||||
throws AVMNotFoundException;
|
throws AVMNotFoundException,
|
||||||
|
SocketException,
|
||||||
|
SSLException,
|
||||||
|
LinkValidationAbortedException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches information on broken hrefs within a store name or path
|
* Fetches information on broken hrefs within a store name or path
|
||||||
@@ -186,13 +193,47 @@ public interface LinkValidationService
|
|||||||
int nthreads,
|
int nthreads,
|
||||||
HrefValidationProgress progress)
|
HrefValidationProgress progress)
|
||||||
throws AVMNotFoundException,
|
throws AVMNotFoundException,
|
||||||
|
SocketException,
|
||||||
|
SSLException,
|
||||||
LinkValidationAbortedException;
|
LinkValidationAbortedException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches a manifest of all hyperlinks broken by files
|
||||||
|
* deleted in a HrefDifference between two webapps.
|
||||||
|
*
|
||||||
|
* @param hdiff The difference between two webapps obtained by calling getHrefDifference().
|
||||||
|
*/
|
||||||
public HrefManifest getHrefManifestBrokenByDelete(HrefDifference hdiff);
|
public HrefManifest getHrefManifestBrokenByDelete(HrefDifference hdiff);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches a manifest of all hyperlinks broken in new or modified files in
|
||||||
|
* an HrefDifference.
|
||||||
|
*
|
||||||
|
* @param hdiff The difference between two webapps obtained by calling getHrefDifference().
|
||||||
|
*/
|
||||||
public HrefManifest getHrefManifestBrokenByNewOrMod(HrefDifference hdiff);
|
public HrefManifest getHrefManifestBrokenByNewOrMod(HrefDifference hdiff);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merges an HrefDifference into the master href info table.
|
* Merges an HrefDifference into the master href info table.
|
||||||
*/
|
*/
|
||||||
public void mergeHrefDiff( HrefDifference hdiff);
|
public void mergeHrefDiff( HrefDifference hdiff)
|
||||||
|
throws AVMNotFoundException,
|
||||||
|
SocketException,
|
||||||
|
SSLException,
|
||||||
|
LinkValidationAbortedException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void updateHrefInfo( String webappPath,
|
||||||
|
boolean incremental,
|
||||||
|
boolean validateExternal,
|
||||||
|
int connectTimeout,
|
||||||
|
int readTimeout,
|
||||||
|
int nthreads,
|
||||||
|
HrefValidationProgress progress)
|
||||||
|
throws AVMNotFoundException,
|
||||||
|
SocketException,
|
||||||
|
SSLException,
|
||||||
|
LinkValidationAbortedException;
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,64 @@
|
|||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Copyright 2007 Alfresco Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 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, write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special
|
||||||
|
* exception to the terms and conditions of version 2.0 of the GPL, you may
|
||||||
|
* redistribute this Program in connection with Free/Libre and Open Source
|
||||||
|
* Software ("FLOSS") applications as described in Alfresco's FLOSS exception.
|
||||||
|
* You should have received a copy of the text describing the FLOSS exception,
|
||||||
|
* and it is also available here: http://www.alfresco.com/legal/licensing
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Author Jon Cox <jcox@alfresco.com>
|
||||||
|
* File LinkValidationServiceBootstrap.java
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
package org.alfresco.linkvalidation;
|
||||||
|
|
||||||
|
import org.alfresco.util.AbstractLifecycleBean;
|
||||||
|
import org.springframework.context.ApplicationEvent;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.alfresco.service.cmr.avm.AVMNotFoundException;
|
||||||
|
import org.alfresco.repo.avm.util.RawServices;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bootstrap for LinkValidationService
|
||||||
|
*/
|
||||||
|
public class LinkValidationServiceBootstrap extends AbstractLifecycleBean
|
||||||
|
{
|
||||||
|
private LinkValidationService linkValidationService_;
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.alfresco.util.AbstractLifecycleBean#onBootstrap(org.springframework.context.ApplicationEvent)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onBootstrap(ApplicationEvent event)
|
||||||
|
{
|
||||||
|
ApplicationContext springContext = RawServices.Instance().getContext();
|
||||||
|
linkValidationService_ = (LinkValidationService)
|
||||||
|
springContext.getBean("LinkValidationService");
|
||||||
|
|
||||||
|
linkValidationService_.onBootstrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.alfresco.util.AbstractLifecycleBean#onShutdown(org.springframework.context.ApplicationEvent)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onShutdown(ApplicationEvent event)
|
||||||
|
{
|
||||||
|
linkValidationService_.onShutdown();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user