You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ad...@apache.org on 2009/07/05 09:04:58 UTC
svn commit: r791203 [1/2] - in /tuscany/branches/sca-java-1.x/modules:
domain-manager/
domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/
domain-manager/src/main/resources/ domain-search/
domain-search/src/main/java/org/apache/tus...
Author: adrianocrestani
Date: Sun Jul 5 07:04:56 2009
New Revision: 791203
URL: http://svn.apache.org/viewvc?rev=791203&view=rev
Log:
applying patch tuscany_2552_phillipe_ramalho_07_04_2009.patch.txt from TUSCANY-2552
Added:
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/Searcher.java
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/WorkspaceReader.java
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search-gadget.html
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search.html
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/Result.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResultProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DefaultFileDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFileDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFormatter.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchResultFactory.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchResultProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/FileContent.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/FileContentResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/FileContentResultProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/HighlightingUtil.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ParentField.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/PropertyResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ReferenceResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ResultFactoryList.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ResultImpl.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ResultProcessorList.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ServiceResult.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/SystemFileContent.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ZipDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ZipFileContent.java
Modified:
tuscany/branches/sca-java-1.x/modules/domain-manager/pom.xml
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/DomainManager.composite
tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/composite-gadget.html
tuscany/branches/sca-java-1.x/modules/domain-search/pom.xml
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessorsMap.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DomainSearch.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DirectoryDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzer.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchDocumentProcessorsMap.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchImpl.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/FileDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/PropertyDocumentProcessor.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/SearchFields.java
tuscany/branches/sca-java-1.x/modules/domain-search/src/test/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzerTestCase.java
tuscany/branches/sca-java-1.x/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/DomainManagerLauncher.java
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/pom.xml?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/pom.xml (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/pom.xml Sun Jul 5 07:04:56 2009
@@ -3,7 +3,7 @@
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
+ * regarding copyright ownership. The ASF license f s this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
@@ -131,6 +131,13 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-contribution-resource</artifactId>
+ <version>1.6-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-contribution-java</artifactId>
<version>1.6-SNAPSHOT</version>
<scope>runtime</scope>
@@ -143,11 +150,10 @@
<scope>runtime</scope>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-contribution-resource</artifactId>
+ <artifactId>tuscany-domain-search</artifactId>
<version>1.6-SNAPSHOT</version>
- <scope>runtime</scope>
</dependency>
<dependency>
@@ -177,6 +183,12 @@
<version>1.6-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java Sun Jul 5 07:04:56 2009
@@ -97,8 +97,8 @@
* @version $Rev$ $Date$
*/
@Scope("COMPOSITE")
-@Service(interfaces={ItemCollection.class, LocalItemCollection.class})
-public class ContributionCollectionImpl implements ItemCollection, LocalItemCollection {
+@Service(interfaces={ItemCollection.class, LocalItemCollection.class, WorkspaceReader.class})
+public class ContributionCollectionImpl implements ItemCollection, LocalItemCollection, WorkspaceReader {
private static final Logger logger = Logger.getLogger(ContributionCollectionImpl.class.getName());
@@ -486,7 +486,7 @@
*
* @return
*/
- private Workspace readWorkspace() {
+ Workspace readWorkspace() {
String rootDirectory = domainManagerConfiguration.getRootDirectory();
Workspace workspace;
@@ -652,5 +652,9 @@
}
return contributions;
}
+
+ public Workspace getWorkspace() {
+ return readContributions(readWorkspace());
+ }
}
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/DeployedCompositeCollectionImpl.java Sun Jul 5 07:04:56 2009
@@ -59,6 +59,7 @@
import org.apache.tuscany.sca.data.collection.ItemCollection;
import org.apache.tuscany.sca.data.collection.LocalItemCollection;
import org.apache.tuscany.sca.data.collection.NotFoundException;
+import org.apache.tuscany.sca.domain.search.DomainSearch;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.osoa.sca.ServiceRuntimeException;
@@ -115,7 +116,7 @@
*/
@Init
public void initialize() throws ParserConfigurationException {
-
+
// Create factories
ExtensionPointRegistry extensionPoints = domainManagerConfiguration.getExtensionPoints();
modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
@@ -133,7 +134,7 @@
public Entry<String, Item>[] getAll() {
logger.fine("getAll");
-
+
// Return all the composites in the domain composite
List<Entry<String, Item>> entries = new ArrayList<Entry<String, Item>>();
Composite compositeCollection = readCompositeCollection();
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/NodeProcessCollectionFacadeImpl.java Sun Jul 5 07:04:56 2009
@@ -39,6 +39,7 @@
import org.apache.tuscany.sca.data.collection.ItemCollection;
import org.apache.tuscany.sca.data.collection.LocalItemCollection;
import org.apache.tuscany.sca.data.collection.NotFoundException;
+import org.apache.tuscany.sca.domain.search.DomainSearch;
import org.osoa.sca.ServiceRuntimeException;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Reference;
Added: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/Searcher.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/Searcher.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/Searcher.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/Searcher.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,297 @@
+package org.apache.tuscany.sca.domain.manager.impl;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.tuscany.sca.data.collection.Entry;
+import org.apache.tuscany.sca.data.collection.Item;
+import org.apache.tuscany.sca.data.collection.ItemCollection;
+import org.apache.tuscany.sca.data.collection.LocalItemCollection;
+import org.apache.tuscany.sca.data.collection.NotFoundException;
+import org.apache.tuscany.sca.domain.search.DomainSearch;
+import org.apache.tuscany.sca.domain.search.Result;
+import org.apache.tuscany.sca.domain.search.impl.ArtifactResult;
+import org.apache.tuscany.sca.domain.search.impl.FileContentResult;
+import org.apache.tuscany.sca.domain.search.impl.HighlightingUtil;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+@Scope("COMPOSITE")
+@Service(interfaces = { ItemCollection.class, LocalItemCollection.class })
+public class Searcher implements ItemCollection, LocalItemCollection {
+
+ static char[] characters = { '\u0001'/* */, '\u0003'/* */,
+ '\u0004'/* */,
+
+ };
+
+ final private static String HTML_NEW_LINE = "<BR/>";
+
+ final private static String PATH_SEPARATOR = "/";
+
+ @Reference
+ public WorkspaceReader contributionCollection;
+
+ @Reference
+ public DomainSearch domainSearch;
+
+ public void delete(String key) throws NotFoundException {
+ System.out.println("delete");
+ }
+
+ private static void startIndentation(int size, StringWriter writer) {
+ writer
+ .write("<p style='margin-top:0em;margin-bottom:0em;padding:0em;margin-left:");
+ writer.write(Integer.toString(size));
+ writer.write("em'>");
+
+ }
+
+ private static void endIndentation(StringWriter writer) {
+ writer.write("</p>");
+ }
+
+ public Item get(String key) throws NotFoundException {
+ System.out.println("get");
+ this.domainSearch.contributionAdded(null, this.contributionCollection
+ .getWorkspace());
+ Result[] results = this.domainSearch.parseAndSearch(key, false);
+
+ Item item = new Item();
+ item.setTitle("Results");
+
+ StringWriter sw = new StringWriter();
+
+ for (Result result : results) {
+
+ try {
+ writeToHTML(0, result, sw);
+
+ } catch (IOException e) {
+ // ignore result
+ }
+
+ sw.write(HTML_NEW_LINE);
+
+ }
+
+ String contents = HighlightingUtil.replaceHighlightMarkupBy(sw
+ .getBuffer(), "<font color='#FF0000'>", "</font>");
+
+ item.setContents(replaceAll(contents, 40) + "end");
+
+ System.out.println(item.getContents().indexOf("@Referencevar"));
+
+ System.out.println(item.getContents());
+
+ return item;
+
+ }
+
+ //
+ // private static String replaceAll(CharSequence c) {
+ // StringBuilder sb = new StringBuilder();
+ // // HashSet<Character> set = new HashSet<Character>();
+ // Arrays.sort(characters);
+ // // int start = 0, end = 4;
+ // // char[] chars = new char[end - start];
+ // // System.arraycopy(characters, start, chars, 0, end - start);
+ //
+ // for (int i = 0 ; i < c.length() ; i++) {
+ // char actual = c.charAt(i);
+ //
+ // //if (Arrays.binarySearch(characters, actual) < 0) {
+ //
+ // if (!Character.isIdentifierIgnorable(actual)) {
+ // sb.append(actual);
+ //
+ // } else {
+ // //sb.append('0');
+ // }
+ //
+ // }
+ // //
+ // // System.out.println("set-size: " + set.size());
+ // // for (char character : set) {
+ // // System.out.print(",");
+ // // System.out.print((int) character);
+ // // System.out.print("/*" + character + "*/");
+ // //
+ // // }
+ // //
+ // // System.out.println();
+ //
+ // return sb.toString();
+ //
+ // }
+
+ private static String replaceAll(CharSequence c, int less) {
+ StringBuilder sb = new StringBuilder();
+ // HashSet<Character> set = new HashSet<Character>();
+ Arrays.sort(characters);
+ // int start = 0, end = 4;
+ // char[] chars = new char[end - start];
+ // System.arraycopy(characters, start, chars, 0, end - start);
+
+ for (int i = 0; i < c.length(); i++) {
+ char actual = c.charAt(i);
+
+ // if (Arrays.binarySearch(characters, actual) < 0) {
+
+ // if (actual != '\u000b' && actual != '\u0020' &&
+ // actual != '\u000c' && actual != '\u0009' &&
+ // actual != ')' && actual != '(') {
+
+ if (actual > less || actual == '&' || actual == '#'
+ || actual == '\'' || actual == ' ' || actual == '%'
+ || actual == ':') {
+ sb.append(actual);
+
+ } else {
+ // sb.append('0');
+ }
+
+ }
+ //
+ // System.out.println("set-size: " + set.size());
+ // for (char character : set) {
+ // System.out.print(",");
+ // System.out.print((int) character);
+ // System.out.print("/*" + character + "*/");
+ //
+ // }
+ //
+ // System.out.println();
+
+ return sb.toString();
+
+ }
+
+ private static Result writeFileContentResultToHTML(int indentation,
+ Result result, StringWriter writer) throws IOException {
+
+ String content = ((FileContentResult) result).getContent();
+ writer.write("file:");
+
+ if (content != null && content.length() > 0) {
+
+ StringEscapeUtils.escapeHtml(writer, result.getName());
+ writer.write(HTML_NEW_LINE);
+
+ startIndentation(indentation, writer);
+ writer.write("<span style='max-width:100%'>");
+ StringEscapeUtils.escapeHtml(writer, content);
+ writer.write("</span>");
+ endIndentation(writer);
+ writer.write(HTML_NEW_LINE);
+
+ } else {
+
+ writer.write(result.getName());
+ Collection<Result> contents = result.getContents().values();
+
+ while (contents.size() == 1) {
+ result = contents.iterator().next();
+
+ if (result instanceof FileContentResult) {
+ writer.write(PATH_SEPARATOR);
+ writer.write(result.getName());
+
+ contents = result.getContents().values();
+
+ } else {
+ break;
+ }
+
+ }
+
+ if (result instanceof FileContentResult) {
+ FileContentResult fileResult = (FileContentResult) result;
+ content = fileResult.getContent();
+
+ if (content != null && content.length() > 0) {
+
+ writer.write(HTML_NEW_LINE);
+
+ startIndentation(indentation, writer);
+ writer.write("<span style='max-width:100%'>");
+ StringEscapeUtils.escapeHtml(writer, content);
+ writer.write("</span>");
+ endIndentation(writer);
+ writer.write(HTML_NEW_LINE);
+
+ }
+
+ }
+
+ }
+
+ return result;
+
+ }
+
+ private static void writeToHTML(int indentation, Result result,
+ StringWriter writer) throws IOException {
+
+ startIndentation(indentation++, writer);
+
+ if (result instanceof FileContentResult) {
+ result = writeFileContentResultToHTML(indentation, result, writer);
+
+ } else {
+
+ StringEscapeUtils.escapeHtml(writer, result.getClass()
+ .getSimpleName().substring(0,
+ result.getClass().getSimpleName().length() - 6));
+ writer.write(':');
+ StringEscapeUtils.escapeHtml(writer, result.getName());
+ writer.write(HTML_NEW_LINE);
+
+ if (result instanceof ArtifactResult) {
+ String location = ((ArtifactResult) result).getLocation();
+
+ if (location != null) {
+ startIndentation(indentation, writer);
+ writer.write("location: ");
+ StringEscapeUtils.escapeHtml(writer, location);
+ endIndentation(writer);
+ writer.write(HTML_NEW_LINE);
+
+ }
+
+ }
+
+ }
+
+ endIndentation(writer);
+
+ for (Result actualResult : result.getContents().values()) {
+ writeToHTML(indentation, actualResult, writer);
+ }
+
+ }
+
+ public Entry<String, Item>[] getAll() {
+ System.out.println("getAll");
+ return null;
+ }
+
+ public String post(String key, Item item) {
+ System.out.println("post");
+ return null;
+ }
+
+ public void put(String key, Item item) throws NotFoundException {
+ System.out.println("put");
+ }
+
+ public Entry<String, Item>[] query(String queryString) {
+ System.out.println("query");
+ return null;
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/WorkspaceReader.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/WorkspaceReader.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/WorkspaceReader.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/WorkspaceReader.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,9 @@
+package org.apache.tuscany.sca.domain.manager.impl;
+
+import org.apache.tuscany.sca.workspace.Workspace;
+
+public interface WorkspaceReader {
+
+ Workspace getWorkspace();
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/DomainManager.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/DomainManager.composite?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/DomainManager.composite (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/DomainManager.composite Sun Jul 5 07:04:56 2009
@@ -29,6 +29,13 @@
</service>
</component>
+ <component name="SearchPage">
+ <t:implementation.widget location="search.html"/>
+ <service name="Widget">
+ <t:binding.http uri="http://localhost:9990/ui/search"/>
+ </service>
+ </component>
+
<component name="HomeGadget">
<t:implementation.widget location="home-gadget.html"/>
<service name="Widget">
@@ -247,6 +254,29 @@
<reference name="cloudCollection" target="CloudCollectionComponent/LocalItemCollection"/>
<reference name="processCollection" target="NodeProcessCollectionComponent/LocalItemCollection"/>
</component>
+
+ <component name="SearchGadget">
+ <t:implementation.widget location="search-gadget.html"/>
+ <service name="Widget">
+ <t:binding.http uri="http://localhost:9990/ui/search-gadget"/>
+ </service>
+ <reference name="searcher" target="SearcherCollectionComponent/ItemCollection">
+ <t:binding.atom/>
+ </reference>
+
+ </component>
+
+ <component name="SearcherCollectionComponent">
+ <implementation.java class="org.apache.tuscany.sca.domain.manager.impl.Searcher"/>
+
+ <service name="ItemCollection">
+ <t:binding.atom uri="http://localhost:9990/search" title="Search"/>
+ </service>
+
+ <reference name="domainSearch" target="DomainSearchComponent"/>
+ <reference name="contributionCollection" target="ContributionCollectionComponent/WorkspaceReader"/>
+
+ </component>
<component name="NodeProcessCollectionFacadeComponent">
<implementation.java class="org.apache.tuscany.sca.domain.manager.impl.NodeProcessCollectionFacadeImpl"/>
@@ -258,6 +288,7 @@
<reference name="processCollection" target="NodeProcessCollectionComponent/ItemCollection">
<t:binding.atom/>
</reference>
+
</component>
<component name="NodeProcessCollectionComponent">
@@ -277,5 +308,9 @@
<component name="DomainManagerConfigurationComponent">
<implementation.java class="org.apache.tuscany.sca.domain.manager.impl.DomainManagerConfigurationImpl"/>
</component>
+
+ <component name="DomainSearchComponent">
+ <implementation.java class="org.apache.tuscany.sca.domain.search.impl.DomainSearchImpl"/>
+ </component>
</composite>
Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/composite-gadget.html
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/composite-gadget.html?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/composite-gadget.html (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/composite-gadget.html Sun Jul 5 07:04:56 2009
@@ -65,6 +65,7 @@
var gadget = gadget(window, document);
if (gadget.showContributions == null) {
gadget.showContributions = true;
+
}
var domainCompositeForm = elementByID(gadget, 'domainCompositeForm');
Added: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search-gadget.html
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search-gadget.html?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search-gadget.html (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search-gadget.html Sun Jul 5 07:04:56 2009
@@ -0,0 +1,81 @@
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<html>
+
+<head>
+
+<title>SCA Domain - Domain Composite</title>
+
+<script type="text/javascript" src="../search-gadget/search-gadget.js"></script>
+<script type="text/javascript" src="utils.js"></script>
+
+
+
+<link rel="stylesheet" type="text/css" href="manager.css">
+
+
+
+</head>
+
+<body>
+
+
+ <div id="domainSearch">
+
+ <form id="domainSearchForm">
+
+ <p style="margin-top:1em;margin-bottom:1em;margin-left:1em;margin-right:1em">
+ <input id="searchField" type="text" value="" /> <input id="searchButton" type="button" value="Search" onclick="search()" />
+ </p>
+
+ <br>
+ <br>
+ <div id="results"></div>
+ </form>
+
+ </div>
+</body>
+
+<script type="text/javascript">
+
+ //@Reference
+ var searcher = new tuscany.sca.Reference("searcher");
+
+ var gadget = gadget(window, document);
+
+ function search() {
+ searcher.get(elementByID(gadget, 'searchField').value, searchResponse);
+ }
+
+ function searchResponse(feed) {
+ var entries = feed.getElementsByTagName("entry");
+ var content = entries[0].getElementsByTagName("content");
+
+ // alert(content[0].firstChild.data);
+
+ var results = elementByID(gadget, "results");
+ results.innerHTML = content[0].firstChild.data;
+
+ }
+
+ elementByID(gadget, 'searchButton').onclick = search
+
+</script>
+
+</html>
Added: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search.html
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search.html?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search.html (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/resources/search.html Sun Jul 5 07:04:56 2009
@@ -0,0 +1,66 @@
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<html>
+<head>
+<title>SCA Domain - Search</title>
+
+<script type="text/javascript" src="utils.js"></script>
+
+<link rel="stylesheet" type="text/css" href="manager.css">
+</head>
+
+<body>
+ <div id="toolbarGadgetDiv"></div>
+ <br>
+
+ <span class=hd1>
+ SCA Domain<br><br>
+ Domain Search <a href="/search/"><img src="icons/feed-icon.png" border="0"></a>
+ </span>
+ <br>
+
+ <p>
+ <div id="searchGadgetDiv"></div>
+ </p>
+
+ <iframe id="toolbarGadget" src="toolbar-gadget.html"></iframe>
+ <iframe id="searchGadget" src="search-gadget.html"marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>
+</body>
+
+<script type="text/javascript">
+ var toolbarGadgetDiv = elementByID(document, 'toolbarGadgetDiv');
+ var searchGadgetDiv = elementByID(document, 'searchGadgetDiv');
+
+ var toolbarGadget = elementByID(document, 'toolbarGadget');
+ var searchGadget = elementByID(document, 'searchGadget');
+
+ function ongadget(win, doc) {
+ if (doc == content(toolbarGadget)) {
+ toolbarGadgetDiv.innerHTML = doc.body.innerHTML;
+ return toolbarGadgetDiv;
+ } else if (doc == content(searchGadget)) {
+ searchGadgetDiv.innerHTML = doc.body.innerHTML;
+ searchGadgetDiv.showContributions = true;
+ searchGadgetDiv.showComponents = true;
+ return searchGadgetDiv;
+ }
+ return document;
+ }
+</script>
+</html>
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/pom.xml?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/pom.xml (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/pom.xml Sun Jul 5 07:04:56 2009
@@ -65,10 +65,22 @@
<version>1.6-SNAPSHOT</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
- <version>2.4-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-highlighter</artifactId>
+ <version>2.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-memory</artifactId>
+ <version>2.4-SNAPSHOT</version>
</dependency>
</dependencies>
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -6,7 +6,7 @@
final public static Document FAKE_DOCUMENT = new Document();
- Document process(DocumentProcessorsMap processors, DocumentMap documents, Object object, Document document, String parent);
+ Document process(DocumentProcessor parentProcessor, DocumentMap documents, Object object, Document document, String parent);
Object getDocumentKey(Object object);
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessorsMap.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessorsMap.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessorsMap.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DocumentProcessorsMap.java Sun Jul 5 07:04:56 2009
@@ -77,7 +77,7 @@
}
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document document, String parent) {
LinkedList<DocumentProcessor> processorsList;
@@ -102,7 +102,7 @@
}
for (DocumentProcessor processor : processorsList) {
- processor.process(processors, documents, object, document, parent);
+ processor.process(parentProcessor, documents, object, document, parent);
}
return document;
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DomainSearch.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DomainSearch.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DomainSearch.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/DomainSearch.java Sun Jul 5 07:04:56 2009
@@ -1,5 +1,6 @@
package org.apache.tuscany.sca.domain.search;
+import org.apache.lucene.search.Query;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.osoa.sca.annotations.Remotable;
@@ -7,7 +8,9 @@
@Remotable
public interface DomainSearch {
+ Result[] parseAndSearch(String searchQuery, boolean highlight);
+ Result[] search(Query searchQuery, boolean hightlight);
/**
* Notifies the listener that a contribution has been added.
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/Result.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/Result.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/Result.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/Result.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,22 @@
+package org.apache.tuscany.sca.domain.search;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public interface Result extends Serializable {
+
+ String getName();
+
+ void setName(String name);
+
+ Result getContainer();
+
+ Map<String, Result> getContents();
+
+ void addContent(Result artifactResult);
+
+ void removeContent(Result artifactResult);
+
+ void setContainer(Result container);
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,15 @@
+package org.apache.tuscany.sca.domain.search;
+
+import org.apache.lucene.document.Document;
+
+public interface ResultFactory<T extends Result> {
+
+ String getType();
+
+ String getName(Document document);
+
+ T createResult(String name);
+
+ T createResult(Document document);
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultProcessor.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultProcessor.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/ResultProcessor.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,10 @@
+package org.apache.tuscany.sca.domain.search;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.search.Query;
+
+public interface ResultProcessor {
+
+ Result process(Document document, Query query, Result result);
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -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 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();
-
+
}
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,25 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class ArtifactResult extends ResultImpl {
+
+ private static final long serialVersionUID = 7418036586148544103L;
+
+ private String location;
+
+ public ArtifactResult() {
+ // empty constructor
+ }
+
+ public ArtifactResult(String name) {
+ super(name);
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+ public String getLocation() {
+ return this.location;
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResultProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResultProcessor.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResultProcessor.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ArtifactResultProcessor.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,55 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.tuscany.sca.domain.search.Result;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+import org.apache.tuscany.sca.domain.search.ResultProcessor;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.search.Query;
+
+public class ArtifactResultProcessor implements ResultProcessor {
+
+ public Result process(Document document, Query query, Result result) {
+
+ if (result instanceof ArtifactResult) {
+ String location = document.get(SearchFields.LOCATION_FIELD);
+ ((ArtifactResult) result).setLocation(location);
+
+ }
+
+ return result;
+
+ }
+
+ public static class ArtifactResultFactory implements ResultFactory<ArtifactResult> {
+
+ public ArtifactResultFactory() {
+ // empty constructor
+ }
+
+ public ArtifactResult createResult(String name) {
+ return new ArtifactResult(name);
+ }
+
+ public String getName(Document document) {
+ return document.get(SearchFields.ARTIFACT_FIELD);
+ }
+
+ public String getType() {
+ return SearchFields.ARTIFACT_FIELD;
+ }
+
+ public ArtifactResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+ }
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -4,11 +4,10 @@
import org.apache.tuscany.sca.assembly.Binding;
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 BindingDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document document, String parent) {
if (object instanceof Binding) {
@@ -55,5 +54,5 @@
throw new IllegalArgumentException();
}
-
+
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,11 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class BindingResult extends ResultImpl {
+
+ private static final long serialVersionUID = 8393058630593239377L;
+
+ public BindingResult(String name) {
+ super(name);
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/BindingResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,36 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.lucene.document.Document;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+
+public class BindingResultFactory implements ResultFactory<BindingResult> {
+
+ public BindingResultFactory() {
+ // empty constructor
+ }
+
+ public BindingResult createResult(String name) {
+ return new BindingResult(name);
+ }
+
+ public String getType() {
+ return SearchFields.BINDING_FIELD;
+ }
+
+ public String getName(Document document) {
+ return document.get(getType());
+ }
+
+ public BindingResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -7,13 +7,13 @@
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.domain.search.DocumentMap;
import org.apache.tuscany.sca.domain.search.DocumentProcessor;
-import org.apache.tuscany.sca.domain.search.DocumentProcessorsMap;
+import org.apache.tuscany.sca.domain.search.Result;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
public class ComponentDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof Component) {
@@ -33,7 +33,7 @@
doc = documents.get(uri);
}
- parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.COMPONENT_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
+ parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.COMPONENT_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + uri + DomainPathAnalyzer.URI_SEPARATOR + component.getName();
doc.add(new Field(SearchFields.COMPONENT_FIELD, uri,
Field.Store.YES, Field.Index.ANALYZED));
@@ -81,10 +81,10 @@
}
for (ComponentReference reference : component.getReferences()) {
- Document serviceDoc = documents.get(uri + ':'
+ Document referenceDoc = documents.get(uri + ':'
+ reference.getName());
- serviceDoc.add(new Field(SearchFields.REFERENCE_NAME_FIELD,
+ referenceDoc.add(new Field(SearchFields.REFERENCE_NAME_FIELD,
reference.getName(), Field.Store.YES,
Field.Index.ANALYZED));
@@ -96,7 +96,7 @@
for (Operation operation : interfaceContract
.getInterface().getOperations()) {
- serviceDoc.add(new Field(
+ referenceDoc.add(new Field(
SearchFields.REFERENCE_INTERFACE_FIELD,
operation.getName(), Field.Store.YES,
Field.Index.ANALYZED));
@@ -106,7 +106,7 @@
for (Operation operation : interfaceContract
.getCallbackInterface().getOperations()) {
- serviceDoc
+ referenceDoc
.add(new Field(
SearchFields.REFERENCE_INTERFACE_CALLBACK_FIELD,
operation.getName(),
@@ -117,26 +117,26 @@
}
- serviceDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
+ referenceDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
Field.Store.YES, Field.Index.ANALYZED));
}
}
- Document implementationDoc = processors.process(processors,
+ Document implementationDoc = parentProcessor.process(parentProcessor,
documents, component.getImplementation(), null, parent);
if (uri != null && implementationDoc != null) {
- implementationDoc.add(new Field(SearchFields.IMPLEMENTS_FIELD,
+ implementationDoc.add(new Field(SearchFields.PARENT_FIELD,
uri, Field.Store.YES, Field.Index.ANALYZED));
-
+
}
for (ComponentProperty componentProperty : component
.getProperties()) {
- Document propertyDoc = processors.process(processors,
+ Document propertyDoc = parentProcessor.process(parentProcessor,
documents, componentProperty.getProperty(), null, parent);
if (uri != null) {
@@ -176,4 +176,17 @@
}
+ public Result processDocument(org.apache.lucene.document.Document document, Result result) {
+ String componentName = document.get(SearchFields.COMPONENT_FIELD);
+
+ if (componentName != null) {
+
+
+
+ }
+
+ return null;
+
+ }
+
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,16 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+
+public class ComponentResult extends ResultImpl {
+
+ private static final long serialVersionUID = -2171168107785499573L;
+
+ public ComponentResult() {
+ // empty constructor
+ }
+
+ public ComponentResult(String name) {
+ super(name);
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,35 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.lucene.document.Document;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+
+public class ComponentResultFactory implements ResultFactory<ComponentResult> {
+
+ public ComponentResultFactory() {
+ // empty constructor
+ }
+
+ public ComponentResult createResult(String name) {
+ return new ComponentResult(name);
+ }
+
+ public String getName(Document document) {
+ return document.get(getType());
+ }
+
+ public String getType() {
+ return SearchFields.COMPONENT_FIELD;
+ }
+
+ public ComponentResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -7,13 +7,12 @@
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.domain.search.DocumentMap;
import org.apache.tuscany.sca.domain.search.DocumentProcessor;
-import org.apache.tuscany.sca.domain.search.DocumentProcessorsMap;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
public class ComponentTypeDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof ComponentType) {
@@ -131,7 +130,7 @@
}
for (Property property : componentType.getProperties()) {
- Document propertyDoc = processors.process(processors,
+ Document propertyDoc = parentProcessor.process(parentProcessor,
documents, property, null, parent);
if (uri != null) {
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,15 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class ComponentTypeResult extends ResultImpl {
+
+ private static final long serialVersionUID = 3767144511814116732L;
+
+ public ComponentTypeResult() {
+ // empty constructor
+ }
+
+ public ComponentTypeResult(String name) {
+ super(name);
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ComponentTypeResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,36 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.lucene.document.Document;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+
+public class ComponentTypeResultFactory implements
+ ResultFactory<ComponentTypeResult> {
+
+ public ComponentTypeResultFactory() {
+ // empty constructor
+ }
+
+ public String getName(Document document) {
+ return document.get(getType());
+ }
+
+ public String getType() {
+ return SearchFields.COMPONENT_TYPE_FIELD;
+ }
+
+ public ComponentTypeResult createResult(String name) {
+ return new ComponentTypeResult(name);
+ }
+
+ public ComponentTypeResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -7,11 +7,10 @@
import org.apache.tuscany.sca.assembly.Composite;
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 CompositeDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof Composite) {
@@ -25,15 +24,16 @@
uri = null;
} else if (doc == null) {
- doc = documents.get(uri);
- parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.COMPOSITE_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
-
+ doc = documents.get(uri);
+ }
+
+ if (uri != null) {
+ parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.COMPOSITE_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + composite.getURI() + DomainPathAnalyzer.URI_SEPARATOR + composite.getName();
}
for (Component component : composite.getComponents()) {
-
- Document componentDoc = processors.process(processors,
+ Document componentDoc = parentProcessor.process(parentProcessor,
documents, component, null, parent);
if (uri != null) {
@@ -47,13 +47,13 @@
if (uri != null) {
- doc.add(new Field(SearchFields.COMPOSITE_FIELD, uri.toString(),
+ doc.add(new Field(SearchFields.COMPOSITE_FIELD, uri,
Field.Store.YES, Field.Index.ANALYZED));
}
for (Composite include : composite.getIncludes()) {
- Document compositeDoc = processors.process(processors,
+ Document compositeDoc = parentProcessor.process(parentProcessor,
documents, include, null, parent);
if (uri != null) {
@@ -66,7 +66,7 @@
}
for (Component component : composite.getComponents()) {
- Document componentDoc = processors.process(processors,
+ Document componentDoc = parentProcessor.process(parentProcessor,
documents, component, null, parent);
if (uri != null) {
@@ -102,5 +102,5 @@
throw new IllegalArgumentException();
}
-
+
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,15 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class CompositeResult extends ResultImpl {
+
+ private static final long serialVersionUID = -4651241874173649592L;
+
+ public CompositeResult() {
+ // empty constructor
+ }
+
+ public CompositeResult(String name) {
+ super(name);
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/CompositeResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,35 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.lucene.document.Document;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+
+public class CompositeResultFactory implements ResultFactory<CompositeResult> {
+
+ public CompositeResultFactory() {
+ // empty constructor
+ }
+
+ public CompositeResult createResult(String name) {
+ return new CompositeResult(name);
+ }
+
+ public String getName(Document document) {
+ return document.get(getType());
+ }
+
+ public String getType() {
+ return SearchFields.COMPOSITE_FIELD;
+ }
+
+ public CompositeResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -7,31 +7,35 @@
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.domain.search.DocumentMap;
import org.apache.tuscany.sca.domain.search.DocumentProcessor;
-import org.apache.tuscany.sca.domain.search.DocumentProcessorsMap;
+import org.apache.tuscany.sca.domain.search.Result;
public class ContributionDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof Contribution) {
Contribution contribution = (Contribution) object;
String uri = contribution.getURI();
-
+
if (uri != null) {
-
+
if (uri.length() == 0) {
uri = null;
-
+
} else {
- parent += DomainPathAnalyzer.PATH_SEPARATOR + SearchFields.CONTRIBUTION_FIELD + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
+
+ parent += DomainPathAnalyzer.PATH_SEPARATOR
+ + SearchFields.CONTRIBUTION_FIELD
+ + DomainPathAnalyzer.TYPE_SEPARATOR + uri;
+
}
-
+
}
-
+
if (uri != null && doc == null) {
doc = documents.get(uri);
-
+
doc.add(new Field(SearchFields.CONTRIBUTION_FIELD, uri,
Field.Store.YES, Field.Index.ANALYZED));
@@ -40,52 +44,56 @@
}
for (Artifact artifact : contribution.getArtifacts()) {
- Document artifactDoc = processors.process(processors,
+ Document artifactDoc = parentProcessor.process(parentProcessor,
documents, artifact, null, parent);
if (uri != null) {
- artifactDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
- Field.Store.YES, Field.Index.ANALYZED));
+ artifactDoc.add(new Field(SearchFields.PARENT_FIELD,
+ parent, Field.Store.YES, Field.Index.ANALYZED));
}
}
-// for (Import imprt : contribution.getImports()) {
-// Document importDoc = processors.process(processors, documents,
-// imprt, null);
-//
-// if (uri != null) {
-//
-// importDoc.add(new Field(SearchFields.IMPORTEDBY_FIELD, uri,
-// Field.Store.YES, Field.Index.ANALYZED));
-//
-// }
-//
-// }
-//
-// for (Export export : contribution.getExports()) {
-// Document exportDoc = processors.process(processors, documents,
-// export, null);
-//
-// if (uri != null) {
-//
-// exportDoc.add(new Field(SearchFields.EXPORTEDBY_FIELD, uri,
-// Field.Store.YES, Field.Index.ANALYZED));
-//
-// }
-//
-// }
-
- for (Composite composite : contribution.getDeployables()) {
- Document compositeDoc = processors.process(processors,
- documents, composite, null, parent);
+ // for (Import imprt : contribution.getImports()) {
+ // Document importDoc = processors.process(processors, documents,
+ // imprt, null);
+ //
+ // if (uri != null) {
+ //
+ // importDoc.add(new Field(SearchFields.IMPORTEDBY_FIELD, uri,
+ // Field.Store.YES, Field.Index.ANALYZED));
+ //
+ // }
+ //
+ // }
+ //
+ // for (Export export : contribution.getExports()) {
+ // Document exportDoc = processors.process(processors, documents,
+ // export, null);
+ //
+ // if (uri != null) {
+ //
+ // exportDoc.add(new Field(SearchFields.EXPORTEDBY_FIELD, uri,
+ // Field.Store.YES, Field.Index.ANALYZED));
+ //
+ // }
+ //
+ // }
+
+ if (!object.getClass().getSimpleName().contains("Workspace")) {
+
+ for (Composite composite : contribution.getDeployables()) {
+ Document compositeDoc = parentProcessor.process(parentProcessor,
+ documents, composite, null, parent);
- if (uri != null) {
+ if (uri != null) {
+
+ compositeDoc.add(new Field(SearchFields.PARENT_FIELD,
+ parent, Field.Store.YES, Field.Index.ANALYZED));
- compositeDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
- Field.Store.YES, Field.Index.ANALYZED));
+ }
}
@@ -100,21 +108,42 @@
}
public Object getDocumentKey(Object object) {
-
+
if (object instanceof Contribution) {
Contribution contribution = (Contribution) object;
String uri = contribution.getURI();
-
+
if (uri != null && uri.length() == 0) {
return null;
}
-
+
return uri;
-
+
}
-
+
throw new IllegalArgumentException();
-
+
+ }
+
+ public Result processDocument(org.apache.lucene.document.Document document,
+ Result result) {
+ String contributionName = document.get(SearchFields.CONTRIBUTION_FIELD);
+
+ if (contributionName != null) {
+
+ if (result == null) {
+ result = new ContributionResult(contributionName);
+
+ } else if (!(result instanceof ContributionResult)) {
+ throw new IllegalArgumentException();
+ }
+
+ result.setName(contributionName);
+
+ }
+
+ return result;
+
}
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResult.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResult.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResult.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResult.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,15 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class ContributionResult extends ArtifactResult {
+
+ private static final long serialVersionUID = 4508196828816188213L;
+
+ public ContributionResult() {
+ // empty constructor
+ }
+
+ public ContributionResult(String name) {
+ super(name);
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResultFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResultFactory.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResultFactory.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/ContributionResultFactory.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,36 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import org.apache.lucene.document.Document;
+import org.apache.tuscany.sca.domain.search.ResultFactory;
+
+public class ContributionResultFactory implements
+ ResultFactory<ContributionResult> {
+
+ public ContributionResultFactory() {
+ // empty constructor
+ }
+
+ public ContributionResult createResult(String name) {
+ return new ContributionResult(name);
+ }
+
+ public String getName(Document document) {
+ return document.get(SearchFields.CONTRIBUTION_FIELD);
+ }
+
+ public String getType() {
+ return SearchFields.CONTRIBUTION_FIELD;
+ }
+
+ public ContributionResult createResult(Document document) {
+ String name = getName(document);
+
+ if (name != null) {
+ return createResult(name);
+ }
+
+ return null;
+
+ }
+
+}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DefaultFileDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DefaultFileDocumentProcessor.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DefaultFileDocumentProcessor.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DefaultFileDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,63 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import org.apache.lucene.document.Field;
+import org.apache.tuscany.sca.domain.search.DocumentMap;
+import org.apache.tuscany.sca.domain.search.DocumentProcessor;
+
+public class DefaultFileDocumentProcessor implements DocumentProcessor {
+
+ public Document process(DocumentProcessor parentProcessor,
+ DocumentMap documents, Object object, Document doc, String parent) {
+
+ if (object instanceof FileContent) {
+ FileContent file = (FileContent) object;
+
+ Reader reader;
+ try {
+ reader = new InputStreamReader(file.getInputStream());
+
+ if (doc == null) {
+ doc = documents.get(file.getPath());
+ }
+
+ doc.add(new Field(SearchFields.FILE_FIELD, file.getName(), Field.Store.YES,
+ Field.Index.ANALYZED));
+
+ doc.add(new Field(SearchFields.FILE_CONTENT_FIELD, reader));
+
+ return doc;
+
+ } catch (IOException e) {
+ // ignore the file
+ }
+
+ }
+
+ return null;
+
+ }
+
+ public Object getDocumentKey(Object object) {
+
+ if (object instanceof File) {
+ File file = (File) object;
+ String path = file.getPath();
+
+ if (path != null && path.length() == 0) {
+ return null;
+ }
+
+ return path;
+
+ }
+
+ throw new IllegalArgumentException();
+
+ }
+
+}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DirectoryDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DirectoryDocumentProcessor.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DirectoryDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DirectoryDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -5,11 +5,10 @@
import org.apache.lucene.document.Field;
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 DirectoryDocumentProcessor implements DocumentProcessor {
- public Document process(DocumentProcessorsMap processors,
+ public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof File) {
@@ -25,7 +24,7 @@
File[] files = file.listFiles();
for (File childFile : files) {
- Document fileDoc = processors.process(processors, documents, childFile, null, parent);
+ Document fileDoc = parentProcessor.process(parentProcessor, documents, childFile, null, parent);
fileDoc.add(new Field(SearchFields.PARENT_FIELD, parent,
Field.Store.YES, Field.Index.ANALYZED));
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java Sun Jul 5 07:04:56 2009
@@ -3,29 +3,52 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Hashtable;
+import java.util.LinkedList;
import org.apache.lucene.document.Fieldable;
public class Document {
private Hashtable<String, Hashtable<String, Fieldable>> fieldablesTable = new Hashtable<String, Hashtable<String, Fieldable>>();
+
+ private Hashtable<String, LinkedList<Fieldable>> readerMap = new Hashtable<String, LinkedList<Fieldable>>();;
public Document() {
// empty constructor
}
public void add(Fieldable fieldable) {
- Hashtable<String, Fieldable> fieldables = this.fieldablesTable
- .get(fieldable.name());
+
+ String strValue = fieldable.stringValue();
+
+ if (strValue != null) {
+
+ Hashtable<String, Fieldable> fieldables = this.fieldablesTable
+ .get(fieldable.name());
+
+ if (fieldables == null) {
+ fieldables = new Hashtable<String, Fieldable>();
+ this.fieldablesTable.put(fieldable.name(), fieldables);
- if (fieldables == null) {
- fieldables = new Hashtable<String, Fieldable>();
- this.fieldablesTable.put(fieldable.name(), fieldables);
+ }
+
+ fieldables.put(strValue, fieldable);
+
+ } else {
+
+ LinkedList<Fieldable> fieldables = this.readerMap
+ .get(fieldable.name());
+
+ if (fieldables == null) {
+ fieldables = new LinkedList<Fieldable>();
+ this.readerMap.put(fieldable.name(), fieldables);
+ }
+
+ fieldables.add(fieldable);
+
}
- fieldables.put(fieldable.stringValue(), fieldable);
-
}
public org.apache.lucene.document.Document createLuceneDocument() {
@@ -39,6 +62,14 @@
}
+ for (LinkedList<Fieldable> fieldables : this.readerMap.values()) {
+
+ for (Fieldable fieldable : fieldables) {
+ doc.add(fieldable);
+ }
+
+ }
+
return doc;
}
@@ -50,7 +81,7 @@
return fieldables.keySet();
}
- return Collections.EMPTY_LIST;
+ return Collections.emptyList();
}
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzer.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzer.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzer.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainPathAnalyzer.java Sun Jul 5 07:04:56 2009
@@ -14,6 +14,8 @@
final public static char TYPE_SEPARATOR = '\u0002';
+ final public static char URI_SEPARATOR = '\u0003';
+
static class DomainPathTokenizer extends Tokenizer {
private int offset = 0, bufferIndex = 0, dataLen = 0;
@@ -21,25 +23,28 @@
private static final int IO_BUFFER_SIZE = 4096;
private final char[] ioBuffer = new char[IO_BUFFER_SIZE];
private boolean typeCharFound = false;
+ private boolean uriCharFound = false;
public DomainPathTokenizer(Reader reader) {
super(reader);
}
-
+
@Override
public void reset() throws IOException {
super.reset();
-
+
typeCharFound = false;
-
+ uriCharFound = false;
+
}
-
+
@Override
public void reset(Reader input) throws IOException {
super.reset(input);
-
+
+ uriCharFound = false;
typeCharFound = false;
-
+
}
@Override
@@ -52,7 +57,7 @@
boolean lowercaseCharFound = false;
boolean digitFound = false;
-
+
while (true) {
if (bufferIndex >= dataLen) {
@@ -94,15 +99,17 @@
} else {
bufferIndex--;
}
-
+
typeCharFound = false;
+ uriCharFound = false;
- } else if (c == TYPE_SEPARATOR && !typeCharFound) {
+ } else if (c == TYPE_SEPARATOR && !typeCharFound
+ || c == URI_SEPARATOR && !uriCharFound) {
length = 0;
breakChar = false;
lowercaseCharFound = false;
digitFound = false;
-
+
} else {
if (Character.isDigit(c)) {
@@ -154,12 +161,18 @@
if (c == TYPE_SEPARATOR && !typeCharFound) {
typeCharFound = true;
-
+
+ } else if (c == URI_SEPARATOR && !uriCharFound) {
+ typeCharFound = true;
+
} else {
- buffer[length++] = Character.toLowerCase(c); // buffer it, normalized
+ buffer[length++] = Character.toLowerCase(c); // buffer
+ // it,
+ // normalized
}
-
- if (length == MAX_WORD_LEN || (breakChar && length > 0)) // buffer overflow!
+
+ if (length == MAX_WORD_LEN || (breakChar && length > 0)) // buffer
+ // overflow!
break;
} else if (length > 0) {// at non-Letter w/ chars
Modified: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchDocumentProcessorsMap.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchDocumentProcessorsMap.java?rev=791203&r1=791202&r2=791203&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchDocumentProcessorsMap.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchDocumentProcessorsMap.java Sun Jul 5 07:04:56 2009
@@ -1,5 +1,7 @@
package org.apache.tuscany.sca.domain.search.impl;
+import java.io.File;
+
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.ComponentType;
@@ -21,6 +23,7 @@
addDocumentProcessor(Binding.class, new BindingDocumentProcessor());
addDocumentProcessor(Component.class, new ComponentDocumentProcessor());
addDocumentProcessor(Composite.class, new CompositeDocumentProcessor());
+ addDocumentProcessor(File.class, new DomainSearchFileDocumentProcessor());
}
Added: tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFileDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFileDocumentProcessor.java?rev=791203&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFileDocumentProcessor.java (added)
+++ tuscany/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/DomainSearchFileDocumentProcessor.java Sun Jul 5 07:04:56 2009
@@ -0,0 +1,13 @@
+package org.apache.tuscany.sca.domain.search.impl;
+
+public class DomainSearchFileDocumentProcessor extends FileDocumentProcessor {
+
+ private static final long serialVersionUID = -2725616937948969598L;
+
+ public DomainSearchFileDocumentProcessor() {
+ add(new ZipDocumentProcessor());
+ add(new DefaultFileDocumentProcessor());
+
+ }
+
+}