[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