blob: fd6fcb2363be16939094d3b954d78bc880b33178 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.search;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.epf.common.utils.FileUtil;
import org.eclipse.epf.common.utils.WarUtil;
import org.eclipse.epf.search.configuration.ConfigurationHitEntry;
import org.eclipse.epf.search.configuration.ConfigurationSearchQuery;
import org.eclipse.epf.search.configuration.internal.ConfigurationSearchService;
/**
* The Search Service implementation.
*
* @author Kelvin Low
* @since 1.0
*/
public class SearchService implements ISearchService {
// The shared instance.
private static SearchService instance = null;
/**
* Returns the shared instance.
*/
public static SearchService getInstance() {
if (instance == null) {
synchronized (SearchService.class) {
if (instance == null) {
instance = new SearchService();
}
}
}
return instance;
}
/**
* Private constructor to prevent this class from being instantiated.
*/
private SearchService() {
}
/**
* Searches a published Configuration.
*
* @param path
* the absolute path to the published configuration
* @param searchQuery
* the configuration search query
* @return an array of <code>ConfigurationHitEntry</code> objects
* @throws SearchServiceException
* if an error occurs while executing the operation
*/
public ConfigurationHitEntry[] searchConfiguration(String path,
ConfigurationSearchQuery searchQuery) throws SearchServiceException {
ConfigurationSearchService service = new ConfigurationSearchService(
path);
service.index();
return service.search(searchQuery);
}
public boolean createIndex(String publishDir) throws SearchServiceException {
IndexBuilder service = new IndexBuilder(publishDir);
return service.createIndex(true);
}
public boolean createIndex(String publishDir, boolean jarIt)
throws SearchServiceException {
IndexBuilder service = new IndexBuilder(publishDir);
return service.createIndex(jarIt);
}
public void createWAR(String publishDir, String webAppName) {
try {
File warFile = null;
if (webAppName.endsWith(".war")) { //$NON-NLS-1$
warFile = new File(publishDir, webAppName);
} else {
warFile = new File(publishDir, webAppName + ".war"); //$NON-NLS-1$
}
WarUtil.buildWarFile(warFile.getAbsolutePath(), publishDir, null);
File logsDir = new File(publishDir, "logs"); //$NON-NLS-1$
File cssDir = new File(publishDir, "css"); //$NON-NLS-1$
File scriptsDir = new File(publishDir, "scripts"); //$NON-NLS-1$
File imagesDir = new File(publishDir, "images"); //$NON-NLS-1$
List<File> filesNotToDelete = new ArrayList<File>();
filesNotToDelete.add(logsDir);
filesNotToDelete.add(cssDir);
filesNotToDelete.add(scriptsDir);
filesNotToDelete.add(imagesDir);
filesNotToDelete.add(warFile);
FileUtil.deleteAllFiles(publishDir, filesNotToDelete);
filesNotToDelete.clear();
} catch (Exception e) {
e.printStackTrace();
}
}
}