axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruwan Linton <ruwan.lin...@gmail.com>
Subject Re: Axis2 Deployers doesn't support a directory within another directory under repository??
Date Thu, 11 Feb 2010 05:23:03 GMT
On Thu, Feb 11, 2010 at 10:46 AM, Ruwan Linton <ruwan.linton@gmail.com>wrote:

>
>
> On Thu, Feb 11, 2010 at 10:10 AM, Isuru Suriarachchi <isurues@gmail.com>wrote:
>
>>
>>
>> On Thu, Feb 11, 2010 at 10:05 AM, Amila Suriarachchi <
>> amilasuriarachchi@gmail.com> wrote:
>>
>>>
>>>
>>> On Thu, Feb 11, 2010 at 8:11 AM, Ruwan Linton <ruwan.linton@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 :-)
>

Well, by looking at the JavaDoc for the two argument (File, String) File
constructor we do not need to do anything special, File class handles it
within the constructor.

<quote> If the <code>child</code>
     * pathname string is absolute then it is converted into a relative
     * pathname in a system-dependent way.
</quote>

Thanks,
Ruwan


>
> 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: ruwan@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: ruwan@wso2.com; cell: +94 77 341 3097
> blog: http://ruwansblog.blogspot.com
>



-- 
Ruwan Linton
Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: ruwan@wso2.com; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com

Mime
View raw message