Author: veithen
Date: Wed Mar 31 09:20:31 2010
New Revision: 929441
URL: http://svn.apache.org/viewvc?rev=929441&view=rev
Log:
AXIS2-4662: Some simplifications of the PoC code.
Added:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java
(with props)
Modified:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ConfigurationContextFactoryBean.java
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ListenerManagerFactoryBean.java
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/service/PojoServiceFactoryBean.java
Modified:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ConfigurationContextFactoryBean.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ConfigurationContextFactoryBean.java?rev=929441&r1=929440&r2=929441&view=diff
==============================================================================
---
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ConfigurationContextFactoryBean.java
(original)
+++
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ConfigurationContextFactoryBean.java
Wed Mar 31 09:20:31 2010
@@ -23,13 +23,11 @@ import org.apache.axis2.context.Configur
import org.apache.axis2.description.TransportInDescription;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.engine.AxisConfiguration;
-import org.springframework.beans.factory.FactoryBean;
-import org.springframework.beans.factory.InitializingBean;
+import org.apache.axis2.spring.util.SingletonFactoryBean;
-public class ConfigurationContextFactoryBean implements FactoryBean,
InitializingBean {
+public class ConfigurationContextFactoryBean extends
SingletonFactoryBean<ConfigurationContext> {
private TransportInDescription[] transportInDescriptions;
private TransportOutDescription[] transportOutDescriptions;
- private ConfigurationContext configurationContext;
public void setTransportInDescriptions(TransportInDescription[]
transportInDescriptions) {
this.transportInDescriptions = transportInDescriptions;
@@ -39,16 +37,13 @@ public class ConfigurationContextFactory
this.transportOutDescriptions = transportOutDescriptions;
}
- public Class<?> getObjectType() {
- return ConfigurationContext.class;
+ public ConfigurationContextFactoryBean() {
+ super(ConfigurationContext.class);
}
-
- public boolean isSingleton() {
- return true;
- }
-
- public void afterPropertiesSet() throws Exception {
- configurationContext =
ConfigurationContextFactory.createBasicConfigurationContext("axis2_default_spring.xml");
+
+ @Override
+ protected ConfigurationContext create() throws Exception {
+ ConfigurationContext configurationContext =
ConfigurationContextFactory.createBasicConfigurationContext("axis2_default_spring.xml");
// configurationContext =
ConfigurationContextFactory.createEmptyConfigurationContext();
AxisConfiguration config = configurationContext.getAxisConfiguration();
if (transportInDescriptions != null) {
@@ -61,9 +56,6 @@ public class ConfigurationContextFactory
config.addTransportOut(description);
}
}
- }
-
- public Object getObject() throws Exception {
return configurationContext;
}
}
Modified:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ListenerManagerFactoryBean.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ListenerManagerFactoryBean.java?rev=929441&r1=929440&r2=929441&view=diff
==============================================================================
---
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ListenerManagerFactoryBean.java
(original)
+++
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/cfgctx/ListenerManagerFactoryBean.java
Wed Mar 31 09:20:31 2010
@@ -20,36 +20,28 @@ package org.apache.axis2.spring.cfgctx;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.engine.ListenerManager;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.FactoryBean;
-import org.springframework.beans.factory.InitializingBean;
+import org.apache.axis2.spring.util.SingletonFactoryBean;
-public class ListenerManagerFactoryBean implements FactoryBean,
InitializingBean, DisposableBean {
+public class ListenerManagerFactoryBean extends
SingletonFactoryBean<ListenerManager> {
private ConfigurationContext configurationContext;
- private ListenerManager listenerManager;
public void setConfigurationContext(ConfigurationContext
configurationContext) {
this.configurationContext = configurationContext;
}
- public Class getObjectType() {
- return ListenerManager.class;
+ public ListenerManagerFactoryBean() {
+ super(ListenerManager.class);
}
-
- public boolean isSingleton() {
- return true;
- }
-
- public void afterPropertiesSet() throws Exception {
- listenerManager = new ListenerManager();
+
+ @Override
+ protected ListenerManager create() throws Exception {
+ ListenerManager listenerManager = new ListenerManager();
listenerManager.startSystem(configurationContext);
+ return listenerManager;
}
- public Object getObject() throws Exception {
- return null;
- }
-
- public void destroy() throws Exception {
+ @Override
+ protected void destroy(ListenerManager listenerManager) throws Exception {
listenerManager.destroy();
}
}
Modified:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/service/PojoServiceFactoryBean.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/service/PojoServiceFactoryBean.java?rev=929441&r1=929440&r2=929441&view=diff
==============================================================================
---
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/service/PojoServiceFactoryBean.java
(original)
+++
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/service/PojoServiceFactoryBean.java
Wed Mar 31 09:20:31 2010
@@ -20,13 +20,11 @@ package org.apache.axis2.spring.service;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisService;
-import org.springframework.beans.factory.FactoryBean;
-import org.springframework.beans.factory.InitializingBean;
+import org.apache.axis2.spring.util.SingletonFactoryBean;
-public class PojoServiceFactoryBean implements FactoryBean, InitializingBean {
+public class PojoServiceFactoryBean extends SingletonFactoryBean<AxisService> {
private ConfigurationContext configurationContext;
private Object serviceObject;
- private AxisService service;
public void setConfigurationContext(ConfigurationContext
configurationContext) {
this.configurationContext = configurationContext;
@@ -35,20 +33,13 @@ public class PojoServiceFactoryBean impl
public void setServiceObject(Object serviceObject) {
this.serviceObject = serviceObject;
}
-
- public Class<?> getObjectType() {
- return AxisService.class;
- }
-
- public boolean isSingleton() {
- return true;
- }
-
- public void afterPropertiesSet() throws Exception {
- service = PojoServiceUtil.deployPojo(configurationContext,
serviceObject);
+
+ public PojoServiceFactoryBean() {
+ super(AxisService.class);
}
- public Object getObject() throws Exception {
- return service;
+ @Override
+ protected AxisService create() throws Exception {
+ return PojoServiceUtil.deployPojo(configurationContext, serviceObject);
}
}
Added:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java?rev=929441&view=auto
==============================================================================
---
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java
(added)
+++
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java
Wed Mar 31 09:20:31 2010
@@ -0,0 +1,60 @@
+/*
+ * 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.axis2.spring.util;
+
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.InitializingBean;
+
+/**
+ * Convenience base class for singleton {...@link FactoryBean} implementations.
+ */
+public abstract class SingletonFactoryBean<T> implements FactoryBean,
InitializingBean, DisposableBean {
+ private final Class<T> objectType;
+ private T instance;
+
+ public SingletonFactoryBean(Class<T> objectType) {
+ this.objectType = objectType;
+ }
+
+ public final Class<?> getObjectType() {
+ return objectType;
+ }
+
+ public final boolean isSingleton() {
+ return true;
+ }
+
+ public final void afterPropertiesSet() throws Exception {
+ instance = create();
+ }
+
+ protected abstract T create() throws Exception;
+
+ public Object getObject() throws Exception {
+ return instance;
+ }
+
+ public final void destroy() throws Exception {
+ destroy(instance);
+ }
+
+ protected void destroy(T instance) throws Exception {
+ }
+}
Propchange:
axis/axis2/java/core/scratch/java/veithen/spring/axis2-spring-core/src/main/java/org/apache/axis2/spring/util/SingletonFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native