Author: gttersen
Date: 2007-04-17 17:29:50 +0200 (Tue, 17 Apr 2007)
New Revision: 4826
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/ResultHandler.java
trunk/site-spi/src/main/java/no/schibstedsok/searchportal/site/config/SiteConfiguration.java
Log:
Needed SiteContext to be available in ResultHandler. Did changes to
AbstractSearchCommand, ResultHandler and SiteConfiguration to solve this.
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
2007-04-17 12:47:55 UTC (rev 4825)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
2007-04-17 15:29:50 UTC (rev 4826)
@@ -483,6 +483,7 @@
context.getRunningQuery().addSource(modifier);
}
},
+
context.getDataModel().getSite().getSiteConfiguration().getSiteContext(),
context
);
resultHandler.handleResult(resultHandlerContext, datamodel);
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/ResultHandler.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/ResultHandler.java
2007-04-17 12:47:55 UTC (rev 4825)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/ResultHandler.java
2007-04-17 15:29:50 UTC (rev 4826)
@@ -2,12 +2,10 @@
package no.schibstedsok.searchportal.result.handler;
import no.schibstedsok.searchportal.datamodel.DataModel;
-import no.schibstedsok.searchportal.site.config.ResourceContext;
-import no.schibstedsok.searchportal.query.QueryContext;
-import no.schibstedsok.searchportal.query.QueryStringContext;
import no.schibstedsok.searchportal.result.Modifier;
import no.schibstedsok.searchportal.result.SearchResult;
import no.schibstedsok.searchportal.site.SiteContext;
+import no.schibstedsok.searchportal.site.config.ResourceContext;
import no.schibstedsok.searchportal.view.config.SearchTab;
/*
@@ -16,16 +14,20 @@
*
*/
public interface ResultHandler {
- /** Contextual demands from a ResultHandler.
+ /**
+ * Contextual demands from a ResultHandler.
* Slightly unusual in that the context never becomes a member field but
is only used inside the
* handleResult method.
*/
- public interface Context extends ResourceContext {
-
+ public interface Context extends SiteContext, ResourceContext {
+
SearchResult getSearchResult();
+
SearchTab getSearchTab();
- /** Result handling action **/
+ /**
+ * Result handling action *
+ */
void addSource(Modifier modifier);
}
Modified:
trunk/site-spi/src/main/java/no/schibstedsok/searchportal/site/config/SiteConfiguration.java
===================================================================
---
trunk/site-spi/src/main/java/no/schibstedsok/searchportal/site/config/SiteConfiguration.java
2007-04-17 12:47:55 UTC (rev 4825)
+++
trunk/site-spi/src/main/java/no/schibstedsok/searchportal/site/config/SiteConfiguration.java
2007-04-17 15:29:50 UTC (rev 4826)
@@ -1,37 +1,47 @@
// Copyright (2006) Schibsted Søk AS
package no.schibstedsok.searchportal.site.config;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import no.schibstedsok.commons.ioc.BaseContext;
import no.schibstedsok.searchportal.site.Site;
import no.schibstedsok.searchportal.site.SiteContext;
import no.schibstedsok.searchportal.site.SiteKeyedFactory;
import org.apache.log4j.Logger;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
/**
* SiteConfiguration properties.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
* @version $Id$
*/
-public final class SiteConfiguration implements SiteKeyedFactory{
+public final class SiteConfiguration implements SiteKeyedFactory {
public static final String NAME_KEY = "SiteConfiguration";
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
public static final String SITE_LOCALE_DEFAULT = "site.locale.default";
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
public static final String PUBLISH_SYSTEM_URL =
"publishing.system.baseURL";
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
public static final String PUBLISH_SYSTEM_HOST =
"publishing.system.host-header";
private static final String SITE_LOCALE_SUPPORTED =
"site.locale.supported";
- /** Property key to find out if this Site is a sitesearch**/
+ /**
+ * Property key to find out if this Site is a sitesearch*
+ */
public static final String IS_SITESEARCH_KEY = "site.issitesearch";
+
public interface Context extends BaseContext, PropertiesContext,
SiteContext {
}
@@ -39,14 +49,14 @@
private final Context context;
- private static final Map<Site, SiteConfiguration> INSTANCES = new
HashMap<Site,SiteConfiguration>();
+ private static final Map<Site, SiteConfiguration> INSTANCES = new
HashMap<Site, SiteConfiguration>();
private static final ReentrantReadWriteLock INSTANCES_LOCK = new
ReentrantReadWriteLock();
private static final Logger LOG =
Logger.getLogger(SiteConfiguration.class);
private SiteConfiguration(final Context cxt) {
- try{
+ try {
INSTANCES_LOCK.writeLock().lock();
LOG.trace("SiteConfiguration(cxt)");
context = cxt;
@@ -54,18 +64,26 @@
context.newPropertiesLoader(cxt, Site.CONFIGURATION_FILE,
properties).abut();
INSTANCES.put(context.getSite(), this);
- }finally{
+ } finally {
INSTANCES_LOCK.writeLock().unlock();
}
}
- /** TODO comment me. **/
+ public SiteContext getSiteContext() {
+ return context;
+ }
+
+ /**
+ * TODO comment me. *
+ */
public Properties getProperties() {
return properties;
}
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
public String getProperty(final String key) {
assert null != key : "Expecting a value for a null key!?";
@@ -74,9 +92,10 @@
return result;
}
- /** Find the correct instance handling this Site.
+ /**
+ * Find the correct instance handling this Site.
* We need to use a Context instead of the Site directly so we can handle
different styles of loading resources.
- **/
+ */
public static SiteConfiguration valueOf(final Context cxt) {
final Site site = cxt.getSite();
@@ -84,10 +103,10 @@
SiteConfiguration instance = null;
- try{
+ try {
INSTANCES_LOCK.readLock().lock();
instance = INSTANCES.get(site);
- }finally{
+ } finally {
INSTANCES_LOCK.readLock().unlock();
}
@@ -108,6 +127,7 @@
public Site getSite() {
return site;
}
+
public PropertiesLoader newPropertiesLoader(
final SiteContext siteCxt,
final String resource,
@@ -119,29 +139,31 @@
return stc;
}
- /** TODO comment me. **/
- public boolean remove(final Site site){
+ /**
+ * TODO comment me. *
+ */
+ public boolean remove(final Site site) {
- try{
+ try {
INSTANCES_LOCK.writeLock().lock();
return null != INSTANCES.remove(site);
- }finally{
+ } finally {
INSTANCES_LOCK.writeLock().unlock();
}
}
- public boolean isSiteLocaleSupported(final Locale locale){
+ public boolean isSiteLocaleSupported(final Locale locale) {
- if( Site.DEFAULT.getName().equals(context.getSite().getName())){
+ if (Site.DEFAULT.getName().equals(context.getSite().getName())) {
// the DEFAULT site supports all Locales !
return true;
}
-
+
final String supportedLocales = getProperty(SITE_LOCALE_SUPPORTED);
- if( null != supportedLocales ){
+ if (null != supportedLocales) {
final String[] locales = supportedLocales.split(",");
- for(String l : locales){
- if(locale.toString().equals(l)){
+ for (String l : locales) {
+ if (locale.toString().equals(l)) {
return true;
}
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits