You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by "Viner, David" <dv...@yahoo-inc.com> on 2003/07/30 18:46:12 UTC

RE: MetaService and Metadata [Was:RE: [PATCH] XTools adds user.di r to absolute paths]

Vadim,
	I haven't reviewed your patch yet, but here's why putDocument is (or
was) connected to metadata creation.  When a new document is inserted, or a
new collection created, the MetaData object/document is created at insert
time.  This is required for knowing things like "Create Time".  So,
previously, when putDocument was invoked, a new MetaData document was
dynamically constructed with the right information in it.  However, since
the critical lines have been removed, the document is no longer constructed.
Therefore, when you request the metadata for an existing document, the code
constructs a new MetaData object and stores the document.  Does that make
sense?

	Keep in mind that using a Service, all this may be rendered moot.
In fact, I believe that there are 2 distinct metadata implementations now
embedded in the core code.  I don't quite understand the
"InlineMetaService", but it appears that that is the only fully functional
metadata implementation remaining.

dave

-----Original Message-----
From: Vadim Gritsenko [mailto:vadim.gritsenko@verizon.net]
Sent: Tuesday, July 29, 2003 8:47 PM
To: xindice-dev@xml.apache.org
Subject: MetaService and Metadata [Was:RE: [PATCH] XTools adds user.dir
to absolute paths]


Viner, David wrote:

>For the API, I'm not sure what the best way to access it is.  I made an
>XMLRPC api for it, which is how i access it.  I can send those classes if
>you're interested.  If you want to go for the Service approach, I'd be all
>for seeing a prototype.  To be honest, I'm not sure which is more
"correct".
>

Ideally, it should be in XML:DB API. Less then ideal case is the 
extenstion of the API - that's service. Least ideal way is proprietary 
API. At least that's my opinion.

WRT to prototype - attached (patch includes some other changes as well). 
Tested with embed driver, xmlrpc is not tested. Comments are welcome!


>As for the last mod time and the code you point out, the meta object is
>constructed if it needs to be, and has its values set if they are missing.
>Does that make sense?  In other words, if the meta object is already there
>and properly initialized, the created and modified variables are unused.
>

Does not work for me... All the time returns "now" even when I patched 
MetaData to include time into serialization / deserialization. You can 
try it too with attached MyMain program. Output after two runs:

Collection DOES NOT Exist!
Resource DOES NOT Exist!
...
Resource /db/test/MyTest created time: 1059535843558 (Tue Jul 29 
23:30:43 EDT 2003)
Resource /db/test/MyTest modified time: 1059535843558 (Tue Jul 29 
23:30:43 EDT 2003)
Update Resource!
Resource: <?xml version="1.0"?>
<root><data modified="1059535848565" /></root>
Collection /db/test created time: 0 (Wed Dec 31 19:00:00 EST 1969)
Collection /db/test modified time: 1059535848575 (Tue Jul 29 23:30:48 
EDT 2003)
Resource /db/test/MyTest created time: 1059535848605 (Tue Jul 29 
23:30:48 EDT 2003)
Resource /db/test/MyTest modified time: 1059535848605 (Tue Jul 29 
23:30:48 EDT 2003)


Collection ALREADY Exists!
Resource ALREADY Exists!
Resource: <?xml version="1.0"?>
<root><data modified="1059535848565" /></root>
Resource /db/test/MyTest created time: 1059535870787 (Tue Jul 29 
23:31:10 EDT 2003)
Resource /db/test/MyTest modified time: 1059535870787 (Tue Jul 29 
23:31:10 EDT 2003)
Update Resource!
Resource: <?xml version="1.0"?>
<root><data modified="1059535875795" /></root>
Collection /db/test created time: 0 (Wed Dec 31 19:00:00 EST 1969)
Collection /db/test modified time: 1059535875815 (Tue Jul 29 23:31:15 
EDT 2003)
Resource /db/test/MyTest created time: 1059535875825 (Tue Jul 29 
23:31:15 EDT 2003)
Resource /db/test/MyTest modified time: 1059535875825 (Tue Jul 29 
23:31:15 EDT 2003)


What do I miss?


>However, it appears that the codebase no longer supports the metadata
>implementation that I submitted.  See the commit comments
>http://cvs.apache.org/viewcvs.cgi/xml-xindice/java/src/org/apache/xindice/c
o
>re/Collection.java?rev=1.14&content-type=text/vnd.viewcvs-markup .  The
>comments for putDocument now read 
>
> /**
>    * This is the lowest-level method for storing a record into the backing
>store.
>    * It does not update non-inline metadata.
>    */
>   private void putDocument
>

But this putDocument is not related to MetaData? MetaData is stored just 
like any other regular XML document - AFAIU.

Vadim


Re: MetaService and Metadata [Was:RE: [PATCH] XTools adds user.dir to absolute paths]

Posted by Vadim Gritsenko <va...@verizon.net>.
Viner, David wrote:

>Vadim,
>	I haven't reviewed your patch yet, but here's why putDocument is (or
>was) connected to metadata creation.  When a new document is inserted, or a
>new collection created, the MetaData object/document is created at insert
>time.  This is required for knowing things like "Create Time".  So,
>previously, when putDocument was invoked, a new MetaData document was
>dynamically constructed with the right information in it.  However, since
>the critical lines have been removed, the document is no longer constructed.
>Therefore, when you request the metadata for an existing document, the code
>constructs a new MetaData object and stores the document.  Does that make
>sense?
>

Makes perfect sense!


>	Keep in mind that using a Service, all this may be rendered moot.
>In fact, I believe that there are 2 distinct metadata implementations now
>embedded in the core code.  I don't quite understand the
>"InlineMetaService", but it appears that that is the only fully functional
>metadata implementation remaining.
>

I'll try and see what is missing (what critical lines are missing) to 
make MetaData working.

Vadim