You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/09/07 20:08:53 UTC

svn commit: r692915 - in /geronimo/server/trunk/plugins/clustering: ./ farming/ farming/src/main/history/ geronimo-deploy-farm/ geronimo-deploy-farm/src/main/java/org/apache/geronimo/farm/config/ geronimo-farm/ geronimo-farm/src/main/java/org/apache/ge...

Author: djencks
Date: Sun Sep  7 11:08:51 2008
New Revision: 692915

URL: http://svn.apache.org/viewvc?rev=692915&view=rev
Log:
GERONIMO-4284 beginnings of plugin based farm management

Added:
    geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/
      - copied from r690853, geronimo/server/trunk/plugins/clustering/geronimo-farm/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/
      - copied from r690853, geronimo/server/trunk/plugins/clustering/geronimo-farm/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java   (with props)
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaClusterInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaNodeInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java   (with props)
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java   (with props)
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml   (with props)
    geronimo/server/trunk/plugins/clustering/plugin-farm/
      - copied from r690853, geronimo/server/trunk/plugins/clustering/farming/
    geronimo/server/trunk/plugins/clustering/plugin-farm-it/
      - copied from r690853, geronimo/server/trunk/plugins/clustering/farming/
    geronimo/server/trunk/plugins/clustering/plugin-farm-it/pom.xml
      - copied, changed from r690859, geronimo/server/trunk/plugins/clustering/farming/pom.xml
    geronimo/server/trunk/plugins/clustering/plugin-farm/pom.xml
      - copied, changed from r690859, geronimo/server/trunk/plugins/clustering/farming/pom.xml
Removed:
    geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/src/main/java/org/apache/geronimo/farm/config/
    geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/deployment/
    geronimo/server/trunk/plugins/clustering/geronimo-farm/src/test/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/BasicClusterInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfoEditor.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/ClusterInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/config/NodeInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/deployment/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/test/java/org/apache/geronimo/farm/deployment/
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/test/resources/folderToZip/
    geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/resources/
Modified:
    geronimo/server/trunk/plugins/clustering/farming/pom.xml
    geronimo/server/trunk/plugins/clustering/farming/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/pom.xml
    geronimo/server/trunk/plugins/clustering/geronimo-farm/pom.xml
    geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java
    geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/pom.xml
    geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/plan/plan.xml
    geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/history/dependencies.xml
    geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/plan/plan.xml
    geronimo/server/trunk/plugins/clustering/pom.xml

Modified: geronimo/server/trunk/plugins/clustering/farming/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/farming/pom.xml?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/farming/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/farming/pom.xml Sun Sep  7 11:08:51 2008
@@ -68,7 +68,7 @@
 
         <dependency>
             <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-farm</artifactId>
+            <artifactId>geronimo-deploy-farm</artifactId>
             <version>${version}</version>
         </dependency>
     </dependencies>

Modified: geronimo/server/trunk/plugins/clustering/farming/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/farming/src/main/history/dependencies.xml?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/farming/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/plugins/clustering/farming/src/main/history/dependencies.xml Sun Sep  7 11:08:51 2008
@@ -22,6 +22,11 @@
         <type>car</type>
     </dependency>
     <dependency>
+        <groupId>org.apache.geronimo.modules</groupId>
+        <artifactId>geronimo-deploy-farm</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
         <groupId>org.apache.geronimo.framework</groupId>
         <artifactId>plugin</artifactId>
         <type>car</type>

Modified: geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/pom.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-deploy-farm/pom.xml Sun Sep  7 11:08:51 2008
@@ -29,11 +29,16 @@
     </parent>
     
     <groupId>org.apache.geronimo.modules</groupId>
-    <artifactId>geronimo-farm</artifactId>
+    <artifactId>geronimo-deploy-farm</artifactId>
     <name>Geronimo Plugins, Clustering :: Farm</name>
     
     <dependencies>
         <dependency>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-farm</artifactId>
