summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
diff options
context:
space:
mode:
authoradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
committeradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
commit7d544d6b11dc6494170c293e6897ed6d72612d06 (patch)
tree18f24b6d896fcf0c8cfa5a6a041df082dd7672f3 /branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
parentb4f758f88e8c97be870ba86080d7f0adb6dafb65 (diff)
applying patch tuscany_2552_phillipe_ramalho_07_04_2009.patch.txt from TUSCANY-2552
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@791203 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java59
1 files changed, 39 insertions, 20 deletions
diff --git a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
index 815f0a20c7..ade97aaaeb 100644
--- a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
+++ b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
@@ -1,44 +1,63 @@
package org.apache.tuscany.sca.domain.search.impl;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+
import org.apache.lucene.document.Field;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.domain.search.DocumentMap;
import org.apache.tuscany.sca.domain.search.DocumentProcessor;
-import org.apache.tuscany.sca.domain.search.DocumentProcessorsMap;
public class ArtifactDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
- DocumentMap documents, Object object, Document document, String parent) {
+ public Document process(DocumentProcessor parentProcessor,
+ DocumentMap documents, Object object, Document document,
+ String parent) {
if (object instanceof Artifact) {
Artifact artifact = (Artifact) object;
String uri = artifact.getURI();
-
+
if (uri != null && uri.length() == 0) {
uri = null;
}
-
+
if (uri != null) {
-
- parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.ARTIFACT_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
-
+
+ parent += DomainPathAnalyzer.PATH_SEPARATOR
+ + SearchFields.ARTIFACT_FIELD
+ + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
+
if (document == null) {
document = documents.get(uri);
}
-
+
document.add(new Field(SearchFields.ARTIFACT_FIELD, uri,
Field.Store.YES, Field.Index.ANALYZED));
-
+
}
-
+
if (document != null) {
+
+ String location = artifact.getLocation();
- document.add(new Field(SearchFields.LOCATION_FIELD, artifact.getLocation(),
+ document.add(new Field(SearchFields.LOCATION_FIELD, location,
Field.Store.YES, Field.Index.ANALYZED));
-
+
+ try {
+ Document fileDoc = parentProcessor.process(parentProcessor,
+ documents, new SystemFileContent(new File(new URL(location).getFile())), document, parent);
+
+ fileDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
+ Field.Store.YES, Field.Index.ANALYZED));
+
+ } catch (MalformedURLException e) {
+ // ignore file
+ }
+
}
-
+
return document == null ? FAKE_DOCUMENT : document;
}
@@ -48,21 +67,21 @@ public class ArtifactDocumentProcessor implements DocumentProcessor {
}
public Object getDocumentKey(Object obj) {
-
+
if (obj instanceof Artifact) {
Artifact artifact = (Artifact) obj;
String uri = artifact.getURI();
-
+
if (uri != null && uri.length() == 0) {
return null;
}
-
+
return uri;
-
+
}
-
+
throw new IllegalArgumentException();
-
+
}
}