Here is an aar straight from Axis version example:

//layout of version.aar:

   created: META-INF/
  inflated: META-INF/MANIFEST.MF
   created: sample/
   created: sample/axisversion/
  inflated: sample/axisversion/Version.class
  inflated: META-INF/services.xml


//org.apache.axis2.deployment.DeploymentEngine axis code used to 
populateService with .aar contents:

    protected ArrayList populateService(AxisServiceGroup serviceGroup,
                                        URL servicesURL,
                                        String serviceName) throws 
DeploymentException {
        try {
            serviceGroup.setServiceGroupName(serviceName);
            ClassLoader serviceClassLoader = Utils.createClassLoader(
                    new URL[]{servicesURL},
                    axisConfig.getServiceClassLoader(),
                    true,
                    (File) 
axisConfig.getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                    axisConfig.isChildFirstClassLoading());
            String metainf = "meta-inf";
            serviceGroup.setServiceGroupClassLoader(serviceClassLoader);
            //processing wsdl.list
            InputStream wsdlfilesStream =
                    
serviceClassLoader.getResourceAsStream("meta-inf/wsdl.list");
            if (wsdlfilesStream == null) {
                wsdlfilesStream = 
serviceClassLoader.getResourceAsStream("META-INF/wsdl.list");
                if (wsdlfilesStream != null) {
                    metainf = "META-INF";
                }
            }
            HashMap servicesMap = new HashMap();
            if (wsdlfilesStream != null) {
                ArchiveReader reader = new ArchiveReader();
                BufferedReader input = new BufferedReader(new 
InputStreamReader(wsdlfilesStream));
                String line;
                while ((line = input.readLine()) != null) {
                    line = line.trim();
                    if (line.length() > 0 && line.charAt(0) != '#') {
                        line = metainf + "/" + line;
                        try {
                            List services = reader.getAxisServiceFromWsdl(
                                    
serviceClassLoader.getResourceAsStream(line),
                                    serviceClassLoader, line);
                            if (services != null) {
                                for (Object service : services) {
                                    AxisService axisService = (AxisService) 
service;
                                    servicesMap.put(axisService.getName(), 
axisService);
                                }
                            }

                        } catch (Exception e) {
                            throw new DeploymentException(e);
                        }
                    }
                }
            }
            InputStream servicexmlStream =
                    
serviceClassLoader.getResourceAsStream("META-INF/services.xml");
            if (servicexmlStream == null) {
                servicexmlStream = 
serviceClassLoader.getResourceAsStream("meta-inf/services.xml");
            } else {
                metainf = "META-INF";
            }
            if (servicexmlStream == null) {
                throw new DeploymentException(
                        
Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND,
                                servicesURL.toString()));
            }
            DescriptionBuilder builder = new 
DescriptionBuilder(servicexmlStream, configContext);
            OMElement rootElement = builder.buildOM();
            String elementName = rootElement.getLocalName();

            if (TAG_SERVICE.equals(elementName)) {
                AxisService axisService = null;
                String wsdlLocation = "META-INF/service.wsdl";
                InputStream wsdlStream =
                        serviceClassLoader.getResourceAsStream(wsdlLocation);
                URL wsdlURL = serviceClassLoader.getResource(metainf + 
"/service.wsdl");
                if (wsdlStream == null) {
                    wsdlLocation = "META-INF/" + serviceName + ".wsdl";
                    wsdlStream = serviceClassLoader
                            .getResourceAsStream(wsdlLocation);
                    wsdlURL = serviceClassLoader.getResource(wsdlLocation);
                }
                if (wsdlStream != null) {
                    WSDL11ToAxisServiceBuilder wsdl2AxisServiceBuilder =
                            new WSDL11ToAxisServiceBuilder(wsdlStream, null, 
null);
                    File file = Utils.toFile(servicesURL);
                    if (file != null && file.exists()) {
                        wsdl2AxisServiceBuilder.setCustomWSDLResolver(
                                new AARBasedWSDLLocator(wsdlLocation, file, 
wsdlStream));
                        wsdl2AxisServiceBuilder.setCustomResolver(
                                new AARFileBasedURIResolver(file));
                    }
                    if (wsdlURL != null) {
                        
wsdl2AxisServiceBuilder.setDocumentBaseUri(wsdlURL.toString());
                    }
                    axisService = wsdl2AxisServiceBuilder.populateService();
                    axisService.setWsdlFound(true);
                    axisService.setCustomWsdl(true);
                    axisService.setName(serviceName);
                }
                if (axisService == null) {
                    axisService = new AxisService(serviceName);
                }

                axisService.setParent(serviceGroup);
                axisService.setClassLoader(serviceClassLoader);

                ServiceBuilder serviceBuilder = new 
ServiceBuilder(configContext, axisService);
                AxisService service = 
serviceBuilder.populateService(rootElement);

                ArrayList serviceList = new ArrayList();
                serviceList.add(service);
                return serviceList;
            } else if (TAG_SERVICE_GROUP.equals(elementName)) {
                ServiceGroupBuilder groupBuilder = new 
ServiceGroupBuilder(rootElement, servicesMap,
                        configContext);
                ArrayList servicList = 
groupBuilder.populateServiceGroup(serviceGroup);
                Iterator serviceIterator = servicList.iterator();
                while (serviceIterator.hasNext()) {
                    AxisService axisService = (AxisService) 
serviceIterator.next();
                    String wsdlLocation = "META-INF/service.wsdl";
                    InputStream wsdlStream =
                            
serviceClassLoader.getResourceAsStream(wsdlLocation);
                    URL wsdlURL = serviceClassLoader.getResource(wsdlLocation);
                    if (wsdlStream == null) {
                        wsdlLocation = "META-INF/" + serviceName + ".wsdl";
                        wsdlStream = serviceClassLoader
                                .getResourceAsStream(wsdlLocation);
                        wsdlURL =
                                serviceClassLoader.getResource(wsdlLocation);
                    }
                    if (wsdlStream != null) {
                        WSDL11ToAxisServiceBuilder wsdl2AxisServiceBuilder =
                                new WSDL11ToAxisServiceBuilder(wsdlStream, 
axisService);
                        File file = Utils.toFile(servicesURL);
                        if (file != null && file.exists()) {
                            wsdl2AxisServiceBuilder.setCustomWSDLResolver(
                                    new AARBasedWSDLLocator(wsdlLocation, file, 
wsdlStream));
                            wsdl2AxisServiceBuilder.setCustomResolver(
                                    new AARFileBasedURIResolver(file));
                        }
                        if (wsdlURL != null) {
                            
wsdl2AxisServiceBuilder.setDocumentBaseUri(wsdlURL.toString());
                        }
                        axisService = wsdl2AxisServiceBuilder.populateService();
                        axisService.setWsdlFound(true);
                        axisService.setCustomWsdl(true);
                        // Set the default message receiver for the operations 
that were
                        // not listed in the services.xml
                        Iterator operations = axisService.getOperations();
                        while (operations.hasNext()) {
                            AxisOperation operation = (AxisOperation) 
operations.next();
                            if (operation.getMessageReceiver() == null) {
                                
operation.setMessageReceiver(loadDefaultMessageReceiver(
                                        operation.getMessageExchangePattern(), 
axisService));
                            }
                        }
                    }
                }
                return servicList;
            }
        } catch (IOException e) {
            throw new DeploymentException(e);
        } catch (XMLStreamException e) {
            throw new DeploymentException(e);
        }
        return null;
    }

