You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Deepal Jayasinghe (JIRA)" <ji...@apache.org> on 2007/02/26 08:13:05 UTC
[jira] Commented: (AXIS2-2240) InputStreamConfigurator
[ https://issues.apache.org/jira/browse/AXIS2-2240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12475830 ]
Deepal Jayasinghe commented on AXIS2-2240:
------------------------------------------
Hi Roshan;
Pls create a patch and attach that to the JIRA , that will be much better than just pasting the code here. :)
Thanks
Deepal
> InputStreamConfigurator
> -----------------------
>
> Key: AXIS2-2240
> URL: https://issues.apache.org/jira/browse/AXIS2-2240
> Project: Axis 2.0 (Axis2)
> Issue Type: Improvement
> Components: kernel
> Environment: Java 1.4.2
> Reporter: Roshan Punnoose
> Priority: Minor
>
> > I've been also having problems with the FileBasedConfigurator that
> > looks for the axis2.xml file. Depending on where it is run, if it is
> > packed in a jar, I won't be able to use it. (Which isn't that great
> > for projects that depend on a project that actually does the Web
> > Service calls using AXIS) So I created an InputStreamConfigurator,
> > which is the exact same as the FileSystemConfigurator, except that it
> > uses the ClassLoader to load the axis2.xml. Is there already something
> > like this? And if not, is it something that would be helpful for you guys?
> Below is the InputStreamConfigurator that I created, hope it helps:
> package anything;
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.FileNotFoundException;
> import java.io.InputStream;
> import org.apache.axis2.AxisFault;
> import org.apache.axis2.Constants;
> import org.apache.axis2.deployment.DeploymentConstants;
> import org.apache.axis2.deployment.DeploymentEngine;
> import org.apache.axis2.deployment.FileSystemConfigurator;
> import org.apache.axis2.description.Parameter;
> import org.apache.axis2.engine.AxisConfiguration;
> import org.apache.axis2.engine.AxisConfigurator;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> public class InputStreamConfigurator extends DeploymentEngine implements
> AxisConfigurator {
> private static final Log log = LogFactory
> .getLog(InputStreamConfigurator.class);
> /**
> * To check whether need to create a service side or client side
> */
> private InputStream axis2xml = null;
> private String repoLocation = null;
> /**
> * Load an AxisConfiguration from the repository directory specified
> *
> * @param repoLocation
> * @param axis2xml
> */
> public InputStreamConfigurator(String repoLocation, InputStream axis2xml) {
> if (repoLocation == null) {
> // checking wether user has set the system property
> repoLocation = System.getProperty(Constants.AXIS2_REPO);
> }
> // OK, we've got a repository location in mind. Let's make
> // sure it exists.
> try {
> if (repoLocation != null) {
> File repo = new File(repoLocation);
> if (repo.exists()) {
> // ok, save it if so
> this.repoLocation = repo.getAbsolutePath();
> }
> }
> } catch (Exception e) {
> log
> .info("Couldn't find repository location '" + repoLocation
> + "'");
> this.repoLocation = null;
> }
> // Deal with the config file. If a filename was specified as an
> // arg to this constructor, just respect it.
> if (axis2xml == null) {
> // If not, check for a system property setting
> // Get from the classloader if it exists
> axis2xml = Thread.currentThread().getContextClassLoader()
> .getResourceAsStream(
> System.getProperty(Constants.AXIS2_CONF));
> }
> this.axis2xml = axis2xml;
> }
> /**
> * First create a Deployment engine, use that to create an AxisConfiguration
> *
> * @return Axis Configuration
> * @throws AxisFault
> */
> public synchronized AxisConfiguration getAxisConfiguration()
> throws AxisFault {
> InputStream axis2xmlSream;
> if (axis2xml != null && !"".equals(axis2xml)) {
> axis2xmlSream = axis2xml;
> } else {
> ClassLoader cl = Thread.currentThread().getContextClassLoader();
> axis2xmlSream = cl
> .getResourceAsStream(DeploymentConstants.AXIS2_CONFIGURATION_RESOURCE);
> }
> if(axis2xmlSream == null) {throw new AxisFault("System can not find the given axis2.xml " + axis2xml);}
> axisConfig = populateAxisConfiguration(axis2xmlSream);
> Parameter axis2repoPara = axisConfig
> .getParameter(DeploymentConstants.AXIS2_REPO);
> if (axis2repoPara != null)
> repoLocation = (String) axis2repoPara.getValue();
> if (!(repoLocation == null || "".equals(repoLocation))) {
> loadRepository(repoLocation);
> } else {
> loadFromClassPath();
> }
> return axisConfig;
> }
> public void engageGlobalModules() throws AxisFault {
> engageModules();
> }
> public void loadServices() {
> if (!(repoLocation == null || "".equals(repoLocation))) {
> super.loadServices();
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org