aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-database/src/main/java
diff options
context:
space:
mode:
authorJoakim Erdfelt <joakime@apache.org>2007-05-21 23:01:36 +0000
committerJoakim Erdfelt <joakime@apache.org>2007-05-21 23:01:36 +0000
commitec549451bb1e3c36ec4299d9925378c69ed3b654 (patch)
treefaf9ade9c997bbf2690c5f473317cb234f869690 /archiva-database/src/main/java
parent72be8679efca2a1d5d824d915ae401b13a98af12 (diff)
downloadarchiva-ec549451bb1e3c36ec4299d9925378c69ed3b654.tar.gz
archiva-ec549451bb1e3c36ec4299d9925378c69ed3b654.zip
[MRM-346]: Show Artifact results in error 500.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@540343 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-database/src/main/java')
-rw-r--r--archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java b/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
index 09348d099..4a3938f1d 100644
--- a/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
+++ b/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java
@@ -28,10 +28,16 @@ import org.apache.maven.archiva.database.SimpleConstraint;
import org.apache.maven.archiva.database.constraints.AbstractSimpleConstraint;
import org.apache.maven.archiva.model.CompoundKey;
import org.codehaus.plexus.jdo.JdoFactory;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.jpox.SchemaTool;
+import sun.security.action.GetLongAction;
+
+import java.io.File;
import java.io.PrintStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@@ -59,6 +65,7 @@ import javax.jdo.spi.PersistenceCapable;
* @plexus.component role="org.apache.maven.archiva.database.jdo.JdoAccess" role-hint="archiva"
*/
public class JdoAccess
+ extends AbstractLogEnabled
implements Initializable, InstanceLifecycleListener, StoreLifecycleListener
{
/**
@@ -72,7 +79,25 @@ public class JdoAccess
throws InitializationException
{
pmf = jdoFactory.getPersistenceManagerFactory();
+
+ // Create the schema (if needed)
+ URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) };
+
+ File propsFile = null; // intentional
+ boolean verbose = true;
+
+ try
+ {
+ SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null );
+ }
+ catch ( Exception e )
+ {
+ getLogger().error( "Unable to create schema: " + e.getMessage(), e );
+ }
+
+ pmf.getPersistenceManager();
+ // Add the lifecycle listener.
pmf.addInstanceLifecycleListener( this, null );
}