I think to recall a thread on the dev list about plans to remove the unpack 
goal from the dependency plugin, but I can’t find it anymore…
regards Domi

On 22.07.2014, at 16:29, William Ferguson <william.fergu...@xandar.com.au> 
wrote:

> I totally agree that it makes sense for the dependency plugin to unpack the
> AAR just like all other archives.
> 
> I just don't understand why you need the MDP to do so.
> 
> 
> On Tue, Jul 22, 2014 at 10:58 PM, David Hoffer <dhoff...@gmail.com> wrote:
> 
>> No that was just an example so I could create a sample project.  Don't read
>> too much into this.  They are just AAR dependencies (in my case they come
>> from our build not public).  The maven dependency plugin should handle
>> these no different than it handles jars/etc.
>> 
>> 
>> 
>> 
>> On Mon, Jul 21, 2014 at 11:32 PM, William Ferguson <
>> william.fergu...@xandar.com.au> wrote:
>> 
>>> So an Android library is packaging WSDL inside itself and is expecting
>> you
>>> to use it at build time?
>>> 
>>> 
>>> On Tue, Jul 22, 2014 at 8:53 AM, Martin Gainty <mgai...@hotmail.com>
>>> wrote:
>>> 
>>>> 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: william.fergu...@xandar.com.au
>>>>> To: users@maven.apache.org
>>>>> 
>>>>> David, what the use case for unpacking the AAR?
>>>>> 
>>>>> 
>>>>> William
>>>>> 
>>>>> 
>>>>> On Tue, Jul 22, 2014 at 7:27 AM, David Hoffer <dhoff...@gmail.com>
>>>> 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 <
>>>> khmarba...@gmx.de>
>>>>>> 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: users-unsubscr...@maven.apache.org
>>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to