ABOU LINA wrote:
i tested the two way but i got the same problem : dtd not found .

           InputStream input = this.getClass
().getClassLoader().getResourceAsStream(descriptor2);
           MetadataManager mm = MetadataManager.getInstance();
           mm.setEnablePerThreadChanges(true);
           DescriptorRepository dr_1 = mm.readDescriptorRepository(input);

at readDescriptorRepository(InputStream) i got the message error


Strange! If the DOCTYPE is set correctly in mapping.xml I would assume that it's a parser problem, because the .xml file was found.
Did you try to read the second repository via relative/absolute path string?
mm.readDescriptorRepository("mapping.xml");
mm.readDescriptorRepository("c:/.../mapping.xml");

regards,
Armin





On 5/24/06, Armin Waibel <[EMAIL PROTECTED]> wrote:

ABOU LINA wrote:
> is in the same place :
>
> project-name/appli-conf  /  mappin2.xml , repository.dtd
>
> and the project-name/appli-conf is in the classpath.
>
> the mappin2.xml is retrieved with success but the dtd is not found and
ojb
> try
> to found it from c:\eclipse\ the base directory. !!!
>

locally I setup a similar test. This test pass.
Did you correctly set the doctype instruction in mapping2.xml (e.g. typo)?

Both settings work for my local test:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository SYSTEM "repository.dtd">
<descriptor-repository version="1.0" isolation-level="read-uncommitted"
proxy-prefetching-limit="50">
  ...
/>

or

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository PUBLIC
        "-//Apache Software Foundation//DTD OJB Repository//EN"
        "repository.dtd"
[
...
]>
<descriptor-repository version="1.0" isolation-level="read-uncommitted"
         proxy-prefetching-limit="50">
...
/>

regards,
Armin


