Sorry I forgotten...
private Properties loadParameter() {
Properties prop = new Properties();
prop.put("openjpa.ConnectionDriverName",
"org.apache.derby.jdbc.EmbeddedDriver");
prop.put("openjpa.ConnectionURL",
String.format("jdbc:derby:%s\\fita.rcp\\fita.data;create=true"
,
System.getProperty("user.home") ));
prop.put("openjpa.ConnectionUserName", "fita");
prop.put("openjpa.ConnectionPassword", "fita");
prop.put("openjpa.Log", "DefaultLevel=TRACE, SQL=TRACE");
prop.put("openjpa.jdbc.SynchronizeMappings",
"buildSchema");
return prop;
}
Bye Marco
----- Original Message -----
Da : "Marco Schwarz" <[email protected]>
A : [email protected]
Oggetto : re: newbie: null Entity Manager Factory in Eclipse
Data : Mon, 20 Jul 2009 16:16:49 +0200
> Hi,
>
> in a book about RCP I found and use follwing:
>
> private EntityManager getEntityManager() {
>
> ClassLoader contextClassLoader =
> Thread.currentThread().getContextClassLoader();
>
> try {
>
> Thread.currentThread().setContextClassLoader( new
> SupplementalClassLoader(contextClassLoader));
>
> entityManagerFactory =
> Persistence.createEntityManagerFactory(
> "fita-EmbeddedDriver", loadParameter());
>
> entityManager =
> entityManagerFactory.createEntityManager();
>
> } catch (Exception e) {
>
> getLog().log(new Status(IStatus.ERROR, PLUGIN_ID,
> e.getMessage()));
> getLog().log(new Status(IStatus.ERROR, PLUGIN_ID,
> "openJPA not connected, using XML
> PersistanceManager!"));
> } finally {
>
> Thread.currentThread().setContextClassLoader(contextClassL
> oader); }
> return entityManager;
> }
>
> and
>
> private class SupplementalClassLoader extends
> ClassLoader {
>
> private SupplementalClassLoader(ClassLoader
> parent) {
> super(parent);
> }
>
> @Override
> public Enumeration<URL> getResources(String name)
> throws IOException {
>
> final URL[] entries =
> FileLocator.findEntries(getBundle(), new Path(name));
>
> if (entries.length > 0) {
> return new Enumeration<URL>() {
> private int i = 0;
> public boolean hasMoreElements() {
> return i < entries.length;
> }
> public URL nextElement() {
> try {
> return
> FileLocator.resolve(entries[i++]);
> } catch (IOException e) {
> return entries[i-1];
> }
> }
> };
> }
>
> return super.getResources(name);
> }
> }
>
> So the problem with return null was resolved.
>
> Bye
> Marco
>
>
> > Hi,
> > When I run my test as a standalone Java program, things
> > work. When I launch the same code from within a plugin
> > in an Eclipse RCP app,
> > Persistence.createEntityManagerFactory returns null.
> >
> > I have called Persistence.createEntityManagerFactory
> > both ways, with and without persistence.xml. Get null
> > both ways.
> >
> > I have googled and have done everything recommended in
> > those posts, including initializing the factory with
> > properties and making sure the jdbc driver is on the
> > class path. Still get null.
> >
> > I feel I am now going round in circles. Any hints?
> >
> > Thanks, chris
> >
> >
> >
> >