[webbeans-commits] Webbeans SVN: r2854 - in ri/trunk/impl/src/main/java/org/jboss/webbeans: bootstrap and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Jun 18 23:46:24 EDT 2009


Author: dan.j.allen
Date: 2009-06-18 23:46:23 -0400 (Thu, 18 Jun 2009)
New Revision: 2854

Added:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/DeploymentException.java
Modified:
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterBeanDiscoveryImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterDeploymentValidationImpl.java
   ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
Log:
catch and wrap exceptions thrown by observers during container initialization

Added: ri/trunk/impl/src/main/java/org/jboss/webbeans/DeploymentException.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/DeploymentException.java	                        (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/DeploymentException.java	2009-06-19 03:46:23 UTC (rev 2854)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed 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.jboss.webbeans;
+
+/**
+ * Thrown if an deployment exception occurs.
+ * 
+ * @author Pete Muir
+ */
+public class DeploymentException extends RuntimeException
+{
+   private static final long serialVersionUID = 8014646336322875707L;
+
+   public DeploymentException()
+   {
+      super();
+   }
+
+   public DeploymentException(String message, Throwable throwable)
+   {
+      super(message, throwable);
+   }
+
+   public DeploymentException(String message)
+   {
+      super(message);
+   }
+
+   public DeploymentException(Throwable throwable)
+   {
+      super(throwable);
+   }
+   
+}

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterBeanDiscoveryImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterBeanDiscoveryImpl.java	2009-06-19 03:45:23 UTC (rev 2853)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterBeanDiscoveryImpl.java	2009-06-19 03:46:23 UTC (rev 2854)
@@ -1,16 +1,16 @@
 package org.jboss.webbeans.bootstrap;
 
 import javax.enterprise.inject.spi.AfterBeanDiscovery;
-import javax.inject.DeploymentException;
 
+import org.jboss.webbeans.DefinitionException;
+
 public class AfterBeanDiscoveryImpl implements AfterBeanDiscovery
 {
-
    public void addDefinitionError(Throwable t)
    {
-      //XXX spec says need to delay abort until all observers 
+      //XXX spec says need to delay abort until all observers
       //have been notified
-      throw new DeploymentException(t);
+      throw new DefinitionException(t);
    }
 
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterDeploymentValidationImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterDeploymentValidationImpl.java	2009-06-19 03:45:23 UTC (rev 2853)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/AfterDeploymentValidationImpl.java	2009-06-19 03:46:23 UTC (rev 2854)
@@ -2,13 +2,15 @@
 
 import javax.enterprise.inject.spi.AfterDeploymentValidation;
 
+import org.jboss.webbeans.DeploymentException;
+
 public class AfterDeploymentValidationImpl implements AfterDeploymentValidation
 {
    public void addDeploymentProblem(Throwable t)
    {
-      //XXX spec says need to delay abort until all observers 
+      //XXX spec says need to delay abort until all observers
       //have been notified
-      throw new RuntimeException(t);
+      throw new DeploymentException(t);
    }
 
 }

Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-06-19 03:45:23 UTC (rev 2853)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-06-19 03:46:23 UTC (rev 2854)
@@ -9,7 +9,7 @@
  * 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,  
+ * 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.
@@ -19,6 +19,8 @@
 import org.jboss.webbeans.BeanManagerImpl;
 import org.jboss.webbeans.BeanValidator;
 import org.jboss.webbeans.CurrentManager;
+import org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.DeploymentException;
 import org.jboss.webbeans.bean.standard.EventBean;
 import org.jboss.webbeans.bean.standard.InjectionPointBean;
 import org.jboss.webbeans.bean.standard.InstanceBean;
@@ -201,18 +203,62 @@
             manager.setEnabledInterceptorClasses(parser.getEnabledInterceptorClasses());
          }
          log.debug("Deployment types: " + manager.getEnabledDeploymentTypes());
-         manager.fireEvent(new BeforeBeanDiscoveryImpl());
+         fireBeforeBeanDiscoveryEvent();
          registerBeans(getServices().get(WebBeanDiscovery.class).discoverWebBeanClasses(), ejbDescriptors);
-         manager.fireEvent(new AfterBeanDiscoveryImpl());
+         fireAfterBeanDiscoveryEvent();
          log.debug("Web Beans initialized. Validating beans.");
          manager.getResolver().resolveInjectionPoints();
          new BeanValidator(manager).validate();
          manager.getResolver().resolveInjectionPoints();
-         manager.fireEvent(new AfterDeploymentValidationImpl());
+         fireAfterDeploymentValidationEvent();
          endDeploy(requestBeanStore);
       }
    }
 
+   protected void fireBeforeBeanDiscoveryEvent()
+   {
+      BeforeBeanDiscoveryImpl event = new BeforeBeanDiscoveryImpl();
+      try
+      {
+         manager.fireEvent(event);
+      }
+      catch (Exception e)
+      {
+         throw new DefinitionException(e);
+      }
+   }
+   
+   protected void fireAfterBeanDiscoveryEvent()
+   {
+      AfterBeanDiscoveryImpl event = new AfterBeanDiscoveryImpl();
+      try
+      {
+         manager.fireEvent(event);
+      }
+      catch (Exception e)
+      {
+         throw new DefinitionException(e);
+      }
+      
+      // TODO handle registered definition errors
+   }
+   
+   protected void fireAfterDeploymentValidationEvent()
+   {
+      AfterDeploymentValidationImpl event = new AfterDeploymentValidationImpl();
+      
+      try
+      {
+         manager.fireEvent(event);
+      }
+      catch (Exception e)
+      {
+         throw new DeploymentException(e);
+      }
+      
+      // TODO handle registered deployment errors
+   }
+   
    /**
     * Gets version information
     * 




More information about the weld-commits mailing list