does this answer your question?
Martin 
______________


> Date: Tue, 22 Jul 2014 07:56:55 +1000
> Subject: Re: maven-dependency-plugin unpacking aar format?
> From: [email protected]
> To: [email protected]
> 
> David, what the use case for unpacking the AAR?
> 
> 
> William
> 
> 
> On Tue, Jul 22, 2014 at 7:27 AM, David Hoffer <[email protected]> wrote:
> 
> > Here is a simplified project showing my use-case, I hope this helps.  Note
> > I'm using unpack-dependencies as the aar is a module in the same project;
> > however I assume the same problem exists with unpack, if that's the case
> > that would make the test project even simpler.
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
> > http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/xsd/maven-4.0.0.xsd";>
> >
> >     <modelVersion>4.0.0</modelVersion>
> >
> >     <groupId>com.company.project</groupId>
> >     <artifactId>service</artifactId>
> >     <version>1.0-SNAPSHOT</version>
> >
> >     <packaging>pom</packaging>
> >
> >     <dependencies>
> >         <!--note: maven-dependency-plug fails reporting that aar is not
> > supported-->
> >         <dependency>
> >             <groupId>com.company.project</groupId>
> >             <artifactId>axis-service</artifactId>
> >             <type>aar</type>
> >             <version>1.0-SNAPSHOT</version>
> >         </dependency>
> >         <!--note: I assume it will have the same problem unpacking a public
> > artifact such as this-->
> >         <dependency>
> >             <groupId>com.helpshift</groupId>
> >             <artifactId>android-aar</artifactId>
> >             <version>3.4.2</version>
> >             <type>aar</type>
> >         </dependency>
> >     </dependencies>
> >
> >     <build>
> >         <plugins>
> >             <plugin>
> >                 <groupId>org.apache.maven.plugins</groupId>
> >                 <artifactId>maven-dependency-plugin</artifactId>
> >                 <executions>
> >                     <execution>
> >                         <id>unpack-axis-service</id>
> >                         <phase>generate-resources</phase>
> >                         <goals>
> >                             <goal>unpack-dependencies</goal>
> >                         </goals>
> >                         <configuration>
> >
> > <includeArtifactIds>axis-service</includeArtifactIds>
> >
> >
> > <outputDirectory>${project.build.directory}/generated-resources/axis</outputDirectory>
> >                             <overWriteReleases>true</overWriteReleases>
> >                             <overWriteSnapshots>true</overWriteSnapshots>
> >
> > <includes>META-INF/*.wsdl,META-INF/schema/**/*.xsd</includes>
> >                         </configuration>
> >                     </execution>
> >                 </executions>
> >             </plugin>
> >         </plugins>
> >     </build>
> >
> > </project>
> >
> >
> >
> > On Mon, Jul 21, 2014 at 3:05 PM, Karl Heinz Marbaise <[email protected]>
> > wrote:
> >
> > > HI David,
> > >
> > >
> > >
> > > > I'm getting the following error trying to unpack some files from an
> > aar.
> > >
> > >>   Is this not supported?  Is there any way to do this?
> > >>
> > >> Failed to execute goal
> > >> org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack-dependencies
> > >> (unpack-service) on project service: Unknown archiver type: No such
> > >> archiver: 'aar'. -> [Help 1]
> > >>
> > >
> > > Could you please prepare a example project which reproduces the
> > > problem..so i can create a JIRA issue for this...
> > >
> > > Kind regards
> > > Karl-Heinz Marbaise
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > >
> > >
> >
                                          

Reply via email to