[Yanel-commits] rev 20212 - in public/yanel/trunk: conf src/build src/core/java/org/wyona/yanel/cmdl src/core/java/org/wyona/yanel/core src/core/java/org/wyona/yanel/servlet

david at wyona.com david at wyona.com
Wed Nov 22 14:34:25 CET 2006


Author: david
Date: 2006-11-22 14:34:24 +0100 (Wed, 22 Nov 2006)
New Revision: 20212

Added:
   public/yanel/trunk/conf/spring-yanel-config.xml
Modified:
   public/yanel/trunk/src/build/build.xml
   public/yanel/trunk/src/build/dependencies.xml
   public/yanel/trunk/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
added spring config to yanel

Added: public/yanel/trunk/conf/spring-yanel-config.xml
===================================================================
--- public/yanel/trunk/conf/spring-yanel-config.xml	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/conf/spring-yanel-config.xml	2006-11-22 13:34:24 UTC (rev 20212)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans>
+  <bean id="repositoryFactory" class="org.wyona.yarep.core.RepositoryFactory">
+    <!-- this is just an example so far, it's not really used -->
+    <!-- <property name="someProperty"><value>someValue</value></property> -->
+  </bean>
+</beans>

Modified: public/yanel/trunk/src/build/build.xml
===================================================================
--- public/yanel/trunk/src/build/build.xml	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/src/build/build.xml	2006-11-22 13:34:24 UTC (rev 20212)
@@ -307,6 +307,7 @@
       <fileset dir="${yanel.home.dir}/conf/entities"/>
     </copy>
 
+    <copy file="${yanel.home.dir}/conf/spring-yanel-config.xml" todir="${build.dir}/webapps/${servlet.context.prefix}/WEB-INF/classes" overwrite="false"/>
     <copy file="${yanel.home.dir}/conf/realms.xml" todir="${build.dir}/webapps/${servlet.context.prefix}/WEB-INF/classes" overwrite="false"/>
     <copy file="${yanel.home.dir}/conf/log4j.properties" todir="${build.dir}/webapps/${servlet.context.prefix}/WEB-INF/classes" overwrite="false"/>
     <copy file="${yanel.home.dir}/conf/yanel-rti-yarep.properties" todir="${build.dir}/webapps/${servlet.context.prefix}/WEB-INF/classes" overwrite="false"/>

Modified: public/yanel/trunk/src/build/dependencies.xml
===================================================================
--- public/yanel/trunk/src/build/dependencies.xml	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/src/build/dependencies.xml	2006-11-22 13:34:24 UTC (rev 20212)
@@ -55,6 +55,9 @@
                   version="2.7.0"/>
       <dependency groupId="wyona-org-security" artifactId="wyona-org-security-impl"
                   version="0.0.1-dev-r15775"/>
+                  
+      <dependency groupId="spring" artifactId="spring"
+                  version="2.0"/>
     </artifact:dependencies>
 
     <property name="maven2.cp" refid="maven2.classpath"/>

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java	2006-11-22 13:34:24 UTC (rev 20212)
@@ -20,6 +20,7 @@
 import org.wyona.yanel.core.Resource;
 import org.wyona.yanel.core.ResourceTypeDefinition;
 import org.wyona.yanel.core.ResourceTypeRegistry;
+import org.wyona.yanel.core.Yanel;
 import org.wyona.yanel.core.api.attributes.CreatableV1;
 import org.wyona.yanel.core.api.attributes.CreatableV2;
 import org.wyona.yanel.core.api.attributes.ModifiableV1;
@@ -47,9 +48,10 @@
     /**
      *
      */
-    static public void main(String[] args) {
+    static public void main(String[] args) throws Exception {
         System.out.println("Welcome to the Yanel command line interface!\n");
 
+        Yanel yanel = Yanel.getInstance();
         MapFactory mf = MapFactory.newInstance();
         Map map = mf.newMap();
 
@@ -120,7 +122,7 @@
         Resource res = null;
         try {
             res = rtr.newResource(rti);
-            res.setYanel(new org.wyona.yanel.core.Yanel());
+            res.setYanel(yanel);
         } catch(Exception e) {
             System.err.println("Exception 435435: " + e);
             return;

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/Yanel.java	2006-11-22 13:34:24 UTC (rev 20212)
@@ -18,24 +18,49 @@
 
 import org.wyona.yanel.core.map.Map;
 import org.wyona.yanel.core.map.MapFactory;
+import org.wyona.yarep.core.RepositoryFactory;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
- *
+ * This class is a singleton.
  */
 public class Yanel {
 
     private Map map = null;
     private ResourceTypeRegistry rtr = null;
+    private ApplicationContext applicationContext;
+    
+    private static final String SPRING_CONFIG_FILE = "spring-yanel-config.xml"; 
 
+    private static Yanel yanel = null;
+
     /**
-     *
-     */
-    public Yanel() {
-        MapFactory mf = MapFactory.newInstance();
-        map = mf.newMap();
-        rtr = new ResourceTypeRegistry();
+    * Private constructor
+    */
+   private Yanel() throws Exception {
+       MapFactory mf = MapFactory.newInstance();
+       map = mf.newMap();
+       rtr = new ResourceTypeRegistry();
+
+       applicationContext = new ClassPathXmlApplicationContext(SPRING_CONFIG_FILE);
+       
+       // example:
+       //RepositoryFactory repoFactory = (RepositoryFactory)applicationContext.getBean("repositoryFactory");
     }
 
+    public static Yanel getInstance() throws Exception {
+        if (yanel == null) {
+            yanel = new Yanel();
+        } 
+        return yanel;
+    }
+    
+    public BeanFactory getBeanFactory() {
+        return applicationContext;
+    }
+    
     /**
      *
      */

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2006-11-22 13:28:21 UTC (rev 20211)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2006-11-22 13:34:24 UTC (rev 20212)
@@ -75,23 +75,28 @@
     /**
      *
      */
-    public void init(ServletConfig config) {
+    public void init(ServletConfig config) throws ServletException {
         this.config = config;
-        rtr = new ResourceTypeRegistry();
+        
+        try {
+            yanel = Yanel.getInstance();
+            
+            rtr = new ResourceTypeRegistry();
 
-        PolicyManagerFactory pmf = PolicyManagerFactory.newInstance();
-        pm = pmf.newPolicyManager();
+            PolicyManagerFactory pmf = PolicyManagerFactory.newInstance();
+            pm = pmf.newPolicyManager();
 
-        IdentityManagerFactory imf = IdentityManagerFactory.newInstance();
-        im = imf.newIdentityManager();
+            IdentityManagerFactory imf = IdentityManagerFactory.newInstance();
+            im = imf.newIdentityManager();
 
-        MapFactory mf = MapFactory.newInstance();
-        map = mf.newMap();
+            MapFactory mf = MapFactory.newInstance();
+            map = mf.newMap();
 
-        yanel = new Yanel();
-
-        //sslPort = "8443";
-        sslPort = config.getInitParameter("ssl-port");
+            //sslPort = "8443";
+            sslPort = config.getInitParameter("ssl-port");
+        } catch (Exception e) {
+            throw new ServletException(e.getMessage(), e);
+        }
     }
 
     /**




More information about the Yanel-commits mailing list