On Thu, Feb 11, 2010 at 10:10 AM, Isuru Suriarachchi <isur...@gmail.com>wrote:
> > > On Thu, Feb 11, 2010 at 10:05 AM, Amila Suriarachchi < > amilasuriarach...@gmail.com> wrote: > >> >> >> On Thu, Feb 11, 2010 at 8:11 AM, Ruwan Linton <ruwan.lin...@gmail.com>wrote: >> >>> Folks, >>> >>> Synapse has a requirement to have a directory called conf/synapse-config >>> in the repository and have its own space for sequences, endpoints, proxy >>> services so forth inside that.. So the expected deployer config within the >>> axis2.xml is as follows; >>> >>> <deployer extension="xml" directory="conf/synapse-config/sequences" >>> class="org.apache.synapse.deployers.SequenceDeployer"/> >>> >>> but because of the following code fragment it takes only the last >>> director specified in the directory declaration of the deployer. Is there >>> any reason for us to restrict the deployer to only one level, even in that >>> case we should be treating the directory as the top level direcotry so that >>> the path is correct, but here we are calculating a directory path which is >>> not existing. With the above case it computes the directory as >>> $AXIS2_REPOSITORY/sequences which is completely wrong :-( >>> >>> org.apache.axis2.deployment.RepositoryListener [267, 280] >>> >>> //This will load the files from the directories >>> // specified by axis2.xml (As <deployer>) >>> private void loadOtherDirectories() { >>> for (Map.Entry<String, Map<String, Deployer>> entry : >>> deploymentEngine.getDeployers().entrySet()) { >>> String directory = entry.getKey(); >>> Map<String, Deployer> extensionMap = entry.getValue(); >>> for (String extension : extensionMap.keySet()) { >>> String[] strings = directory.split("/"); >>> File dirToSearch = new >>> File(deploymentEngine.getRepositoryDir(), >>> strings[strings.length - 1]); >>> findFileForGivenDirectory(dirToSearch, extension, >>> directory); >>> >> I think it may work if you specify only 'conf' and above method finds it >> recursively. >> > > But if it is set to 'conf', the deployer will try to find sequences inside > all sub directories of the 'conf' dir. Therefore it won't be a good solution > I guess. > > +1 for removing this splitting code and supporting a '/' separated path for > the directory attribute of the deployer, rather than only supporting one > level. > Yes, Isuru is correct. So inside the conf/synapse-config we have endpoints, proxy services, local entries and so forth as well and they will be tried to build as sequences and will be failed as well. Note that all these configurations are in .xml extension and we cannot differentiate them with the extension. Let's remove the splitting if there is no valid reason to have that. I had a look at the logic and there is no need to have this logic. Also the logic is wrong, I think this has been introduced to detect the absolute path provided as the directory case, where it should have been better handled with the File operations :-) I will fix it, and will see if it breaks anything (I don't think so, though) Thanks, Ruwan > > Thanks, > ~Isuru > > >> >> +1 to remove spliting if there is no reason for that. >> >> thanks, >> Amila. >> >>> } >>> } >>> } >>> >>> Can we get rid of the splitting and let the user declare inner >>> directories for the artifacts to be deployed?? >>> >>> Thanks, >>> Ruwan >>> >>> -- >>> Ruwan Linton >>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb >>> WSO2 Inc.; http://wso2.org >>> email: ru...@wso2.com; cell: +94 77 341 3097 >>> blog: http://ruwansblog.blogspot.com >>> >> >> >> >> -- >> Amila Suriarachchi >> WSO2 Inc. >> blog: http://amilachinthaka.blogspot.com/ >> > > > > -- > Senior Software Engineer, > WSO2 Inc. http://wso2.org/ > Blog : http://isurues.wordpress.com/ > -- Ruwan Linton Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb WSO2 Inc.; http://wso2.org email: ru...@wso2.com; cell: +94 77 341 3097 blog: http://ruwansblog.blogspot.com