Jon Cox f8fd96b1e1 Point checkin. Rough cut at href merge op (don't use it yet though).
Also included abort() method on progress object.

 What's left:
   o put incremental update in looping thread(s) to let system bootstrap from nothing
   o deal with store/webapp going away
   o deal with virt server down
   o Switch to using virtualized snapshot instead of HEAD in staging
   o testing... and lots of it



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6063 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-06-22 05:32:58 +00:00

119 lines
4.6 KiB
Java

/*-----------------------------------------------------------------------------
* 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 HrefDifference.java
*----------------------------------------------------------------------------*/
package org.alfresco.linkvalidation;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HrefDifference
{
/**
* The href_status_map_ is a map of URLs the tuple of their
* return status & list of dependencies.
*/
protected HrefStatusMap href_status_map_; // status of links/maybe dep info
/**
* The href_manifest_ contains a List<HrefManifestEntry> objects.
* Each HrefManifestEntry contains a file name,
* and possibly a list of hrefs within that file.
*/
protected HrefManifest href_manifest_;
// Lazily computed values
protected HrefManifest broken_in_newmod_; // errors in new files
protected HrefManifest broken_by_deletion_; // err via new deletions
// Only computed when merging diffs
protected List<String> repaired_by_delmod_; // fix by removing links
protected List<String> repaired_by_new_; // file satisfied broken dep
// Temp values used in lazy computation
protected HashMap<String, List<String>> broken_manifest_map_;
protected HashMap<String,String> deleted_file_md5_;
String href_attr_; // href attribute lookup prefix
String src_store_;
String dst_store_;
String src_webapp_url_base_;
String dst_webapp_url_base_;
int connect_timeout_;
int read_timeout_;
int nthreads_;
HrefDifference(String href_attr,
String src_store,
String dst_store,
String src_webapp_url_base,
String dst_webapp_url_base,
int connect_timeout,
int read_timeout,
int nthreads)
{
href_attr_ = href_attr;
src_store_ = src_store;
dst_store_ = dst_store;
src_webapp_url_base_ = src_webapp_url_base;
dst_webapp_url_base_ = dst_webapp_url_base;
connect_timeout_ = connect_timeout;
read_timeout_ = read_timeout_;
nthreads_ = nthreads;
href_manifest_ = new HrefManifest();
href_status_map_ = new HrefStatusMap();
broken_manifest_map_ = new HashMap<String, List<String>>();
deleted_file_md5_ = new HashMap<String,String>();
}
public HrefManifest getHrefManifest() { return href_manifest_; }
public HrefStatusMap getHrefStatusMap() { return href_status_map_; }
String getHrefAttr() { return href_attr_;}
String getSrcStore() { return src_store_;}
String getDstStore() { return dst_store_;}
String getSrcWebappUrlBase() { return src_webapp_url_base_; }
String getDstWebappUrlBase() { return dst_webapp_url_base_; }
int getConnectTimeout() { return connect_timeout_; }
int getReadTimeout() { return read_timeout_; }
int getNthreads() { return nthreads_; }
Map<String,String> getDeletedFileMd5() { return deleted_file_md5_; }
Map<String, List<String>> getBrokenManifestMap()
{
return broken_manifest_map_;
}
}