We haven't made any progress on this yet.

On Thu, Mar 6, 2014 at 12:14 AM, Roman Mazur <[email protected]> wrote:

> So 0.9.0 version remains the API unchanged. What about upcoming AS 0.5.0?
> Can we expect the API support?
>
>
> On Monday, 17 February 2014 18:03:48 UTC+2, Brian Parent wrote:
>>
>> Is this supported by Android Studio yet? I couldn't find anything in the
>> release notes about it for .0.4.1+
>>
>> The lack of unit test support in the IDE  is really the only thing
>> stopping us from moving over. I think this could bridge that gap for us in
>> the interim.
>>
>> On Wednesday, January 29, 2014 4:41:17 AM UTC-6, Roman Mazur wrote:
>>>
>>> Ah, and last question :)
>>> Is support of this model in Studio implemented in 0.4.3 or only planned?
>>> I see that model builder invoked by Studio accesses registered provider
>>> since the mentioned exception is not thrown when I run gradle from cmd
>>> line, but within Studio only.
>>>
>>> Caused by: java.lang.IllegalAccessError: Shouldn't access manifest from
>>> SourceSetSourceProviderWrapper
>>> at com.android.build.gradle.internal.SourceSetSourceProviderWrapper
>>> .getManifestFile(SourceSetSourceProviderWrapper.java:45)
>>>  at com.android.build.gradle.internal.model.SourceProviderImpl.
>>> cloneProvider(SourceProviderImpl.java:48)
>>> at com.android.build.gradle.internal.model.JavaArtifactImpl.clone(
>>> JavaArtifactImpl.java:38)
>>>  at 
>>> com.android.build.gradle.internal.model.JavaArtifactImpl$clone.call(Unknown
>>> Source)
>>> at org.codehaus.groovy.runtime.callsite.CallSiteArray.
>>> defaultCall(CallSiteArray.java:42)
>>>  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.
>>> call(AbstractCallSite.java:108)
>>> at org.codehaus.groovy.runtime.callsite.AbstractCallSite.
>>> call(AbstractCallSite.java:116)
>>>  at com.android.build.gradle.internal.model.ModelBuilder.
>>> createVariant(ModelBuilder.groovy:200)
>>>
>>> However, after replacing wrapper with a custom provider which does not
>>> fail I do not see any affect on iml files.
>>> So what are the plans regarding studio support?
>>>
>>> On Wednesday, 29 January 2014 11:21:33 UTC+2, Roman Mazur wrote:
>>>>
>>>> As for artifact type name
>>>> >The name is a unique name, and will show up in the UI.
>>>> Where exactly this name is expected to appear?
>>>>
>>>> Also wrapping standard sourceSet with wrapJavaSourceSet does not work,
>>>> it throws
>>>> IllegalAccessError("Shouldn't access manifest from
>>>> SourceSetSourceProviderWrapper").
>>>>
>>>> When using registerProductFlavor/BuildTypeSourceProvider, should I add
>>>> default sources directory to each provider?
>>>>
>>>> I mean having a structure like
>>>> src/something/java
>>>> src/somethingDebug/java
>>>> src/somethingRelease/java
>>>>
>>>> and using registerBuildTypeSourceProvider for both debug and release,
>>>> how src/something/java is supposed to be known to the IDE?
>>>> Should build type source provider return this directory in 
>>>> getJavaDirectories
>>>> as well as the specific build type directory?
>>>>
>>>> On Thursday, 9 January 2014 18:39:32 UTC+2, Xavier Ducrohet wrote:
>>>>>
>>>>> No update. I realize that I had forgotten to file a bug for it, so
>>>>> here it is: https://code.google.com/p/android/issues/detail?id=64635
>>>>>
>>>>>
>>>>> On Thu, Jan 9, 2014 at 5:54 AM, Roman Mazur <[email protected]>wrote:
>>>>>
>>>>>> How is it going with dependencies information?
>>>>>> Can we expect them in the nearest releases?
>>>>>>
>>>>>>
>>>>>> On Thursday, 19 December 2013 23:51:54 UTC+2, Xavier Ducrohet wrote:
>>>>>>>
>>>>>>> Sorry for the lack of documentation in this area. Things are also
>>>>>>> very much subject to changes based on feedback.
>>>>>>>
>>>>>>> First of all you need to understand that this API is only about
>>>>>>> updating the model that the IDE sees. It has no impact on the generated 
>>>>>>> APK.
>>>>>>>
>>>>>>> the idea is to do the following:
>>>>>>> - register a new type of artifact
>>>>>>> - for each variant, register a new artifact of this type, with
>>>>>>> source sets, and associated task.
>>>>>>> Then Studio (not 0.4 yet, but hopefully 0.4.1) will allow you to
>>>>>>> switch between the existing artifacts (main, instrumentTest) and the new
>>>>>>> one.
>>>>>>>
>>>>>>> Let's look at the API.
>>>>>>>
>>>>>>> First to register the artifact:
>>>>>>>
>>>>>>> void registerArtifactType(@NonNull String name, boolean isTest, int
>>>>>>> artifactType);
>>>>>>>
>>>>>>> The name is a unique name, and will show up in the UI. For your
>>>>>>> example "robolectric" is fine.
>>>>>>> if isTest is true then the source folders of the artifact will setup
>>>>>>> as test source folder, extending the main artifact source folders. If
>>>>>>> false, they'll replace the main artifact as "main" source folders.
>>>>>>> the artifact type is Java or Android (only Java supported now), so
>>>>>>> use com.android.builder.model.ArtifactMetaData.TYPE_JAVA
>>>>>>>
>>>>>>> Then you register source folders.Look at the sample.
>>>>>>>
>>>>>>> You can register folders specific to build types and flavors, but
>>>>>>> strangely not a common one (usually src/test). This is stupid! more on 
>>>>>>> this
>>>>>>> later.
>>>>>>>
>>>>>>> Then you add an actual artifact. You need to associate it with a
>>>>>>> variant. The source folder associated earlier are automatically 
>>>>>>> associated
>>>>>>> with variants that use those build types or flavors.
>>>>>>> When registering an artifact you can also specify a variant-specific
>>>>>>> source folder.
>>>>>>>
>>>>>>>     public void registerJavaArtifact(
>>>>>>>             @NonNull String name,
>>>>>>>             @NonNull BaseVariant variant,
>>>>>>>             @NonNull String assembleTaskName,
>>>>>>>             @NonNull String javaCompileTaskName,
>>>>>>>             @NonNull File classesFolder,
>>>>>>>             @Nullable SourceProvider sourceProvider);
>>>>>>>
>>>>>>>
>>>>>>> When I designed this I looked at Jake Wharton's robolectric plugin
>>>>>>> (there are too many different robolectric plugins out there! </rant>), 
>>>>>>> and
>>>>>>> realized that he's creating a single source folders with multiple path
>>>>>>> (src/test/java, src/debugTest/java, etc...), so in this case you'd use 
>>>>>>> this
>>>>>>> source folder as the variant specific one.
>>>>>>> Note that the build type/flavor specific folders can't really be
>>>>>>> used now because Gradle doesn't like combining multiple source sets 
>>>>>>> into a
>>>>>>> single binary yet (they are working on fixing this which will allow us 
>>>>>>> to
>>>>>>> start using their default source sets instead of custom ones).
>>>>>>>
>>>>>>> Your comment about the SourceProvider is expected. We need this to
>>>>>>> be generic Java/Android so it contains everything. If you use a default
>>>>>>> Gradle sourceSet you can use android.wrapJavaSourceSet(theSourceSet)
>>>>>>> to get a SourceProvider from a java source set.
>>>>>>>
>>>>>>> Stupidly (again), the dependency information is missing. I'll add
>>>>>>> this shortly. Note that again you can't really use this before Studio is
>>>>>>> updated to use this new model. I wanted to get this out of the door to 
>>>>>>> get
>>>>>>> feedback. I intend to rev quickly to address issues.
>>>>>>>
>>>>>>> hope this helps.
>>>>>>> Xav
>>>>>>>
>>>>>>>  --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "adt-dev" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Xavier Ducrohet
>>>>> Android SDK Tech Lead
>>>>> Google Inc.
>>>>> http://developer.android.com | http://tools.android.com
>>>>>
>>>>> Please do not send me questions directly. Thanks!
>>>>>
>>>>  --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.
http://developer.android.com | http://tools.android.com

Please do not send me questions directly. Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to