If the cmsObject paramter is a Document :
1/ Cast into Document to get the stream
2/ Add the content in the index

On 10/17/06, Evangelos Vlachogiannis <[EMAIL PROTECTED]> wrote:
What I want to do is to get the DocumentStream so that I can add the
content in index. Here is my changes: Any proposal how to replace that
class please?

Index:
components/src/java/org/apache/portals/graffito/services/search/impl/ContentIndexServiceImpl.java
===================================================================
---
components/src/java/org/apache/portals/graffito/services/search/impl/ContentIndexServiceImpl.java
(revision 463916)
+++
components/src/java/org/apache/portals/graffito/services/search/impl/ContentIndexServiceImpl.java
(working copy)
@@ -34,9 +34,11 @@
 import org.apache.portals.graffito.model.core.CmsObject;
 import org.apache.portals.graffito.model.core.VersionnedContent;
 import org.apache.portals.graffito.persistence.ContentPersistenceService;
+import org.apache.portals.graffito.portlets.util.ServiceAccessor;
+import org.apache.portals.graffito.services.dm.DocumentModelService;
 import org.apache.portals.graffito.services.search.ContentIndexService;

-/**
+/**
  *
  * Default implementation for [EMAIL PROTECTED]
org.apache.portals.graffito.services.core.ContentIndexService}
  *
@@ -157,13 +159,19 @@
             doc.add(Field.Keyword(CREATION_DATE_FIELD,
DateField.dateToString(cmsObject.getCreationDate())));
             doc.add(Field.Keyword(LAST_MODIFIED_DATE_FIELD,
DateField.dateToString(cmsObject.getLastModified())));

+            DocumentModelService cms =
ServiceAccessor.getDocumentService();
+            org.apache.portals.graffito.model.dm.Document doc1 =
cms.getDocument(cmsObject.getUri());
+            String s = new
String(doc1.getDocumentStream().getContentByte(),"utf-8");
+            doc.add(Field.Text("contents", s)); //this only for text
documents
+
+            //TODO: add more more mime type (pdfbox.org for pdf etc...)
+
             // Add version info
             if (cmsObject instanceof VersionnedContent)
             {
                 //TODO : add Version infos
             }

-
             indexWriter.addDocument(doc);
             indexWriter.optimize();
             result = true;
@@ -171,7 +179,9 @@
         catch (IOException e)
         {
             log.error("Error while adding document into the Lucene
index " , e);
-        }
+        } catch (ContentManagementException e) {
+            log.error("Error while getting the contents of the document
to add to the Lucene index " , e);
+        }
         finally
         {
             try


Christophe Lombart wrote:
> The components  subproject has no dependencies to the graffito
> portlets subproject (applications/graffito-portlets).
>
> Why do you want to use ServiceAccessor in ContentIndexServiceImpl ? It
> is better to use injection to access to another service.
>
>
> On 10/17/06, Evangelos Vlachogiannis <[EMAIL PROTECTED]> wrote:
>> Hi list,
>>
>> I have met a strange behavior: When I just add in class
>>
>> 
components/src/java/org/apache/portals/graffito/services/search/impl/ContentIndexServiceImpl.java
>>
>>
>> the
>>
>> import org.apache.portals.graffito.portlets.util.ServiceAccessor;
>>
>> and try to compile using maven allBuild I compile get error saying that
>> there is not org.apache.portals.graffito.portlets.util package!!! Any
>> ideas pls before I get crazy??
>>
>> Thnx,
>> Vangelis
>>
>>
>
>

--
Evangelos Vlachogiannis
Researcher - University of the Aegean
Contact&More: http://www.syros.aegean.gr/users/evlach/contactme.php



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.408 / Virus Database: 268.13.4/477 - Release Date: 16/10/2006




--
Best regards,

Christophe

Reply via email to