Yes, the car file that includes the dataservice config is deployed through
the default deployer and it expects only a single file. Therefore, we
couldn't include the service.xml file into the car file. So we remove this
method and introduced some parameters (transports and security policy) into
the dataservice config.

Thanks


On Thu, Apr 23, 2015 at 10:34 AM, Anjana Fernando <[email protected]> wrote:

> Hi Kasun,
>
> Yeah, I guess we've removed this functionality, since we were replacing
> that functionality with additional properties we've introduced, for giving
> security policies and mentioning transports. @Chanika, I guess that's the
> case? .. and I guess, the reason for doing this is because of some tooling
> complications we had with services.xml? ..
>
> Cheers,
> Anjana.
>
> On Wed, Apr 22, 2015 at 6:27 PM, KasunG Gajasinghe <[email protected]>
> wrote:
>
>> Hi Anjana/Chanika,
>>
>> Did we decide to remove the services.xml support for the data services? I
>> noticed the below commit which made its way into DSS 3.2.1.
>>
>> Thanks.
>>
>> ---------- Forwarded message ----------
>> From: <[email protected]>
>> Date: Thu, Aug 28, 2014 at 9:54 AM
>> Subject: [Commits] [Carbon-platform] svn commit r206697 - in
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4:
>> . src/main/java/org/wso2/carbon/dataservices/core
>> To: [email protected]
>>
>>
>> Author: [email protected]
>> Date: Thu Aug 28 09:54:36 2014
>> New Revision: 206697
>> URL: http://wso2.org/svn/browse/wso2?view=rev&revision=206697
>>
>> Log:
>> Fixing DS-953
>>
>> Modified:
>>
>>  
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/pom.xml
>>
>>  
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/src/main/java/org/wso2/carbon/dataservices/core/DBDeployer.java
>>
>> Modified:
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/pom.xml
>> URL:
>> http://wso2.org/svn/browse/wso2/carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/pom.xml?rev=206697&r1=206696&r2=206697&view=diff
>>
>> ==============================================================================
>> ---
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/pom.xml
>>   (original)
>> +++
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/pom.xml
>>   Thu Aug 28 09:54:36 2014
>> @@ -127,7 +127,7 @@
>>          <dependency>
>>              <groupId>org.wso2.carbon</groupId>
>>              <artifactId>org.wso2.carbon.dataservices.common</artifactId>
>> -            <version>4.2.3</version>
>> +            <version>4.2.4</version>
>>          </dependency>
>>          <dependency>
>>              <groupId>org.wso2.carbon</groupId>
>>
>> Modified:
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/src/main/java/org/wso2/carbon/dataservices/core/DBDeployer.java
>> URL:
>> http://wso2.org/svn/browse/wso2/carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/src/main/java/org/wso2/carbon/dataservices/core/DBDeployer.java?rev=206697&r1=206696&r2=206697&view=diff
>>
>> ==============================================================================
>> ---
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/src/main/java/org/wso2/carbon/dataservices/core/DBDeployer.java
>>   (original)
>> +++
>> carbon/platform/branches/turing/components/data-services/org.wso2.carbon.dataservices.core/4.2.4/src/main/java/org/wso2/carbon/dataservices/core/DBDeployer.java
>>   Thu Aug 28 09:54:36 2014
>> @@ -18,6 +18,7 @@
>>   */
>>  package org.wso2.carbon.dataservices.core;
>>
>> +import org.apache.axiom.om.OMAttribute;
>>  import org.apache.axiom.om.OMElement;
>>  import org.apache.axiom.om.impl.builder.StAXOMBuilder;
>>  import org.apache.axiom.soap.SOAP11Constants;
>> @@ -35,8 +36,10 @@
>>  import org.apache.axis2.transport.http.HTTPConstants;
>>  import org.apache.axis2.wsdl.WSDLConstants;
>>  import org.apache.axis2.wsdl.WSDLUtil;
>> +import org.apache.neethi.Policy;
>>  import org.apache.commons.logging.Log;
>>  import org.apache.commons.logging.LogFactory;
>> +import org.apache.neethi.PolicyEngine;
>>  import org.apache.ws.commons.schema.utils.NamespaceMap;
>>  import org.wso2.carbon.CarbonConstants;
>>  import org.wso2.carbon.base.MultitenantConstants;
>> @@ -56,6 +59,7 @@
>>  import org.wso2.carbon.ndatasource.common.DataSourceConstants;
>>  import org.wso2.carbon.ndatasource.common.DataSourceException;
>>  import org.wso2.carbon.ndatasource.core.DataSourceManager;
>> +import org.wso2.carbon.registry.core.Registry;
>>  import org.wso2.carbon.user.core.UserStoreException;
>>  import org.wso2.carbon.user.core.service.RealmService;
>>  import org.wso2.carbon.utils.CarbonUtils;
>> @@ -1070,34 +1074,17 @@
>>          * if so, the AxisService representing the data service is
>> applied the instructions from its
>>          * "services.xml".
>>          */
>> * -       private AxisService handleServicesXML(String dbsPath,
>> AxisServiceGroup axisServiceGroup,*
>> -                       AxisService axisService) throws DataServiceFault {
>> +       private AxisService handleTransports(DeploymentFileData file,
>> AxisService axisService) throws DataServiceFault {
>>                 try {
>> -                       String serviceXMLPath = dbsPath.substring(0,
>> dbsPath.length() - 4) +
>> -
>>  DBConstants.DBS_SERVICES_XML_SUFFIX;
>> -                       File servicesXMLFile = new File(serviceXMLPath);
>> -                       if (servicesXMLFile.exists()) {
>> -                               XMLStreamReader parser =
>> DBUtils.getXMLInputFactory().createXMLStreamReader(
>> -                                               new
>> FileInputStream(servicesXMLFile));
>> -                               StAXOMBuilder builder = new
>> StAXOMBuilder(parser);
>> -                               OMElement documentElement =
>> builder.getDocumentElement();
>> -                               if
>> (documentElement.getLocalName().equals(DBConstants.AXIS2_SERVICE_GROUP)) {
>> -                                       HashMap<String, AxisService>
>> wsdlServices = new HashMap<String, AxisService>();
>> -
>>  wsdlServices.put(axisService.getName(), axisService);
>> -                                       ServiceGroupBuilder sgb = new
>> ServiceGroupBuilder(documentElement,
>> -                                                       wsdlServices,
>> this.getConfigContext());
>> -                                       axisService =
>> sgb.populateServiceGroup(axisServiceGroup).get(0);
>> -                               } else if
>> (documentElement.getLocalName().equals(DBConstants.AXIS2_SERVICE)) {
>> -                                       ServiceBuilder sb = new
>> ServiceBuilder(this.getConfigContext(),
>> -                                                       axisService);
>> -                                       axisService =
>> sb.populateService(documentElement);
>> -                               } else {
>> -                                       throw new
>> DataServiceFault("services xml file: " + serviceXMLPath +
>> -                                                       " is not valid,
>> cannot find the 'service' or 'serviceGroup' element");
>> -                               }
>> -                       }
>> +            StAXOMBuilder builder = new StAXOMBuilder(new
>> FileInputStream(file.getFile().getAbsoluteFile()));
>> +            OMElement documentElement =  builder.getDocumentElement();
>> +            OMAttribute transports = documentElement.getAttribute(new
>> QName(DBSFields.TRANSPORTS));
>> +            if (transports != null) {
>> +                String [] transportArr =
>> transports.getAttributeValue().split(" ");
>> +
>> axisService.setExposedTransports(Arrays.asList(transportArr));
>> +            }
>>                 } catch (Exception e) {
>> -                       throw new DataServiceFault(e, "Error in
>> processing services.xml");
>> +                       throw new DataServiceFault(e, "Error in
>> processing transports info");
>>                 }
>>                 return axisService;
>>         }
>> @@ -1113,10 +1100,33 @@
>>                 axisService.setParent(axisServiceGroup);
>>
>> axisService.setClassLoader(axisConfig.getServiceClassLoader());
>>          /* handle services.xml, if exists */
>> -               this.handleServicesXML(currentFile.getAbsolutePath(),
>> axisServiceGroup, axisService);
>> +               this.handleTransports(currentFile, axisService);
>> +        this.handleSecurityProxy(currentFile, axisService);
>>                 return axisService;
>>         }
>>
>> +    private AxisService handleSecurityProxy(DeploymentFileData file,
>> AxisService axisService) throws DataServiceFault{
>> +        try {
>> +            StAXOMBuilder builder = new StAXOMBuilder(new
>> FileInputStream(file.getFile().getAbsoluteFile()));
>> +            OMElement documentElement =  builder.getDocumentElement();
>> +            OMElement policyElement=
>> documentElement.getFirstChildWithName(new QName(DBSFields.POLICY));
>> +            if (policyElement != null) {
>> +                String policyKey = policyElement.getAttributeValue(new
>> QName(DBSFields.POLICY_KEY));
>> +                Policy policy = PolicyEngine.getPolicy(
>> +                        DBUtils.getInputStreamFromPath(policyKey));
>> +                axisService.getPolicySubject().attachPolicy(policy);
>> +            }
>> +            OMElement enableSecElement=
>> documentElement.getFirstChildWithName(new QName(DBSFields.ENABLESEC));
>> +            if (enableSecElement != null) {
>> +
>> axisService.engageModule(this.configCtx.getAxisConfiguration().getModule(
>> +                        DBConstants.SECURITY_MODULE_NAME),
>> this.configCtx.getAxisConfiguration());
>> +            }
>> +        }catch (Exception e) {
>> +            throw new DataServiceFault(e, "Error in processing security
>> policy");
>> +        }
>> +        return axisService;
>> +    }
>> +
>>      @SuppressWarnings("unchecked")
>>         private void secureVaultResolve(OMElement dbsElement) {
>>         String secretAliasAttr = dbsElement.getAttributeValue(new
>> QName(DataSourceConstants.SECURE_VAULT_NS,
>> _______________________________________________
>> Commits mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/commits
>>
>>
>>
>> --
>>
>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc.
>> email: kasung AT spamfree wso2.com
>> linked-in: http://lk.linkedin.com/in/gajasinghe
>> blog: http://kasunbg.org
>>
>>
>>
>
>
>
> --
> *Anjana Fernando*
> Senior Technical Lead
> WSO2 Inc. | http://wso2.com
> lean . enterprise . middleware
>



-- 
Best Regards..

Chanika Geeganage
Software Engineer
Mobile : +94773522586
WSO2, Inc.; http://wso2.com
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to