+            <version>${version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.geronimo.framework</groupId>
             <artifactId>geronimo-deploy-jsr88</artifactId>
             <version>${version}</version>

Modified: geronimo/server/trunk/plugins/clustering/geronimo-farm/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-farm/pom.xml?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-farm/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-farm/pom.xml Sun Sep  7 11:08:51 2008
@@ -33,17 +33,6 @@
     <name>Geronimo Plugins, Clustering :: Farm</name>
     
     <dependencies>
-        <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-deploy-jsr88</artifactId>
-            <version>${version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-j2ee</artifactId>
-            <version>${version}</version>
-        </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>

Modified: geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicExtendedJMXConnectorInfo.java Sun Sep  7 11:08:51 2008
@@ -20,10 +20,21 @@
 package org.apache.geronimo.farm.config;
 
 import java.io.Serializable;
+import java.io.IOException;
 import java.net.InetSocketAddress;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Collections;
+
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+import javax.management.MBeanServerConnection;
 
 import org.apache.geronimo.deployment.service.DoNotPersist;
 import org.apache.geronimo.deployment.service.EncryptOnPersist;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.system.jmx.KernelDelegate;
 
 /**
  *
@@ -37,7 +48,20 @@
     private int port = -1;
     private String urlPath;
     private boolean local;
-    
+
+    public BasicExtendedJMXConnectorInfo() {
+    }
+
+    public BasicExtendedJMXConnectorInfo(String username, String password, String protocol, String host, int port, String urlPath, boolean local) {
+        this.username = username;
+        this.password = password;
+        this.protocol = protocol;
+        this.host = host;
+        this.port = port;
+        this.urlPath = urlPath;
+        this.local = local;
+    }
+
     public String getHost() {
         return host;
     }
@@ -100,4 +124,25 @@
         this.local = local;
     }
 
+    public JMXConnector connect() throws IOException {
+        String url = getJmxURI();
+
+        Map<String, ?> environment = Collections.singletonMap("jmx.remote.credentials",
+            new String[] {getUsername(), getPassword()});
+
+        return JMXConnectorFactory.connect(new JMXServiceURL(url), environment);
+    }
+
+    public Kernel newKernel(JMXConnector jmxConnector) throws IOException {
+        MBeanServerConnection mbServerConnection = jmxConnector.getMBeanServerConnection();
+        return new KernelDelegate(mbServerConnection);
+    }
+
+    protected String getJmxURI() {
+        return "service:jmx:rmi://" + getHost() + "/jndi/"
+                        + getProtocol() + "://" + getHost() + ":"
+                        + getPort() + "/" + getUrlPath();
+
+    }
+
 }

Modified: geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/BasicNodeInfo.java Sun Sep  7 11:08:51 2008
@@ -70,24 +70,11 @@
         if (connectorInfo.isLocal()) {
             return kernel;
         }
-        
-        String url = "service:jmx:rmi://" + connectorInfo.getHost() + "/jndi/"
-                        + connectorInfo.getProtocol() + "://" + connectorInfo.getHost() + ":"
-                        + connectorInfo.getPort() + "/" + connectorInfo.getUrlPath();
-
-        Map environment = new HashMap();
-        environment.put("jmx.remote.credentials",
-            new String[] {connectorInfo.getUsername(), connectorInfo.getPassword()});
-
-        return newKernel(url, environment);
+        JMXConnector jmxConnector = connectorInfo.connect();
+        return connectorInfo.newKernel(jmxConnector);
+        //TODO close the connection eventually?
     }
 
-    protected Kernel newKernel(String url, Map environment) throws IOException {
-        JMXConnector jmxConnector = JMXConnectorFactory.connect(new JMXServiceURL(url), environment);
-        MBeanServerConnection mbServerConnection = jmxConnector.getMBeanServerConnection();
-        return new KernelDelegate(mbServerConnection);
-    }
-    
     public static final String GBEAN_ATTR_NODE_NAME = "name";
     public static final String GBEAN_ATTR_EXT_JMX_CONN_INFO = "extendedJMXConnectorInfo";
 }

Modified: geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-farm/src/main/java/org/apache/geronimo/farm/config/ExtendedJMXConnectorInfo.java Sun Sep  7 11:08:51 2008
@@ -20,8 +20,12 @@
 package org.apache.geronimo.farm.config;
 
 import java.io.Serializable;
+import java.io.IOException;
+
+import javax.management.remote.JMXConnector;
 
 import org.apache.geronimo.jmxremoting.JMXConnectorInfo;
+import org.apache.geronimo.kernel.Kernel;
 
 /**
  *
@@ -39,4 +43,8 @@
     boolean isLocal();
 
     void setLocal(boolean local);
+
+    JMXConnector connect() throws IOException;
+
+    Kernel newKernel(JMXConnector jmxConnector) throws IOException;
 }

Modified: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/pom.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/pom.xml Sun Sep  7 11:08:51 2008
@@ -27,36 +27,70 @@
         <artifactId>clustering</artifactId>
         <version>2.2-SNAPSHOT</version>
     </parent>
-    
+
     <groupId>org.apache.geronimo.modules</groupId>
-    <artifactId>geronimo-farm</artifactId>
+    <artifactId>geronimo-plugin-farm</artifactId>
     <name>Geronimo Plugins, Clustering :: Farm</name>
-    
+
     <dependencies>
         <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-deploy-jsr88</artifactId>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-farm</artifactId>
             <version>${version}</version>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-j2ee</artifactId>
+            <groupId>org.apache.geronimo.configs</groupId>
+            <artifactId>openjpa</artifactId>
             <version>${version}</version>
+            <type>car</type>
         </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-jmx-remoting</artifactId>
+            <artifactId>geronimo-plugin</artifactId>
             <version>${version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>geronimo-service-builder</artifactId>
+            <artifactId>geronimo-jmx-remoting</artifactId>
             <version>${version}</version>
         </dependency>
+
     </dependencies>
-    
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-antrun-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <configuration>
+                            <tasks>
+                                <path id="cp">
+                                    <!--<path refid="maven.test.classpath"/>-->
+                                    <path refid="maven.compile.classpath"/>
+                                    <path refid="maven.dependency.classpath"
+                                            />
+                                </path>
+                                <java
+
+                                        classname="org.apache.openjpa.enhance.PCEnhancer"
+                                        classpathref="cp"
+                                        dir="target/classes" fork="true">
+                                </java>
+                            </tasks>
+                        </configuration>
+                        <goals>
+                            <goal>run</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
 </project>
 

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java Sun Sep  7 11:08:51 2008
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.farm.plugin;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.NoResultException;
+import javax.persistence.Query;
+
+import org.apache.geronimo.farm.config.NodeInfo;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamReference;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.persistence.PersistenceUnitGBean;
+import org.apache.geronimo.system.plugin.DownloadResults;
+import org.apache.geronimo.system.plugin.PluginInstaller;
+import org.apache.geronimo.system.plugin.model.PluginListType;
+
+/**
+ * //need interface for operations
+ * // need gshell commands
+ *
+ * @version $Rev:$ $Date:$
+ */
+@GBean
+public class FarmGBean {
+    private String defaultRepository;
+    private EntityManagerFactory emf;
+
+    public FarmGBean(String defaultPluginRepository, EntityManagerFactory emf) {
+        this.defaultRepository = defaultPluginRepository;
+        this.emf = emf;
+    }
+
+    public FarmGBean(@ParamAttribute(name="defaultPluginRepository") String defaultPluginRepository,
+            @ParamReference(name = "PersistenceUnit", namingType = NameFactory.PERSISTENCE_UNIT)PersistenceUnitGBean persistenceUnitGBean) {
+        this.defaultRepository = defaultPluginRepository;
+        this.emf = persistenceUnitGBean.getEntityManagerFactory();
+    }
+
+    public Map<String, DownloadResults> addNode(String clusterName, NodeInfo nodeInfo) {
+        JpaContext clusterContext = new JpaContext(emf);
+        JpaClusterInfo cluster = clusterContext.getClusterInfo(clusterName);
+        JpaNodeInfo jpaNodeInfo = new JpaNodeInfo(nodeInfo);
+        cluster.getJpaNodeInfos().add(jpaNodeInfo);
+        //persist node info?
+        clusterContext.close();
+        Map<String, DownloadResults> installedPluginLists = new HashMap<String, DownloadResults>();
+        for (JpaPluginList pluginList : cluster.getPluginLists()) {
+            DownloadResults downloadResults = installToNode(pluginList, jpaNodeInfo);
+            installedPluginLists.put(pluginList.getName(), downloadResults);
+        }
+        return installedPluginLists;
+    }
+
+    public void removeNode(String clusterName, String nodeName) {
+        //TODO
+    }
+
+    public Map<String, DownloadResults> addPluginList(String clusterName, JpaPluginList pluginList) {
+        JpaContext clusterContext = new JpaContext(emf);
+        JpaClusterInfo cluster = clusterContext.getClusterInfo(clusterName);
+        cluster.getPluginLists().add(pluginList);
+        clusterContext.close();
+        return installToCluster(pluginList, cluster);
+    }
+
+    public Map<String, DownloadResults> addPluginList(String clusterName, String pluginListName) {
+        JpaContext clusterContext = new JpaContext(emf);
+        JpaClusterInfo cluster = clusterContext.getClusterInfo(clusterName);
+        JpaPluginList pluginList = clusterContext.getPluginList(pluginListName, defaultRepository);
+        cluster.getPluginLists().add(pluginList);
+        clusterContext.close();
+        return installToCluster(pluginList, cluster);
+    }
+
+    public Map<String, DownloadResults> addPlugin(String pluginListName, JpaPluginInstance pluginInstance) {
+        JpaContext pluginListContext = new JpaContext(emf);
+        JpaPluginList pluginList = pluginListContext.getPluginList(pluginListName, defaultRepository);
+        pluginList.getPlugins().add(pluginInstance);
+        pluginListContext.close();
+        return installToClusters(pluginList);
+    }
+
+    public Map<String, DownloadResults> addPluginToCluster(String clusterName, String pluginListName, JpaPluginInstance pluginInstance) {
+        JpaContext clusterContext = new JpaContext(emf);
+        JpaClusterInfo cluster = clusterContext.getClusterInfo(clusterName);
+        JpaPluginList pluginList = getPluginList(cluster, pluginListName);
+        pluginList.getPlugins().add(pluginInstance);
+        clusterContext.close();
+        return installToClusters(pluginList);
+    }
+
+    private Map<String, DownloadResults> installToClusters(JpaPluginList pluginList) {
+        Map<String, DownloadResults> results = new HashMap<String, DownloadResults>();
+        for (JpaClusterInfo cluster : pluginList.getClusters()) {
+            results.putAll(installToCluster(pluginList, cluster));
+        }
+        return results;
+    }
+
+    private Map<String, DownloadResults> installToCluster(JpaPluginList pluginList, JpaClusterInfo cluster) {
+        Map<String, DownloadResults> installedNodes = new HashMap<String, DownloadResults>();
+        for (JpaNodeInfo jpaNodeInfo : cluster.getJpaNodeInfos()) {
+            DownloadResults downloadResults = installToNode(pluginList, jpaNodeInfo);
+            installedNodes.put(jpaNodeInfo.getName(), downloadResults);
+        }
+        return installedNodes;
+    }
+
+    private DownloadResults installToNode(JpaPluginList jpaPluginList, JpaNodeInfo jpaNodeInfo) {
+        try {
+            PluginInstaller pluginInstaller = jpaNodeInfo.getPluginInstaller();
+            PluginListType pluginList = jpaPluginList.getPluginList();
+            //TODO parameterize restrictToDefaultRepository
+            return pluginInstaller.install(pluginList, defaultRepository, false, null, null);
+        } catch (IOException e) {
+            DownloadResults downloadResults = new DownloadResults();
+            downloadResults.setFailure(e);
+            return downloadResults;
+        }
+    }
+
+
+    private JpaPluginList getPluginList(JpaClusterInfo cluster, String pluginListName) {
+        for (JpaPluginList pluginList : cluster.getPluginLists()) {
+            if (pluginList.getName().equals(pluginListName)) {
+                return pluginList;
+            }
+        }
+        JpaPluginList pluginList = new JpaPluginList();
+        pluginList.setName(pluginListName);
+        pluginList.setDefaultPluginRepository(defaultRepository);
+        cluster.getPluginLists().add(pluginList);
+        return pluginList;
+    }
+
+
+    static class JpaContext {
+        private EntityManager em;
+        private EntityTransaction entityTransaction;
+
+        JpaContext(EntityManagerFactory emf) {
+            em = emf.createEntityManager();
+            entityTransaction = em.getTransaction();
+            entityTransaction.begin();
+        }
+
+        public JpaClusterInfo getClusterInfo(String clusterName) {
+            Query query = em.createNamedQuery("clusterByName");
+            query.setParameter("name", clusterName);
+            try {
+                return (JpaClusterInfo) query.getSingleResult();
+            } catch (NoResultException e) {
+                JpaClusterInfo clusterInfo = new JpaClusterInfo();
+                clusterInfo.setName(clusterName);
+                em.persist(clusterInfo);
+                return clusterInfo;
+            }
+        }
+
+        public JpaPluginList getPluginList(String name, String defaultRepository) {
+            Query query = em.createNamedQuery("pluginListByName");
+            query.setParameter("name", name);
+            try {
+                return (JpaPluginList) query.getSingleResult();
+            } catch (NoResultException e) {
+                JpaPluginList pluginList = new JpaPluginList();
+                pluginList.setName(name);
+                pluginList.setDefaultPluginRepository(defaultRepository);
+                em.persist(pluginList);
+                return pluginList;
+            }
+        }
+
+        public void close() {
+            entityTransaction.commit();
+            em.close();
+        }
+    }
+
+}

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/FarmGBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaClusterInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaClusterInfo.java?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaClusterInfo.java (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaClusterInfo.java Sun Sep  7 11:08:51 2008
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.farm.plugin;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.ArrayList;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.ManyToMany;
+import javax.persistence.CascadeType;
+import javax.persistence.FetchType;
+
+import org.apache.geronimo.farm.config.ClusterInfo;
+import org.apache.geronimo.farm.config.NodeInfo;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@Entity(name="cluster")
+@NamedQueries( {
+        @NamedQuery(name = "clusterByName", query = "SELECT a FROM cluster a WHERE a.name = :name")}
+)
+public class JpaClusterInfo implements ClusterInfo {
+
+    @Id
+    private String name;
+    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE},
+    fetch = FetchType.EAGER)
+    private List<JpaNodeInfo> nodes = new ArrayList<JpaNodeInfo>();
+
+    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+    mappedBy = "clusters",
+    fetch = FetchType.EAGER)
+    private List<JpaPluginList> pluginLists = new ArrayList<JpaPluginList>();
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Collection<NodeInfo> getNodeInfos() {
+        return new ArrayList(nodes);
+    }
+
+    public List<JpaPluginList> getPluginLists() {
+        return pluginLists;
+    }
+
+    public List<JpaNodeInfo> getJpaNodeInfos() {
+        return nodes;
+    }
+}

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaNodeInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaNodeInfo.java?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaNodeInfo.java (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaNodeInfo.java Sun Sep  7 11:08:51 2008
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.geronimo.farm.plugin;
+
+import java.io.IOException;
+import java.util.Set;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Transient;
+import javax.management.remote.JMXConnector;
+
+import org.apache.geronimo.farm.config.ExtendedJMXConnectorInfo;
+import org.apache.geronimo.farm.config.NodeInfo;
+import org.apache.geronimo.farm.config.BasicExtendedJMXConnectorInfo;
+import org.apache.geronimo.gbean.AbstractName;
+import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.KernelRegistry;
+import org.apache.geronimo.system.plugin.PluginInstaller;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@Entity
+public class JpaNodeInfo implements NodeInfo {
+    @Id
+    private int id;
+    private String name;
+    private String userName;
+    private String password;
+    private String protocol;
+    private String host;
+    private int port = -1;
+    private String urlPath;
+    private boolean local;
+
+    @Transient
+    private Kernel kernel;
+    @Transient
+    private PluginInstaller pluginInstaller;
+    @Transient
+    private JMXConnector jmxConnector;
+
+    public JpaNodeInfo() {
+    }
+
+    public JpaNodeInfo(NodeInfo nodeInfo) {
+        this.name = nodeInfo.getName();
+        ExtendedJMXConnectorInfo connectorInfo = nodeInfo.getConnectorInfo();
+        userName = connectorInfo.getUsername();
+        password = connectorInfo.getPassword();
+        protocol = connectorInfo.getProtocol();
+        host = connectorInfo.getHost();
+        port = connectorInfo.getPort();
+        urlPath = connectorInfo.getUrlPath();
+        local = connectorInfo.isLocal();
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public ExtendedJMXConnectorInfo getConnectorInfo() {
+        return new BasicExtendedJMXConnectorInfo(userName,  password,  protocol,  host,  port,  urlPath, local);
+    }
+
+    public void setConnectorInfo(String userName, String password, String protocol, String host, int port, String urlPath, boolean local) {
+        this.userName = userName;
+        this.password = password;
+        this.protocol = protocol;
+        this.host = host;
+        this.port = port;
+        this.urlPath = urlPath;
+        this.local = local;
+    }
+
+    public Kernel newKernel() throws IOException {
+        if (kernel == null) {
+            if (local) {
+                kernel = KernelRegistry.getSingleKernel();
+            } else {
+                ExtendedJMXConnectorInfo connectorInfo = getConnectorInfo();
+                jmxConnector = connectorInfo.connect();
+                return connectorInfo.newKernel(jmxConnector);
+            }
+        }
+        return kernel;
+    }
+
+    public synchronized PluginInstaller getPluginInstaller() throws IOException {
+        if (pluginInstaller != null) {
+            return pluginInstaller;
+        }
+        Kernel kernel = newKernel();
+        Set<AbstractName> set = kernel.listGBeans(new AbstractNameQuery(PluginInstaller.class.getName()));
+        for (AbstractName name : set) {
+            pluginInstaller = (PluginInstaller) kernel.getProxyManager().createProxy(name, PluginInstaller.class);
+            return pluginInstaller;
+        }
+        throw new IllegalStateException("No plugin installer found");
+    }
+
+    public synchronized void disconnect() throws IOException {
+        if (kernel != null) {
+            if (pluginInstaller != null) {
+                kernel.getProxyManager().destroyProxy(pluginInstaller);
+                pluginInstaller = null;
+            }
+            if (!local) {
+                jmxConnector.close();
+                jmxConnector = null;
+            }
+            kernel = null;
+        }
+    }
+
+}

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java Sun Sep  7 11:08:51 2008
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.farm.plugin;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+import org.apache.geronimo.system.plugin.model.PluginType;
+import org.apache.geronimo.system.plugin.model.PluginArtifactType;
+import org.apache.geronimo.system.plugin.model.ArtifactType;
+import org.apache.geronimo.kernel.repository.Artifact;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@Entity
+public class JpaPluginInstance {
+
+    @Id
+    private int id;
+    private String groupId;
+    private String artifactId;
+    private String version;
+    private String type;
+
+    public JpaPluginInstance() {
+    }
+
+    public JpaPluginInstance(String groupId, String artifactId, String version, String type) {
+        this.groupId = groupId;
+        this.artifactId = artifactId;
+        this.version = version;
+        this.type = type;
+    }
+
+    public JpaPluginInstance(String artifactUri) {
+        Artifact artifact = Artifact.create(artifactUri);
+        this.groupId = artifact.getGroupId();
+        this.artifactId = artifact.getArtifactId();
+        this.version = artifact.getVersion().toString();
+        this.type = artifact.getType();
+    }
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public String getArtifactId() {
+        return artifactId;
+    }
+
+    public void setArtifactId(String artifactId) {
+        this.artifactId = artifactId;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public PluginType getPlugin() {
+        PluginType plugin = new PluginType();
+        PluginArtifactType pluginArtifact = new PluginArtifactType();
+        ArtifactType artifact = new ArtifactType();
+        artifact.setGroupId(groupId);
+        artifact.setArtifactId(artifactId);
+        artifact.setVersion(version);
+        artifact.setType(type);
+        pluginArtifact.setModuleId(artifact);
+        plugin.getPluginArtifact().add(pluginArtifact);
+        return plugin;
+    }
+
+    public String toString() {
+        return groupId + "/" + artifactId + "/" + version + "/" + type;
+    }
+}

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginInstance.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java Sun Sep  7 11:08:51 2008
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.farm.plugin;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import javax.persistence.CascadeType;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.FetchType;
+
+import org.apache.geronimo.system.plugin.model.PluginListType;
+import org.apache.geronimo.system.plugin.model.PluginType;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+@Entity(name="pluginlist")
+@NamedQueries( {
+        @NamedQuery(name = "pluginListByName", query = "SELECT a FROM pluginlist a WHERE a.name = :name")}
+)
+public class JpaPluginList {
+    @Id
+    private String name;
+    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+    fetch = FetchType.EAGER)
+    private List<JpaPluginInstance> plugins = new ArrayList<JpaPluginInstance>();
+    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+    private List<JpaClusterInfo> clusters = new ArrayList<JpaClusterInfo>();
+    private String defaultPluginRepository;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<JpaPluginInstance> getPlugins() {
+        return plugins;
+    }
+
+    public void setPlugins(List<JpaPluginInstance> plugins) {
+        this.plugins = plugins;
+    }
+
+    public List<JpaClusterInfo> getClusters() {
+        return clusters;
+    }
+
+    public void setClusters(List<JpaClusterInfo> clusters) {
+        this.clusters = clusters;
+    }
+
+    public String getDefaultPluginRepository() {
+        return defaultPluginRepository;
+    }
+
+    public void setDefaultPluginRepository(String defaultPluginRepository) {
+        this.defaultPluginRepository = defaultPluginRepository;
+    }
+
+    public PluginListType getPluginList() {
+        PluginListType pluginList = new PluginListType();
+        List<PluginType> plugins = pluginList.getPlugin();
+        for (JpaPluginInstance pluginInstance: this.plugins) {
+            PluginType plugin = pluginInstance.getPlugin();
+            plugins.add(plugin);
+        }
+        if (defaultPluginRepository != null) {
+            pluginList.getDefaultRepository().add(defaultPluginRepository);
+        }
+        return pluginList;
+    }
+}

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/java/org/apache/geronimo/farm/plugin/JpaPluginList.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml?rev=692915&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml (added)
+++ geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml Sun Sep  7 11:08:51 2008
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+    <persistence-unit name="FarmPersistence">
+        <description>Entity Beans for FarmPersistence</description>
+        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+        <jta-data-source>SystemTxDatasource</jta-data-source>
+        <non-jta-data-source>NoTxDatasource</non-jta-data-source>
+        <class>org.apache.geronimo.farm.plugin.JpaClusterInfo</class>
+        <class>org.apache.geronimo.farm.plugin.JpaNodeInfo</class>
+        <class>org.apache.geronimo.farm.plugin.JpaPluginInstance</class>
+        <class>org.apache.geronimo.farm.plugin.JpaPluginList</class>
+        <properties>
+            <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
+        </properties>
+    </persistence-unit>
+</persistence>

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/clustering/geronimo-plugin-farm/src/main/resources/META-INF/persistence.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Copied: geronimo/server/trunk/plugins/clustering/plugin-farm-it/pom.xml (from r690859, geronimo/server/trunk/plugins/clustering/farming/pom.xml)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm-it/pom.xml?p2=geronimo/server/trunk/plugins/clustering/plugin-farm-it/pom.xml&p1=geronimo/server/trunk/plugins/clustering/farming/pom.xml&r1=690859&r2=692915&rev=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/farming/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm-it/pom.xml Sun Sep  7 11:08:51 2008
@@ -29,8 +29,8 @@
     </parent>
     
     <groupId>org.apache.geronimo.configs</groupId>
-    <artifactId>farming</artifactId>
-    <name>Geronimo Plugins, Clustering :: Farming</name>
+    <artifactId>plugin-farm-it</artifactId>
+    <name>Geronimo Plugins, Clustering :: Plugin Farm Integration Tests</name>
     <packaging>car</packaging>
 
     <description>
@@ -43,37 +43,197 @@
             <artifactId>geronimo-gbean-deployer</artifactId>
             <version>${version}</version>
             <type>car</type>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>plugin</artifactId>
-            <version>${version}</version>
-            <type>car</type>
+            <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.configs</groupId>
-            <artifactId>j2ee-server</artifactId>
+            <artifactId>plugin-farm</artifactId>
             <version>${version}</version>
             <type>car</type>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>j2ee-security</artifactId>
-            <version>${version}</version>
-            <type>car</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-farm</artifactId>
-            <version>${version}</version>
-        </dependency>
     </dependencies>
 
     <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.geronimo.buildsupport</groupId>
+                    <artifactId>geronimo-maven-plugin</artifactId>
+                    <version>${version}</version>
+                    <!--<version>${geronimoVersion}</version>-->
+
+                    <configuration>
+                        <assemblies>
+                            <assembly>
+                                <id>jetty</id>
+                                <groupId>org.apache.geronimo.assemblies</groupId>
+                                <artifactId>geronimo-jetty6-javaee5</artifactId>
+                                <version>${geronimoVersion}</version>
+                                <classifier>bin</classifier>
+                                <type>zip</type>
+                            </assembly>
+
+                            <assembly>
+                                <id>jetty-minimal</id>
+                                <groupId>org.apache.geronimo.assemblies</groupId>
+                                <artifactId>geronimo-jetty6-minimal</artifactId>
+                                <version>${geronimoVersion}</version>
+                                <classifier>bin</classifier>
+                                <type>zip</type>
+                            </assembly>
+
+                            <assembly>
+                                <id>tomcat</id>
+                                <groupId>org.apache.geronimo.assemblies</groupId>
+                                <artifactId>geronimo-tomcat6-javaee5</artifactId>
+                                <version>${geronimoVersion}</version>
+                                <classifier>bin</classifier>
+                                <type>zip</type>
+                            </assembly>
+
+                            <assembly>
+                                <id>tomcat-minimal</id>
+                                <groupId>org.apache.geronimo.assemblies</groupId>
+                                <artifactId>geronimo-tomcat6-minimal</artifactId>
+                                <version>${geronimoVersion}</version>
+                                <classifier>bin</classifier>
+                                <type>zip</type>
+                            </assembly>
+
+                            <assembly>
+                                <id>framework</id>
+                                <groupId>org.apache.geronimo.assemblies</groupId>
+                                <artifactId>geronimo-framework</artifactId>
+                                <version>${geronimoVersion}</version>
+                                <classifier>bin</classifier>
+                                <type>zip</type>
+                            </assembly>
+                        </assemblies>
+
+                        <defaultAssemblyId>framework</defaultAssemblyId>
+                        <!--<defaultAssemblyId>jetty</defaultAssemblyId>-->
+
+                        <optionSets>
+                            <optionSet>
+                                <id>morememory</id>
+                                <options>
+                                    <option>-Xmx512m</option>
+                                    <option>-XX:MaxPermSize=128m</option>
+                                </options>
+                            </optionSet>
+
+                            <optionSet>
+                                <id>debug</id>
+                                <options>
+                                    <option>-Xdebug</option>
+                                    <option>-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</option>
+                                </options>
+                            </optionSet>
+                        </optionSets>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <id>start</id>
+                            <phase>pre-integration-test</phase>
+                            <goals>
+                                <goal>start-server</goal>
+                            </goals>
+                            <configuration>
+                                <assemblyId>${it-server}</assemblyId>
+                                <logOutput>true</logOutput>
+                                <background>true</background>
+                                <verifyTimeout>300</verifyTimeout>
+                                <refresh>true</refresh>
+                                <optionSets>
+                                    <optionSet>
+                                        <id>default</id>
+                                        <options>
+                                            <option>-XX:MaxPermSize=128m</option>
+                                            <!--<option>-Xdebug</option>-->
+                                            <!--<option>-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</option>-->
+                                        </options>
+                                    </optionSet>
+
+                                    <optionSet>
+                                        <id>morememory</id>
+                                        <options>
+                                            <option>-Xmx512m</option>
+                                            <option>-XX:MaxPermSize=128m</option>
+                                        </options>
+                                    </optionSet>
+
+                                    <optionSet>
+                                        <id>debug</id>
+                                        <options>
+                                            <option>-Xdebug</option>
+                                            <option>-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</option>
+                                        </options>
+                                    </optionSet>
+                                </optionSets>
+                            </configuration>
+                        </execution>
+                        <execution>
+                            <id>start-farm</id>
+                            <phase>pre-integration-test</phase>
+                            <goals>
+                                <goal>start-multi-server</goal>
+                            </goals>
+                            <configuration>
+                                <assemblyId>${it-server}</assemblyId>
+                                <logOutput>true</logOutput>
+                                <background>true</background>
+                                <verifyTimeout>300</verifyTimeout>
+                                <refresh>true</refresh>
+                                <count>2</count>
+                                <optionSets>
+                                    <optionSet>
+                                        <id>default</id>
+                                        <options>
+                                            <option>-XX:MaxPermSize=128m</option>
+                                        </options>
+                                    </optionSet>
+
+                                    <optionSet>
+                                        <id>morememory</id>
+                                        <options>
+                                            <option>-Xmx512m</option>
+                                            <option>-XX:MaxPermSize=128m</option>
+                                        </options>
+                                    </optionSet>
+
+                                    <!--<optionSet>-->
+                                    <!--<id>debug</id>-->
+                                    <!--<options>-->
+                                    <!--<option>-Xdebug</option>-->
+                                    <!--<option>-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</option>-->
+                                    <!--</options>-->
+                                    <!--</optionSet>-->
+                                </optionSets>
+                            </configuration>
+                        </execution>
+                        <execution>
+                            <id>install-plugin</id>
+                            <phase>install</phase>
+                            <goals>
+                                <goal>install-plugin</goal>
+                            </goals>
+                            <!--<configuration>-->
+                            <!--<defaultGeronimoRepository>http://geronimo.apache.org/plugins/geronimo-${geronimoVersion}/</defaultGeronimoRepository>-->
+                            <!--</configuration>-->
+                        </execution>
+                        <execution>
+                            <id>stop</id>
+                            <phase>install</phase>
+                            <goals>
+                                <goal>stop-server</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
         <plugins>
             <plugin>
                 <groupId>org.apache.geronimo.buildsupport</groupId>
@@ -81,23 +241,13 @@
                 <configuration>
                     <category>Clustering</category>
                     <instance>
-                        <plugin-artifact>
-                            <copy-file relative-to="geronimo" dest-dir="farming">cluster-repository</copy-file>
-                            <copy-file relative-to="geronimo" dest-dir="farming">master-repository</copy-file>
-                            <config-xml-content load="false">
-                                <gbean name="NodeInfo">
-                                    <attribute name="name">#{clusterNodeName}</attribute>
-                                </gbean>
-                                <gbean name="ClusterInfo">
-                                    <attribute name="name">#{clusterName}</attribute>
-                                </gbean>
-                            </config-xml-content>
-                            <config-substitution key="clusterNodeName">NODE</config-substitution>
-                            <config-substitution key="clusterName">CLUSTER_NAME</config-substitution>
-                        </plugin-artifact>
                     </instance>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.geronimo.buildsupport</groupId>
+                <artifactId>geronimo-maven-plugin</artifactId>
+            </plugin>
         </plugins>
     </build>
 

Modified: geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/history/dependencies.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/history/dependencies.xml Sun Sep  7 11:08:51 2008
@@ -2,33 +2,13 @@
 <plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.configs</groupId>
-        <artifactId>farming</artifactId>
+        <artifactId>plugin-farm-it</artifactId>
         <version>2.2-SNAPSHOT</version>
         <type>car</type>
     </module-id>
     <dependency>
-        <groupId>org.apache.geronimo.modules</groupId>
-        <artifactId>geronimo-farm</artifactId>
-        <type>jar</type>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.geronimo.framework</groupId>
-        <artifactId>j2ee-security</artifactId>
-        <type>car</type>
-    </dependency>
-    <dependency>
         <groupId>org.apache.geronimo.configs</groupId>
-        <artifactId>j2ee-server</artifactId>
-        <type>car</type>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.geronimo.framework</groupId>
-        <artifactId>plugin</artifactId>
-        <type>car</type>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.geronimo.framework</groupId>
-        <artifactId>geronimo-gbean-deployer</artifactId>
+        <artifactId>plugin-farm</artifactId>
         <type>car</type>
     </dependency>
 </plugin-artifact>

Modified: geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/plan/plan.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/plan/plan.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm-it/src/main/plan/plan.xml Sun Sep  7 11:08:51 2008
@@ -20,78 +20,13 @@
 
 <module xmlns="http://geronimo.apache.org/xml/ns/deployment-${geronimoSchemaVersion}">
 
-    <gbean name="MasterRepository" class="org.apache.geronimo.system.repository.Maven2Repository">
-        <attribute name="root">farming/master-repository/</attribute>
-        <reference name="ServerInfo">
-            <name>ServerInfo</name>
+    <gbean name="test" class="org.apache.geronimo.farm.plugin.TestGBean">
+        <reference name="PersistenceUnit">
+            <name>FarmPersistence</name>
         </reference>
-    </gbean>
-
-    <gbean name="MasterConfigurationStore" class="org.apache.geronimo.farm.deployment.MasterConfigurationStore">
-        <xml-attribute name="defaultEnvironment">
-            <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-${geronimoSchemaVersion}">
-                <dependencies>
-                    <dependency>
-                        <groupId>${pom.groupId}</groupId>
-                        <artifactId>farming</artifactId>
-                        <type>car</type>
-                    </dependency>
-                </dependencies>
-            </environment>
-        </xml-attribute>
-        <reference name="Repository">
-            <name>MasterRepository</name>
-        </reference>
-        <reference name="ClusterInfo">
-            <name>ClusterInfo</name>
-        </reference>
-        <reference name="ClusterConfigurationStoreClient">
-            <name>ClusterConfigurationStoreClient</name>
-        </reference>
-    </gbean>
-
-    <gbean name="ClusterConfigurationStoreClient" class="org.apache.geronimo.farm.deployment.BasicClusterConfigurationStoreClient">
-        <attribute name="clusterConfigurationStoreNameQuery">?name=ClusterConfigurationStore</attribute>
-    </gbean>
-
-    <gbean name="ClusterRepository" class="org.apache.geronimo.system.repository.Maven2Repository">
-        <attribute name="root">farming/cluster-repository/</attribute>
-        <reference name="ServerInfo">
-            <name>ServerInfo</name>
+        <reference name="FarmGBean">
+            <name>PluginFarm</name>
         </reference>
     </gbean>
 
-    <gbean name="ClusterStore" class="org.apache.geronimo.system.configuration.RepositoryConfigurationStore">
-        <reference name="Repository">
-            <name>ClusterRepository</name>
-        </reference>
-    </gbean>
-
-    <gbean name="ClusterConfigurationStore" class="org.apache.geronimo.farm.deployment.BasicClusterConfigurationStore">
-        <reference name="ConfigurationStore">
-            <name>ClusterStore</name>
-        </reference>
-    </gbean>
-
-    <!-- Static Cluster Configuration -->
-    <gbean name="ClusterInfo" class="org.apache.geronimo.farm.config.BasicClusterInfo">
-        <attribute name="name">${PlanClusterName}</attribute>
-        <reference name="NodeInfos"></reference>
-    </gbean>
-
-    <gbean name="NodeInfo" class="org.apache.geronimo.farm.config.BasicNodeInfo">
-          <attribute name="name">${PlanClusterNodeName}</attribute>
-          <xml-attribute name="extendedJMXConnectorInfo">
-              <ns:javabean xmlns:ns="http://geronimo.apache.org/xml/ns/deployment/javabean-1.0" class="org.apache.geronimo.farm.config.BasicExtendedJMXConnectorInfo">
-                  <ns:property name="username">system</ns:property>
-                  <ns:property name="password">manager</ns:property>
-                  <ns:property name="protocol">rmi</ns:property>
-                  <ns:property name="host">localhost</ns:property>
-                  <ns:property name="port">1099</ns:property>
-                  <ns:property name="urlPath">JMXConnector</ns:property>
-                  <ns:property name="local">true</ns:property>
-              </ns:javabean>
-          </xml-attribute>
-      </gbean>
-
 </module>

Copied: geronimo/server/trunk/plugins/clustering/plugin-farm/pom.xml (from r690859, geronimo/server/trunk/plugins/clustering/farming/pom.xml)
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm/pom.xml?p2=geronimo/server/trunk/plugins/clustering/plugin-farm/pom.xml&p1=geronimo/server/trunk/plugins/clustering/farming/pom.xml&r1=690859&r2=692915&rev=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/farming/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm/pom.xml Sun Sep  7 11:08:51 2008
@@ -27,16 +27,16 @@
         <artifactId>clustering</artifactId>
         <version>2.2-SNAPSHOT</version>
     </parent>
-    
+
     <groupId>org.apache.geronimo.configs</groupId>
-    <artifactId>farming</artifactId>
-    <name>Geronimo Plugins, Clustering :: Farming</name>
+    <artifactId>plugin-farm</artifactId>
+    <name>Geronimo Plugins, Clustering :: Plugin Farm</name>
     <packaging>car</packaging>
 
     <description>
         Basic farming support
     </description>
-    
+
     <dependencies>
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>
@@ -44,7 +44,7 @@
             <version>${version}</version>
             <type>car</type>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.geronimo.framework</groupId>
             <artifactId>plugin</artifactId>
@@ -54,21 +54,21 @@
 
         <dependency>
             <groupId>org.apache.geronimo.configs</groupId>
-            <artifactId>j2ee-server</artifactId>
+            <artifactId>system-database</artifactId>
             <version>${version}</version>
             <type>car</type>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.geronimo.framework</groupId>
-            <artifactId>j2ee-security</artifactId>
-            <version>${version}</version>
-            <type>car</type>
-        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>org.apache.geronimo.framework</groupId>-->
+        <!--<artifactId>j2ee-security</artifactId>-->
+        <!--<version>${version}</version>-->
+        <!--<type>car</type>-->
+        <!--</dependency>-->
 
         <dependency>
             <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-farm</artifactId>
+            <artifactId>geronimo-plugin-farm</artifactId>
             <version>${version}</version>
         </dependency>
     </dependencies>
@@ -80,20 +80,16 @@
                 <artifactId>car-maven-plugin</artifactId>
                 <configuration>
                     <category>Clustering</category>
+                    <dependencies>
+                        <dependency>
+                            <groupId>org.apache.geronimo.framework</groupId>
+                            <artifactId>geronimo-gbean-deployer</artifactId>
+                            <type>car</type>
+                            <import>classes</import>
+                        </dependency>
+                    </dependencies>
                     <instance>
                         <plugin-artifact>
-                            <copy-file relative-to="geronimo" dest-dir="farming">cluster-repository</copy-file>
-                            <copy-file relative-to="geronimo" dest-dir="farming">master-repository</copy-file>
-                            <config-xml-content load="false">
-                                <gbean name="NodeInfo">
-                                    <attribute name="name">#{clusterNodeName}</attribute>
-                                </gbean>
-                                <gbean name="ClusterInfo">
-                                    <attribute name="name">#{clusterName}</attribute>
-                                </gbean>
-                            </config-xml-content>
-                            <config-substitution key="clusterNodeName">NODE</config-substitution>
-                            <config-substitution key="clusterName">CLUSTER_NAME</config-substitution>
                         </plugin-artifact>
                     </instance>
                 </configuration>

Modified: geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/history/dependencies.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/history/dependencies.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/history/dependencies.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/history/dependencies.xml Sun Sep  7 11:08:51 2008
@@ -2,7 +2,7 @@
 <plugin-artifact xmlns:ns2="http://geronimo.apache.org/xml/ns/attributes-1.2" xmlns="http://geronimo.apache.org/xml/ns/plugins-1.3">
     <module-id>
         <groupId>org.apache.geronimo.configs</groupId>
-        <artifactId>farming</artifactId>
+        <artifactId>plugin-farm</artifactId>
         <version>2.2-SNAPSHOT</version>
         <type>car</type>
     </module-id>
@@ -12,13 +12,18 @@
         <type>jar</type>
     </dependency>
     <dependency>
-        <groupId>org.apache.geronimo.framework</groupId>
-        <artifactId>j2ee-security</artifactId>
+        <groupId>org.apache.geronimo.modules</groupId>
+        <artifactId>geronimo-plugin-farm</artifactId>
+        <type>jar</type>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.geronimo.configs</groupId>
+        <artifactId>openjpa</artifactId>
         <type>car</type>
     </dependency>
     <dependency>
         <groupId>org.apache.geronimo.configs</groupId>
-        <artifactId>j2ee-server</artifactId>
+        <artifactId>system-database</artifactId>
         <type>car</type>
     </dependency>
     <dependency>

Modified: geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/plan/plan.xml?rev=692915&r1=690853&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/plan/plan.xml (original)
+++ geronimo/server/trunk/plugins/clustering/plugin-farm/src/main/plan/plan.xml Sun Sep  7 11:08:51 2008
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -20,78 +20,37 @@
 
 <module xmlns="http://geronimo.apache.org/xml/ns/deployment-${geronimoSchemaVersion}">
 
-    <gbean name="MasterRepository" class="org.apache.geronimo.system.repository.Maven2Repository">
-        <attribute name="root">farming/master-repository/</attribute>
-        <reference name="ServerInfo">
-            <name>ServerInfo</name>
+    <gbean name="FarmPersistence" class="org.apache.geronimo.persistence.PersistenceUnitGBean">
+        <attribute name="persistenceUnitName">FarmPersistence</attribute>
+        <attribute name="persistenceUnitTransactionType">RESOURCE_LOCAL</attribute>
+        <attribute name="persistenceUnitRoot"></attribute>
+        <attribute name="excludeUnlistedClasses">true</attribute>
+        <attribute name="managedClassNames">org.apache.geronimo.farm.plugin.JpaClusterInfo,
+            org.apache.geronimo.farm.plugin.JpaNodeInfo,
+            org.apache.geronimo.farm.plugin.JpaPluginInstance,
+            org.apache.geronimo.farm.plugin.JpaPluginList
+        </attribute>
+        <attribute name="properties">
+            openjpa.Log=commons
+            openjpa.jdbc.DBDictionary=org.apache.openjpa.jdbc.sql.DerbyDictionary
+            openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true)
+            openjpa.jdbc.UpdateManager=operation-order
+            openjpa.Sequence=table(Table=OPENJPASEQ, Increment=100)
+            openjpa.InverseManager=true
+        </attribute>
+        <reference name="JtaDataSourceWrapper">
+            <name>SystemDatasource</name>
+        </reference>
+        <reference name="NonJtaDataSourceWrapper">
+            <name>NoTxDatasource</name>
         </reference>
     </gbean>
 
-    <gbean name="MasterConfigurationStore" class="org.apache.geronimo.farm.deployment.MasterConfigurationStore">
-        <xml-attribute name="defaultEnvironment">
-            <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-${geronimoSchemaVersion}">
-                <dependencies>
-                    <dependency>
-                        <groupId>${pom.groupId}</groupId>
-                        <artifactId>farming</artifactId>
-                        <type>car</type>
-                    </dependency>
-                </dependencies>
-            </environment>
-        </xml-attribute>
-        <reference name="Repository">
-            <name>MasterRepository</name>
+    <gbean name="PluginFarm" class="org.apache.geronimo.farm.plugin.FarmGBean">
+        <attribute name="defaultPluginRepository">~/.m2/repository</attribute>
+        <reference name="PersistenceUnit">
+            <name>FarmPersistence</name>
         </reference>
-        <reference name="ClusterInfo">
-            <name>ClusterInfo</name>
-        </reference>
-        <reference name="ClusterConfigurationStoreClient">
-            <name>ClusterConfigurationStoreClient</name>
-        </reference>
-    </gbean>
-
-    <gbean name="ClusterConfigurationStoreClient" class="org.apache.geronimo.farm.deployment.BasicClusterConfigurationStoreClient">
-        <attribute name="clusterConfigurationStoreNameQuery">?name=ClusterConfigurationStore</attribute>
-    </gbean>
-
-    <gbean name="ClusterRepository" class="org.apache.geronimo.system.repository.Maven2Repository">
-        <attribute name="root">farming/cluster-repository/</attribute>
-        <reference name="ServerInfo">
-            <name>ServerInfo</name>
-        </reference>
-    </gbean>
-
-    <gbean name="ClusterStore" class="org.apache.geronimo.system.configuration.RepositoryConfigurationStore">
-        <reference name="Repository">
-            <name>ClusterRepository</name>
-        </reference>
-    </gbean>
-
-    <gbean name="ClusterConfigurationStore" class="org.apache.geronimo.farm.deployment.BasicClusterConfigurationStore">
-        <reference name="ConfigurationStore">
-            <name>ClusterStore</name>
-        </reference>
-    </gbean>
-
-    <!-- Static Cluster Configuration -->
-    <gbean name="ClusterInfo" class="org.apache.geronimo.farm.config.BasicClusterInfo">
-        <attribute name="name">${PlanClusterName}</attribute>
-        <reference name="NodeInfos"></reference>
     </gbean>
 
-    <gbean name="NodeInfo" class="org.apache.geronimo.farm.config.BasicNodeInfo">
-          <attribute name="name">${PlanClusterNodeName}</attribute>
-          <xml-attribute name="extendedJMXConnectorInfo">
-              <ns:javabean xmlns:ns="http://geronimo.apache.org/xml/ns/deployment/javabean-1.0" class="org.apache.geronimo.farm.config.BasicExtendedJMXConnectorInfo">
-                  <ns:property name="username">system</ns:property>
-                  <ns:property name="password">manager</ns:property>
-                  <ns:property name="protocol">rmi</ns:property>
-                  <ns:property name="host">localhost</ns:property>
-                  <ns:property name="port">1099</ns:property>
-                  <ns:property name="urlPath">JMXConnector</ns:property>
-                  <ns:property name="local">true</ns:property>
-              </ns:javabean>
-          </xml-attribute>
-      </gbean>
-
 </module>

Modified: geronimo/server/trunk/plugins/clustering/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/clustering/pom.xml?rev=692915&r1=692914&r2=692915&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/clustering/pom.xml (original)
+++ geronimo/server/trunk/plugins/clustering/pom.xml Sun Sep  7 11:08:51 2008
@@ -40,9 +40,21 @@
         <module>geronimo-clustering</module>
         <module>geronimo-clustering-wadi</module>
         <module>geronimo-farm</module>
+        <module>geronimo-deploy-farm</module>
+        <module>geronimo-plugin-farm</module>
         <module>clustering</module>
         <module>wadi-clustering</module>
         <module>farming</module>
+        <module>plugin-farm</module>
     </modules>
 
+    <profiles>
+        <profile>
+            <id>it</id>
+            <modules>
+                <module>plugin-farm-it</module>
+            </modules>
+        </profile>
+    </profiles>
+
 </project>