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:
@@ -80,7 +80,6 @@
|
||||
</bean>
|
||||
|
||||
<!-- Bootstrap Files -->
|
||||
|
||||
<bean id="systemInfoBootstrap" parent="systemInfoImporter">
|
||||
</bean>
|
||||
|
||||
@@ -286,6 +285,12 @@
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- LinkValidationService -->
|
||||
<bean id="linkValidationServiceBootstrap"
|
||||
class="org.alfresco.linkvalidation.LinkValidationServiceBootstrap">
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- This component checks the interconnection between the metadata, indexes and content -->
|
||||
<bean id="configurationChecker" class="org.alfresco.repo.admin.ConfigurationChecker">
|
||||
<property name="strict">
|
||||
@@ -318,6 +323,7 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- This component ensures that patches get applied on startup -->
|
||||
|
||||
<bean id="patchExecuter" class="org.alfresco.repo.admin.patch.PatchExecuter">
|
||||
@@ -329,6 +335,7 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- Start module components -->
|
||||
|
||||
<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.util.NameMatcher;
|
||||
import java.net.SocketException;
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
public interface LinkValidationService
|
||||
{
|
||||
public void onBootstrap();
|
||||
public void onShutdown();
|
||||
|
||||
/**
|
||||
* Updates href status and href file dependencies for path.
|
||||
*
|
||||
@@ -61,7 +66,7 @@ public interface LinkValidationService
|
||||
* @param nthreads
|
||||
* Number of threads to use when fetching URLs (e.g.: 5)
|
||||
*
|
||||
* @param status
|
||||
* @param progress
|
||||
* While updateHrefInfo() is a synchronous function,
|
||||
* 'status' may be polled in a separate thread to
|
||||
* observe its progress.
|
||||
@@ -73,8 +78,10 @@ public interface LinkValidationService
|
||||
int nthreads,
|
||||
HrefValidationProgress progress
|
||||
)
|
||||
throws AVMNotFoundException;
|
||||
|
||||
throws AVMNotFoundException,
|
||||
SocketException,
|
||||
SSLException,
|
||||
LinkValidationAbortedException;
|
||||
|
||||
/**
|
||||
* Fetches information on broken hrefs within a store name or path
|
||||
@@ -186,13 +193,47 @@ public interface LinkValidationService
|
||||
int nthreads,
|
||||
HrefValidationProgress progress)
|
||||
throws AVMNotFoundException,
|
||||
SocketException,
|
||||
SSLException,
|
||||
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);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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