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 2005/09/16 13:13:56 UTC
svn commit: r289491 - in
/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment:
DeploymentEngine.java listener/RepositoryListenerImpl.java
repository/util/ArchiveReader.java scheduler/SchedulerTask.java
Author: deepal
Date: Fri Sep 16 04:13:44 2005
New Revision: 289491
URL: http://svn.apache.org/viewcvs?rev=289491&view=rev
Log:
exploded directory support
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=289491&r1=289490&r2=289491&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java Fri Sep 16 04:13:44 2005
@@ -68,7 +68,7 @@
private boolean hotDeployment = true; //to do hot deployment or not
private boolean hotUpdate = true; // to do hot update or not
- private boolean extractServiceArchive = false;// need to exatract service archive file
+ private boolean explodedDir = false;// need to exatract service archive file
/**
@@ -229,7 +229,7 @@
if(paraextractServiceArchive != null){
value = (String) paraextractServiceArchive.getValue();
if ("true".equalsIgnoreCase(value))
- extractServiceArchive = true;
+ explodedDir = true;
}
}
@@ -252,7 +252,7 @@
if (hotDeployment) {
startSearch(this);
} else {
- new RepositoryListenerImpl(folderName, this,extractServiceArchive);
+ new RepositoryListenerImpl(folderName, this);
}
try {
((AxisConfigurationImpl) axisConfig).setRepository(axis2repository);
@@ -295,7 +295,7 @@
if (isRepositoryExist) {
hotDeployment = false;
hotUpdate = false;
- new RepositoryListenerImpl(folderName, this,extractServiceArchive);
+ new RepositoryListenerImpl(folderName, this);
}
try {
((AxisConfigurationImpl) axisConfig).setRepository(axis2repository);
@@ -392,7 +392,7 @@
*/
private void startSearch(DeploymentEngine engine) {
scheduler = new Scheduler();
- scheduler.schedule(new SchedulerTask(engine, folderName,extractServiceArchive),
+ scheduler.schedule(new SchedulerTask(engine, folderName),
new DeploymentIterator());
}
@@ -584,13 +584,14 @@
if (wsToDeploy.size() > 0) {
for (int i = 0; i < wsToDeploy.size(); i++) {
currentArchiveFile = (ArchiveFileData) wsToDeploy.get(i);
+ explodedDir = currentArchiveFile.getFile().isDirectory();
int type = currentArchiveFile.getType();
try {
ArchiveReader archiveReader;
StringWriter errorWriter = new StringWriter();
switch (type) {
case SERVICE:
- currentArchiveFile.setClassLoader(extractServiceArchive);
+ currentArchiveFile.setClassLoader(explodedDir);
archiveReader = new ArchiveReader();
String serviceStatus = "";
try {
@@ -599,7 +600,7 @@
new ServiceGroupDescription(axisConfig);
archiveReader.processServiceGroup(currentArchiveFile.getAbsolutePath(),
this,
- sericeGroup,extractServiceArchive);
+ sericeGroup,explodedDir);
// archiveReader.readServiceArchive(currentArchiveFile.getAbsolutePath(),
// this,
// service);
@@ -614,9 +615,7 @@
de.printStackTrace(error_ptintWriter);
serviceStatus = "Error:\n" +
errorWriter.toString();
- de.printStackTrace();
} catch (AxisFault axisFault) {
- axisFault.printStackTrace();
log.info(Messages.getMessage(DeploymentErrorMsgs.IN_VALID_SERVICE,
currentArchiveFile.getName()));
// log.info("AxisFault " + axisFault);
@@ -625,7 +624,6 @@
serviceStatus = "Error:\n" +
errorWriter.toString();
} catch (Exception e) {
- e.printStackTrace();
log.info(Messages.getMessage(DeploymentErrorMsgs.IN_VALID_SERVICE,
currentArchiveFile.getName()));
// log.info("Exception " + e);
@@ -642,7 +640,7 @@
}
break;
case MODULE:
- currentArchiveFile.setClassLoader(false);
+ currentArchiveFile.setClassLoader(explodedDir);
archiveReader = new ArchiveReader();
String moduleStatus = "";
try {
@@ -650,7 +648,7 @@
metaData.setParent(axisConfig);
archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(),
this,
- metaData);
+ metaData,explodedDir);
addNewModule(metaData);
log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
metaData.getName().getLocalPart()));
@@ -828,7 +826,7 @@
currentArchiveFile = new ArchiveFileData(modulearchive, MODULE);
axismodule = new ModuleDescription();
ArchiveReader archiveReader = new ArchiveReader();
- archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule);
+ archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule,false);
currentArchiveFile.setClassLoader(false);
Flow inflow = axismodule.getInFlow();
if (inflow != null) {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java?rev=289491&r1=289490&r2=289491&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java Fri Sep 16 04:13:44 2005
@@ -56,7 +56,6 @@
private String folderName;
- private boolean extarctServiceArchive = false;
/**
* This constructor take two argumnets folder name and referance to Deployment Engine
@@ -67,10 +66,9 @@
* @param deploy_engine refearnce to engine registry inorder to inform the updates
*/
public RepositoryListenerImpl(String folderName,
- DeploymentEngine deploy_engine, boolean serviceExtarct) {
+ DeploymentEngine deploy_engine) {
this.folderName = folderName;
wsinfoList = new WSInfoList(deploy_engine);
- this.extarctServiceArchive = serviceExtarct;
init();
}
@@ -103,6 +101,18 @@
}
}
}
+
+ //adding exploded dir
+ File rootDir = new File(modulepath);
+ File [] fileList = rootDir.listFiles();
+ if (fileList !=null) {
+ for (int i = 0; i < fileList.length; i++) {
+ File file = fileList[i];
+ if(file.isDirectory()){
+ wsinfoList.addWSInfoItem(file, MODULE);
+ }
+ }
+ }
}
/**
@@ -111,11 +121,16 @@
*/
public void checkServices() {
String modulepath = folderName + SERVICE_PATH;
- if(extarctServiceArchive){
- searchExploedServies(modulepath);
- }else {
- searchWS(modulepath, SERVICE);
- }
+
+ // exploded dir
+ searchExplodedDir(modulepath);
+ //service archives
+ searchWS(modulepath, SERVICE);
+// if(extarctServiceArchive){
+// searchExploedServies(modulepath);
+// }else {
+// searchWS(modulepath, SERVICE);
+// }
}
/**
@@ -180,74 +195,87 @@
}
- private void searchExploedServies(String rootDirName){
+ private void searchExplodedDir(String rootDirName){
File rootDir = new File(rootDirName);
File [] fileList = rootDir.listFiles();
- ArrayList tobedelete = new ArrayList();
- ArrayList tobeextarct = new ArrayList();
- ArrayList allFiles = new ArrayList();
- for (int i = 0; fileList != null && i < fileList.length; i++) {
- File file_first = fileList[i];
- boolean isservice = ArchiveFileData.isServiceArchiveFile(file_first.getName());
- boolean found = false;
- if(isservice){
- for (int j = 0; j < fileList.length; j++) {
- File file_second = fileList[j];
- if(file_second.getName().equalsIgnoreCase(
- getShortFileName(file_first.getName()))){
- if(file_second.lastModified() >= file_first.lastModified()){
- found = true;
- allFiles.add(file_second);
- break;
- } else if (file_second.lastModified() < file_first.lastModified()){
- tobedelete.add(file_second);
- tobeextarct.add(file_first);
- found = true;
- }
- }
- }
- if(!found){
- tobeextarct.add(file_first);
- }
- }
- }
- for (int i = 0; i < tobedelete.size(); i++) {
- File file1 = (File) tobedelete.get(i);
- deleteDir(file1);
- }
-
- for (int i = 0; i < tobeextarct.size(); i++) {
- File file1 = (File) tobeextarct.get(i);
- File outFile = new File(rootDirName,getShortFileName(file1.getName()));
- if(!outFile.exists()){
- outFile.mkdir();
- }
- extarctServiceArchive(file1,outFile);
- allFiles.add(outFile);
- }
-
- for (int i = 0; fileList != null && i < fileList.length; i++) {
- File file = fileList[i];
- boolean found = false;
- boolean todo = ArchiveFileData.isServiceArchiveFile(file.getName());
- if (!todo) {
- for (int j = 0; j < allFiles.size(); j++) {
- File file1 = (File) allFiles.get(j);
- if(file1.getName().equals(file.getName())){
- found = true;
- }
- }
- if(!found){
- allFiles.add(file);
+ if (fileList !=null) {
+ for (int i = 0; i < fileList.length; i++) {
+ File file = fileList[i];
+ if(file.isDirectory()){
+ wsinfoList.addWSInfoItem(file, SERVICE);
}
}
}
-
- for (int i = 0; i < allFiles.size(); i++) {
- File file = (File) allFiles.get(i);
- wsinfoList.addWSInfoItem(file, SERVICE);
- }
}
+
+// private void searchExploedServies(String rootDirName){
+// File rootDir = new File(rootDirName);
+// File [] fileList = rootDir.listFiles();
+// ArrayList tobedelete = new ArrayList();
+// ArrayList tobeextarct = new ArrayList();
+// ArrayList allFiles = new ArrayList();
+// for (int i = 0; fileList != null && i < fileList.length; i++) {
+// File file_first = fileList[i];
+// boolean isservice = ArchiveFileData.isServiceArchiveFile(file_first.getName());
+// boolean found = false;
+// if(isservice){
+// for (int j = 0; j < fileList.length; j++) {
+// File file_second = fileList[j];
+// if(file_second.getName().equalsIgnoreCase(
+// getShortFileName(file_first.getName()))){
+// if(file_second.lastModified() >= file_first.lastModified()){
+// found = true;
+// allFiles.add(file_second);
+// break;
+// } else if (file_second.lastModified() < file_first.lastModified()){
+// tobedelete.add(file_second);
+// tobeextarct.add(file_first);
+// found = true;
+// }
+// }
+// }
+// if(!found){
+// tobeextarct.add(file_first);
+// }
+// }
+// }
+// for (int i = 0; i < tobedelete.size(); i++) {
+// File file1 = (File) tobedelete.get(i);
+// deleteDir(file1);
+// }
+//
+// for (int i = 0; i < tobeextarct.size(); i++) {
+// File file1 = (File) tobeextarct.get(i);
+// File outFile = new File(rootDirName,getShortFileName(file1.getName()));
+// if(!outFile.exists()){
+// outFile.mkdir();
+// }
+// extarctServiceArchive(file1,outFile);
+// allFiles.add(outFile);
+// }
+//
+// for (int i = 0; fileList != null && i < fileList.length; i++) {
+// File file = fileList[i];
+// boolean found = false;
+// boolean todo = ArchiveFileData.isServiceArchiveFile(file.getName());
+// if (!todo) {
+// for (int j = 0; j < allFiles.size(); j++) {
+// File file1 = (File) allFiles.get(j);
+// if(file1.getName().equals(file.getName())){
+// found = true;
+// }
+// }
+// if(!found){
+// allFiles.add(file);
+// }
+// }
+// }
+//
+// for (int i = 0; i < allFiles.size(); i++) {
+// File file = (File) allFiles.get(i);
+// wsinfoList.addWSInfoItem(file, SERVICE);
+// }
+// }
/**
* To delete a given directory with its all childerns
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?rev=289491&r1=289490&r2=289491&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Fri Sep 16 04:13:44 2005
@@ -213,7 +213,7 @@
break;
}
}
- // zin.close();
+ // zin.close();
if (!foundServiceXML) {
throw new DeploymentException(
Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND));
@@ -263,8 +263,6 @@
serviceDesc.setClassLoader(engine.getCurrentFileItem().getClassLoader());
ServiceBuilder serviceBuilder = new ServiceBuilder(engine,serviceDesc);
serviceBuilder.populateService(services);
- //todo fix me deepal
- //serviceGroupDesc.addService(serviceDesc);
} else if(SERVICE_GROUP_ELEMENT.equals(rootelementName)){
ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services,engine);
groupBuilder.populateServiceGroup(serviceGroupDesc);
@@ -273,28 +271,46 @@
public void readModuleArchive(String filename,
DeploymentEngine engine,
- ModuleDescription module) throws DeploymentException {
+ ModuleDescription module , boolean explodedDir) throws DeploymentException {
// get attribute values
boolean foundmoduleXML = false;
- ZipInputStream zin;
- try {
- zin = new ZipInputStream(new FileInputStream(filename));
- ZipEntry entry;
- while ((entry = zin.getNextEntry()) != null) {
- if (entry.getName().equals(MODULEXML)) {
- foundmoduleXML = true;
- ModuleBuilder builder = new ModuleBuilder(zin, engine, module);
- builder.populateModule();
- break;
+ if (!explodedDir) {
+ ZipInputStream zin;
+ try {
+ zin = new ZipInputStream(new FileInputStream(filename));
+ ZipEntry entry;
+ while ((entry = zin.getNextEntry()) != null) {
+ if (entry.getName().equals(MODULEXML)) {
+ foundmoduleXML = true;
+ ModuleBuilder builder = new ModuleBuilder(zin, engine, module);
+ builder.populateModule();
+ break;
+ }
+ }
+ zin.close();
+ if (!foundmoduleXML) {
+ throw new DeploymentException(Messages.getMessage(
+ DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, filename));
}
+ } catch (Exception e) {
+ throw new DeploymentException(e);
}
- zin.close();
- if (!foundmoduleXML) {
+ } else {
+ File file = new File(filename, MODULEXML);
+ if (file.exists()) {
+ InputStream in = null;
+ try {
+ in = new FileInputStream(file);
+ ModuleBuilder builder = new ModuleBuilder(in, engine, module);
+ builder.populateModule();
+ } catch (FileNotFoundException e) {
+ throw new DeploymentException("FileNotFound : " + e);
+ }
+ } else {
throw new DeploymentException(Messages.getMessage(
- DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, filename));
+ DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, filename));
}
- } catch (Exception e) {
- throw new DeploymentException(e);
+
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java?rev=289491&r1=289490&r2=289491&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/scheduler/SchedulerTask.java Fri Sep 16 04:13:44 2005
@@ -38,9 +38,8 @@
* Creates a new scheduler task.
*/
- public SchedulerTask(DeploymentEngine deploy_engine, String folderName,
- boolean extarctServiceArchive) {
- wsListener = new RepositoryListenerImpl(folderName, deploy_engine,extarctServiceArchive);
+ public SchedulerTask(DeploymentEngine deploy_engine, String folderName ) {
+ wsListener = new RepositoryListenerImpl(folderName, deploy_engine);
}
/**