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 de...@apache.org on 2004/12/23 10:04:20 UTC
svn commit: r123178 - in webservices/axis/trunk/java/dev/scratch/prototype2/src: java/org/apache/axis/deployment java/org/apache/axis/deployment/metadata java/org/apache/axis/description java/org/apache/axis/impl/engine java/org/apache/axis/phaseresolver test/org/apache/axis/deployment
Author: deepal
Date: Thu Dec 23 01:04:18 2004
New Revision: 123178
URL: http://svn.apache.org/viewcvs?view=rev&rev=123178
Log:
Removed ServerMD
Added:
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/server.xml
Removed:
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/metadata/
Modified:
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java Thu Dec 23 01:04:18 2004
@@ -1,18 +1,15 @@
package org.apache.axis.deployment;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
+import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Vector;
+import java.util.Iterator;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
-import org.apache.axis.deployment.metadata.ServerMetaData;
import org.apache.axis.deployment.repository.utill.HDFileItem;
import org.apache.axis.deployment.repository.utill.UnZipJAR;
import org.apache.axis.deployment.repository.utill.WSInfo;
@@ -80,7 +77,8 @@
/**
* This to keep a referance to serverMetaData object
*/
- private static ServerMetaData server = new ServerMetaData();
+ // private static ServerMetaData server = new ServerMetaData();
+ private AxisGlobal server;
private HDFileItem currentFileItem = null;
@@ -92,8 +90,42 @@
* @param RepositaryName is the path to which Repositary Listner should
* listent.
*/
- public DeploymentEngine(String RepositaryName) {
+ public DeploymentEngine(String RepositaryName) throws DeploymentException {
this.folderName = RepositaryName;
+ File repository = new File(RepositaryName);
+ if(!repository.exists()){
+ repository.mkdirs();
+ File servcies = new File(repository,"services");
+ File modules = new File(repository,"modules");
+ modules.mkdirs();
+ servcies.mkdirs();
+ }
+ File serverConf = new File(repository,"server.xml");
+ if(!serverConf.exists()){
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ InputStream in = cl.getResourceAsStream("org/apache/axis/deployment/server.xml");
+ if(in != null){
+ try {
+ serverConf.createNewFile();
+ FileOutputStream out = new FileOutputStream(serverConf);
+ byte[] buf = new byte[512];
+ int read;
+ while((read = in.read(buf)) > 0){
+ out.write(buf,0,read);
+ }
+ in.close();
+ out.close();
+ } catch (IOException e) {
+ throw new DeploymentException(e.getMessage());
+ }
+
+
+ } else{
+ throw new DeploymentException("can not found org/apache/axis/deployment/server.xml");
+
+ }
+ }
+
this.serverconfigName = RepositaryName + "/server.xml";
}
@@ -106,17 +138,15 @@
return currentFileItem;
}
+
/**
- * This method should use inorder to get the referance to servermetadata
- * object which keep all the detail about all the phases
- *
+ * tio get ER
* @return
*/
- public static ServerMetaData getServerMetaData() {
- return server;
+ public EngineRegistry getEngineRegistry() {
+ return engineRegistry;
}
-
/**
* This method will fill the engine registry and return it to Engine
*
@@ -128,18 +158,19 @@
String fileName;
if(serverconfigName != null) {
fileName = serverconfigName;
- } else
- fileName = "src/test-resources/deployment/server.xml";
-
+ } else{
+ throw new DeploymentException("path to Server.xml can not be NUll");
+ }
File tempfile = new File(fileName);
try {
InputStream in = new FileInputStream(tempfile);
+ engineRegistry = createEngineRegistry();
DeploymentParser parser = new DeploymentParser(in, this);
parser.procesServerXML(server);
} catch (FileNotFoundException e) {
throw new AxisFault(e.getMessage());
}
- engineRegistry = createEngineRegistry();
+
startSearch(this);
valideServerModule() ;
return engineRegistry;
@@ -150,25 +181,15 @@
* are exist , or they have deployed
*/
private void valideServerModule() throws AxisFault, PhaseException{
- int moduleCount = server.getModuleCount();
- AxisGlobal global = engineRegistry.getGlobal();
- QName moduleName;
- for (int i = 0; i < moduleCount ; i++) {
- moduleName = server.getModule(i);
- if(getModule(moduleName) == null ){
- throw new AxisFault(server.getName() + " Refer to invalid module " + moduleName + " has not bean deployed yet !");
- } else
- global.addModule(moduleName);
- }
- int paraCount = server.getParameterCount();
-
- for(int i = 0 ; i < paraCount ; i++ ){
- Parameter parameter = server.getParameter(i);
- global.addParameter(parameter);
+ Iterator itr= server.getModules().iterator();
+ while (itr.hasNext()) {
+ QName qName = (QName) itr.next();
+ if(getModule(qName) == null ){
+ throw new AxisFault(server + " Refer to invalid module " + qName + " has not bean deployed yet !");
+ }
}
-
PhaseResolver phaseResolver = new PhaseResolver(engineRegistry);
- phaseResolver.buildGlobalChains(global);
+ phaseResolver.buildGlobalChains(server);
}
@@ -188,8 +209,8 @@
private EngineRegistry createEngineRegistry() {
EngineRegistry newEngineRegisty;
- AxisGlobal global = new AxisGlobal();
- newEngineRegisty = new EngineRegistryImpl(global);
+ server = new AxisGlobal();
+ newEngineRegisty = new EngineRegistryImpl(server);
return newEngineRegisty;
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentParser.java Thu Dec 23 01:04:18 2004
@@ -1,12 +1,12 @@
package org.apache.axis.deployment;
-import org.apache.axis.deployment.metadata.ServerMetaData;
import org.apache.axis.description.*;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.impl.description.AxisService;
import org.apache.axis.impl.description.FlowImpl;
import org.apache.axis.impl.description.ParameterImpl;
import org.apache.axis.impl.description.SimpleAxisOperationImpl;
+import org.apache.axis.impl.engine.EngineRegistryImpl;
import org.apache.axis.impl.providers.SimpleJavaProvider;
import org.apache.axis.phaseresolver.PhaseException;
@@ -16,6 +16,7 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import java.io.InputStream;
+import java.util.ArrayList;
/**
@@ -128,7 +129,7 @@
/**
* To process server.xml
*/
- public void procesServerXML(ServerMetaData serverMetaData) throws DeploymentException {
+ public void procesServerXML(AxisGlobal serverMetaData) throws DeploymentException {
try {
boolean END_DOCUMENT = false;
while (!END_DOCUMENT) {
@@ -139,20 +140,9 @@
break;
} else if (eventType == XMLStreamConstants.START_ELEMENT) {
String ST = pullparser.getLocalName(); //Staring tag name
- if (ST.equals(serverXMLST)) {
- int attribCount = pullparser.getAttributeCount();
- if (attribCount > 0) {
- for (int i = 0; i < attribCount; i++) {
- String attname = pullparser.getAttributeLocalName(i);
- String attvalue = pullparser.getAttributeValue(i);
- if (attname.equals(ServerMetaData.SERVERNAME)) {
- serverMetaData.setName(attvalue);
- }
- }
- }
- } else if (ST.equals(PARAMETERST)) {
+ if (ST.equals(PARAMETERST)) {
Parameter parameter = processParameter();
- serverMetaData.appParameter(parameter);
+ serverMetaData.addParameter(parameter);
} else if (ST.equals(TYPEMAPPINGST)) {
processTypeMapping();
} else if (ST.equals(MODULEST)) {
@@ -166,11 +156,8 @@
}
}
}
- } else if (ST.equals(HANDERST)) {
- HandlerMetaData handler = processHandler();
- serverMetaData.addHandlers(handler);
} else if (ST.equals(PHASE_ORDER)) {
- processPhaseOrder(serverMetaData);
+ ((EngineRegistryImpl)dpengine.getEngineRegistry()).setPhases(processPhaseOrder());
}
}
}
@@ -763,8 +750,9 @@
}
- public void processPhaseOrder(ServerMetaData server) throws DeploymentException {
+ public ArrayList processPhaseOrder() throws DeploymentException {
boolean END_PHASEORDER = false;
+ ArrayList pahseList = new ArrayList();
String text = ""; // to store the paramater elemnt
try {
while (!END_PHASEORDER) {
@@ -777,7 +765,7 @@
String attname = pullparser.getAttributeLocalName(0);
String attvalue = pullparser.getAttributeValue(0);
if (attname.equals(ATTNAME)) {
- server.addPhases(attvalue);
+ pahseList.add(attvalue);
}
}
} else if (eventType == XMLStreamConstants.END_ELEMENT) {
@@ -795,6 +783,7 @@
} catch (Exception e) {
throw new DeploymentException("Unknown process Exception", e);
}
+ return pahseList;
}
@@ -816,7 +805,7 @@
}
private String getShortFileName(String fileName){
- char seperator = '.';
+ char seperator = '.';
String value = null;
int index = fileName.indexOf(seperator);
if (index > 0) {
Added: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/server.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/server.xml?view=auto&rev=123178
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/server.xml Thu Dec 23 01:04:18 2004
@@ -0,0 +1,8 @@
+<server name ="AxisJava2.0" >
+ <phaseOrder>
+ <phase name="global"/>
+ <phase name="transport"/>
+ <phase name="service"/>
+ </phaseOrder>
+</server>
+
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java Thu Dec 23 01:04:18 2004
@@ -40,7 +40,8 @@
protected ParameterInclude paramInclude;
protected PhasesInclude phasesInclude;
protected Vector modules;
-
+
+ //TODO provide a way to store name (name attribute value server.xml)
public AxisGlobal(){
paramInclude = new ParameterIncludeImpl();
phasesInclude = new PhasesIncludeImpl();
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java Thu Dec 23 01:04:18 2004
@@ -15,17 +15,16 @@
*/
package org.apache.axis.impl.engine;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import javax.xml.namespace.QName;
-
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisModule;
import org.apache.axis.description.AxisTransport;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.impl.description.AxisService;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+import java.util.HashMap;
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java Thu Dec 23 01:04:18 2004
@@ -1,10 +1,6 @@
package org.apache.axis.phaseresolver;
-import java.util.ArrayList;
-import java.util.Vector;
-
import org.apache.axis.deployment.DeploymentConstants;
-import org.apache.axis.deployment.metadata.ServerMetaData;
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.HandlerMetaData;
import org.apache.axis.engine.AxisFault;
@@ -14,6 +10,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.util.ArrayList;
+import java.util.Vector;
+
/**
* Copyright 2001-2004 The Apache Software Foundation.
* <p/>
@@ -43,12 +42,12 @@
/**
* Referance to ServerMetaData inorder to get information about phases.
*/
- private ServerMetaData serverMetaData;// = new ServerMetaData();
+ private EngineRegistry registry;// = new ServerMetaData();
private AxisService service;
- public PhaseHolder(ServerMetaData serverMetaDatain,AxisService serviceIN) {
- this.serverMetaData = serverMetaDatain;
+ public PhaseHolder(EngineRegistry registry,AxisService serviceIN) {
+ this.registry = registry;
this.service = serviceIN;
}
@@ -63,13 +62,24 @@
return false;
}
+ private boolean isPhaseExistinER(String phaseName){
+ ArrayList pahselist = registry.getPhases();
+ for (int i = 0; i < pahselist.size(); i++) {
+ String pahse = (String) pahselist.get(i);
+ if(pahse.equals(phaseName)){
+ return true;
+ }
+ }
+ return false;
+ }
+
public void addHandler(HandlerMetaData handler) throws PhaseException {
String phaseName = handler.getRules().getPhaseName();
if (isPhaseExist(phaseName)) {
getPhase(phaseName).addHandler(handler);
} else {
- if (serverMetaData.isPhaseExist(phaseName)) {
+ if (isPhaseExistinER(phaseName)) {
PhaseMetaData newpPhase = new PhaseMetaData(phaseName);
addPhase(newpPhase);
newpPhase.addHandler(handler);
@@ -102,7 +112,7 @@
PhaseMetaData tempphase = (PhaseMetaData) phaseholder.elementAt(i);
phase[i] = tempphase;
}
- phase = serverMetaData.getOrderPhases(phase);
+ phase = getOrderPhases(phase);
// remove all items inorder to rearrange them
phaseholder.removeAllElements();
@@ -113,6 +123,27 @@
}
}
+
+ private PhaseMetaData[] getOrderPhases(PhaseMetaData[] phasesmetadats) {
+ PhaseMetaData[] temppahse = new PhaseMetaData[phasesmetadats.length];
+ int count = 0;
+ ArrayList pahselist = registry.getPhases();
+ for (int i = 0; i < pahselist.size(); i++) {
+ String phasemetadata = (String) pahselist.get(i);
+ for (int j = 0; j < phasesmetadats.length; j++) {
+ PhaseMetaData tempmetadata = phasesmetadats[j];
+ if (tempmetadata.getName().equals(phasemetadata)) {
+ temppahse[count] = tempmetadata;
+ count++;
+ }
+ }
+
+
+ }
+ return temppahse;
+ }
+
+
/**
* cahinType
* 1 : inFlowExcChain
@@ -126,7 +157,7 @@
OrderdPhases();
Vector tempHander = new Vector();
HandlerMetaData[] handlers;
-
+
switch (chainType) {
case 1 : {
ArrayList inChain = new ArrayList();// service.getExecutableInChain();
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java Thu Dec 23 01:04:18 2004
@@ -1,18 +1,18 @@
package org.apache.axis.phaseresolver;
-import java.util.Vector;
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axis.deployment.DeploymentEngine;
-import org.apache.axis.deployment.metadata.ServerMetaData;
-import org.apache.axis.description.*;
+import org.apache.axis.description.AxisGlobal;
+import org.apache.axis.description.AxisModule;
+import org.apache.axis.description.Flow;
+import org.apache.axis.description.HandlerMetaData;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.impl.description.AxisService;
+import javax.xml.namespace.QName;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Vector;
+
/**
* Copyright 2001-2004 The Apache Software Foundation.
* <p/>
@@ -36,7 +36,6 @@
private PhaseHolder phaseHolder ;
- private ServerMetaData server = DeploymentEngine.getServerMetaData();
/**
* default constructor , to obuild chains for AxisGlobal
@@ -163,7 +162,7 @@
allHandlers.add(metadata);
}
}
- phaseHolder = new PhaseHolder(server,axisService);
+ phaseHolder = new PhaseHolder(engineRegistry,axisService);
for (int i = 0; i < allHandlers.size(); i++) {
HandlerMetaData handlerMetaData = (HandlerMetaData) allHandlers.elementAt(i);
@@ -180,7 +179,7 @@
AxisModule module;
Flow flow = null;
for(int type = 1 ; type < 4 ; type ++){
- phaseHolder = new PhaseHolder(server,null);
+ phaseHolder = new PhaseHolder(engineRegistry,null);
for(int intA=0 ; intA < count; intA ++){
moduleName = (QName)modules.get(intA);
module = engineRegistry.getModule(moduleName);
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java?view=diff&rev=123178&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r1=123177&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r2=123178
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java Thu Dec 23 01:04:18 2004
@@ -26,7 +26,7 @@
public class ServiceTest extends TestCase {
EngineRegistry er = null;
public void testparseService1() throws PhaseException ,DeploymentException, AxisFault, XMLStreamException{
- String filename = "./target/test-resources/deployment" ;
+ String filename = "./target/test-resources/deployment" ;
DeploymentEngine deploymentEngine = new DeploymentEngine(filename);
er = deploymentEngine.start();
try {