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
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to