[forge-dev] Issue with @FacetConstraint

George Gastaldi ggastald at redhat.com
Fri Feb 28 10:19:14 EST 2014


That may be the issue. Provide it with a default constructor and @Inject the dependencies instead of using the constructor. A good option is to split into interface+impl. That would allow the proxy to function properly.

> Em 28/02/2014, às 12:12, "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com> escreveu:
> 
> Hi Lincoln,
> 
> It's a class that extends AbstractFacet<Project> and implements ProjectFacet. It has just one constructor:
> 
>     @Inject
>     public SapHanaCloudFacet(DependencyInstaller dependencyInstaller) {
> 
>         this.dependencyInstaller = dependencyInstaller;
> 
>     }
> 
> Cheers,
> Ivan
> 
> 
>> On Fri, Feb 28, 2014 at 4:22 PM, Lincoln Baxter, III <lincolnbaxter at gmail.com> wrote:
>> Is com.sap.cloud.forge.SapHanaCloudFacet an interface or a Class? If it is a Class or abstract Class, does it have a default constructor?
>> 
>> 
>>> On Fri, Feb 28, 2014 at 9:06 AM, Ivan St. Ivanov <ivan.st.ivanov at gmail.com> wrote:
>>> Hi George,
>>> 
>>> OK, I will try to reproduce it. Could you tell me what kind of test should I write? Something that calls isEnabled or constraintsMet in a situation that it is assumed that they are true?
>>> 
>>> Cheers,
>>> Ivan
>>> 
>>>> On Feb 28, 2014 12:56 AM, "George Gastaldi" <ggastald at redhat.com> wrote:
>>>> Hi Ivan,
>>>> 
>>>> This is because Furnace proxies the objects to avoid ClassCastExceptions. This shouldn't present a problem though. Are your addon dependencies correctly configured? I haven't seen your project yet, but if you could reproduce this error in a test that would be great. 
>>>> 
>>>>> Em 27/02/2014, às 18:24, "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com> escreveu:
>>>>> 
>>>>> Hi folks,
>>>>> 
>>>>> I am testing my Forge 2.0 addon for SAP HANA Cloud. One of my commands (the setup command) installs the special facet that I have developer (SapHanaCloudFacet). Another command is annotated with @FacetConstraint(SapHanaCloudFacet.class). Even after I do setup, the other command is not enabled.
>>>>> 
>>>>> I started the debugger. The isInstalled method of my facet returned true. So I went on to see what happens with the isEnabled() method. I dug as deep as the AbstractFaceted::safeGetFacet(Class<F> type) method. What it does is: it searches all the installed facets and it checks whether the expected one is among them by calling type.isInstance(facet).
>>>>> 
>>>>> The problem in my case is that all the facet objects are actually proxies. So I expect the type to be com.sap.cloud.forge.SapHanaCloudFacet, but it is actually something like org.jboss.forge.addon.facets.AbstractFacet_$$_javassist_904cc85e-43dd-404a-846c-ed4709d14dea. Eventually, the isInstance method returns false.
>>>>> 
>>>>> Am I doing something wrong? The code of the addon can be found here: https://github.com/ivannov/addon-saphcp.
>>>>> 
>>>>> Thanks,
>>>>> Ivan
>>>>> 
>>>>> P.S. Did you, guys, bring anything new to the Windows shell? I am still using my Linux VM for Forge development.
>>>>> _______________________________________________
>>>>> forge-dev mailing list
>>>>> forge-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>> 
>>>> _______________________________________________
>>>> forge-dev mailing list
>>>> forge-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>> 
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>> 
>> 
>> 
>> -- 
>> Lincoln Baxter, III
>> http://ocpsoft.org
>> "Simpler is better."
>> 
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
> 
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140228/a8eb5174/attachment.html 


More information about the forge-dev mailing list