>
>
> On 5/24/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>>
>> ABOU LINA wrote:
>> > I have a problem to load the new profile :
>> >
>> > 1. i  put the mapping2.xml in the classpath of the project
>> > 2. i use the mm.readDescriptorRepository(InputStream map) insteadof
>> (String
>> > map)
>> >
>> > i get : java.io.FileNoteFound : c:\eclipse\repository.dtd   ... !
>> >
>> > if i used InputStream is beacause i want to make access to the
>> > mapping2.xmlfrom the classpath , but the parser used in ojb is
looking
>> > the dtd from a
>> > base directory !!!
>> >
>> > any idea .
>>
>> Put the repository.dtd in the same place as mapping2.xml
>>
>> regards,
>> Armin
>>
>>
>> >
>> > thx in advance
>> >
>> > On 5/24/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>> >>
>> >> ABOU LINA wrote:
>> >> > That's very good idea using threadLocal :) , thx very much about
>> these
>> >> > informations :).
>> >> >
>> >>
>> >> My pleasure!
>> >> All code for "metadata profiles" (by using ThreadLocale) is handled
by
>> >> class MetadataManager. If you have problems using "metadata
profiles"
>> >> look at this class.
>> >>
>> >>
>>
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/MetadataManager.java?view=markup
>>
>> >>
>> >>
>> >>
>> >> In MetadataManager the use of metadata profiles is explained too
>> >>
>> >>
>>
http://db.apache.org/ojb/api/org/apache/ojb/broker/metadata/MetadataManager.html
>>
>> >>
>> >>
>> >>
>> >> regards,
>> >> Armin
>> >>
>> >> >
>> >> >
>> >> > On 5/24/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>> >> >>
>> >> >> ABOU LINA wrote:
>> >> >> > thx for your reply .
>> >> >> >
>> >> >> > looking the example :
>> >> >> >
>> >> >> > // get MetadataManager instance
>> >> >> (1) > MetadataManager mm = MetadataManager.getInstance();
>> >> >> >
>> >> >> > // enable per thread mode if not done before
>> >> >> > mm.setEnablePerThreadChanges(true);
>> >> >> >
>> >> >> (2) > // Load additional object metadata by parsing an repository
>> file
>> >> >> > DescriptorRepository dr_1 =
>> >> >> > mm.readDescriptorRepository("pathOrURLtoFile_1");
>> >> >> > DescriptorRepository dr_2 =
>> >> >> > mm.readDescriptorRepository("pathOrURLtoFile_2");
>> >> >> >
>> >> >> (3) > // add  profiles
>> >> >> > mm.addProfile("global", mm.copyOfGlobalRepository());
>> >> >> > mm.addProfile("guest", dr_1);
>> >> >> > mm.addProfile("admin", dr_2);
>> >> >> >
>> >> >> (4) > // now load a specific profile
>> >> >> > mm.loadProfile("admin");
>> >> >> (5) > broker = PersistenceBrokerFactory.defaultPersistenceBroker
();
>> >> >> >
>> >> >> >
>> >> >> > MetaManager is a singleton i think. so in this case we will
>> have a
>> >> >> > probleme with
>> >> >> > concurence access. if user A loadProfile("guest") and just
after
>> >> >> > loading guest profile another user B (profile admin)
>> >> >> > execute broker =
>> >> PersistenceBrokerFactory.defaultPersistenceBroker();
>> >> >> > so in this situation
>> >> >> > B got a broker with profile admin because MetaManager is a
>> >> singleton.
>> >> >> >
>> >> >> > is right ????
>> >> >>
>> >> >> If each user (thread) use a different broker instance no. All
steps
>> >> from
>> >> >> (1) to (3) have to be done once at startup of your application.
>> >> Thus no
>> >> >> concurrency issues are expected.
>> >> >>
>> >> >> With step (4) the calling thread was associated with a specific
>> >> profile
>> >> >> (using ThreadLocale). This call have to be done for each thread
to
>> >> load
>> >> >> the correct profile. Take care when using thread-pools (think e.g
.
>> >> >> Tomcat use it) to reassign the correct profile for each calling
>> user.
>> >> >> When OJB returns the broker instance (5) the profile for the
>> current
>> >> >> thread was associated.
>> >> >>
>> >> >> In OJB test-suite we test the use of different metadata profiles
in
>> >> >> MetadataMultithreadedTest and never detect problems with this
>> feature.
>> >> >>
>> >> >> Again if user A and B (different threads) use different broker
>> >> instances
>> >> >> no concurrency issues are expected.
>> >> >>
>> >> >> regards,
>> >> >> Armin
>> >> >>
>> >> >>
>> >> >>
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > On 5/24/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>> >> >> >>
>> >> >> >> Hi,
>> >> >> >>
>> >> >> >> ABOU LINA wrote:
>> >> >> >> > Hi;
>> >> >> >> >
>> >> >> >> > i have two mapping file : repository1.xml and
repository2.xml.
>> >> >> >> >
>> >> >> >> > the difference between these two file are the value of
auto-*
>> >> >> >> > [auto-retrieve, auto-update ..] ; at runtime sometimes i
need
>> to
>> >> use
>> >> >> >> > repository1.xml and somtimes the repository2.xml .
>> >> >> >> >
>> >> >> >> > what is the best and optimal  solution  about this conf ???
>> >> >> >> >
>> >> >> >>
>> >> >> >> You can use metadata profiles on per thread base.
>> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>>
http://db.apache.org/ojb/docu/guides/metadata.html#Per+thread+metadata+changes
>>
>> >>
>> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>>
http://db.apache.org/ojb/docu/guides/metadata.html#Object+metadata+profiles
>>
>> >>
>> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> This way you can load a specific metadata profiles
>> >> (repository1.xmlor
>> >> >> >> repository2.xml) for the current thread.
>> >> >> >>
>> >> >> >> Take care of caching issues, e.g. obj1 from rep1 was used in
>> rep2
>> >> >> >> environment will cause undetermined behavior. Thus it's
>> recommended
>> >> to
>> >> >> >> use the two-level cache or only a session based (per broker)
>> cache.
>> >> >> >>
>> >> >> >> regards,
>> >> >> >> Armin
>> >> >> >>
>> >> >> >>
>> >> >> >> > thx in advance
>> >> >> >> >
>> >> >> >>
>> >> >> >>
>> >>
---------------------------------------------------------------------
>> >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >> >
>> >>
>> >>
---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to