Cool, so it generally does work the way it's intended to already ;) We hadn't gotten around to testing this case yet.
As aforementioned, I suspect there will be a few rough edges, particularly in the configuration department. I'll be keen to hear your results and further thoughts, Evgeny. Best, John On Mon, Jul 19, 2010 at 1:38 PM, Evgeny Bogdanov <[email protected]>wrote: > Well, what I did is I added into shindig.container > the following part > <gadget> > <script src="util.js"/> > <script src="cookies.js"/> > <script src="shindig-container.js"/> > </gadget> > > and then into gadget (which is basically a container) > <Require feature="shindig-container" /> > > This way I managed to render other gadgets inside my gadget. > I see such container gadget as a portable container. > > I will check tomorrow if it still work with the newest trunk tomorrow > and report here > > Evgeny > > > On 19/7/10 21:23, John Hjelmstad wrote: > >> On Mon, Jul 19, 2010 at 11:59 AM, Randy Watler<[email protected]> >> wrote: >> >> >> >>> John/All, >>> >>> Sorry guys... I had no idea that a gadget could be a container! I think a >>> quick patch might be to only set a single flag value to "true" in each of >>> the feature scripts, (an not set the other flags to "false"). That way, >>> both >>> flags could be set to true if both scripts were included. We could >>> certainly >>> do that for a shindig.container gadget feature. >>> >>> >>> >> In various forms, at this point. The Shindig code doesn't yet accommodate >> this very smoothly, not least of which b/c shindig.container isn't fully >> fleshed out. I'm interested in hearing Evgeny's case, but as noted I'm not >> actually too concerned about this patch yet. It's just one of those >> primitives I'd like to make sure we use carefully to avoid future pain. >> I'm >> not even sure exactly _what_ objective hazards could result :) >> >> Re: the patch, that approach sounds quite reasonable to me. >> >> >> >> >>> BTW... is there a way to share feature scripts between features? >>> >>> >>> >> By convention, we haven't done this widely. But feature.xml files can >> point >> anywhere, with the caveat that the underlying feature JS serving system >> doesn't de-dupe when emitting code right now, so the code itself needs to >> be >> sensitive to double-inclusion. >> >> Best, >> John >> >> >> >> >>> I am willing to work toward that end if it seems appropriate to you guys. >>> >>> Randy >>> >>> >>> John Hjelmstad wrote: >>> >>> >>> >>>> If you've got some code that does this declaratively (esp. using >>>> shindig.container), feel free to post some patches ;) >>>> >>>> More directly, does this CL complicate your implementation and if so, >>>> how? >>>> >>>> --j >>>> >>>> On Mon, Jul 19, 2010 at 10:31 AM, Evgeny Bogdanov >>>> <[email protected]>wrote: >>>> >>>> >>>> >>>> >>>> >>>>> Agree here >>>>> I already have gadgets, that behave as containers. >>>>> >>>>> Evgeny >>>>> >>>>> >>>>> On 19/7/10 16:59, John Hjelmstad wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>> While not quite relevant yet to deployed use cases, what's our >>>>>> thinking >>>>>> on >>>>>> how these flags will affect behavior at such time as it's possible for >>>>>> a >>>>>> gadget to *be* a container? Eg.<Require feature="shindig.container"/>, >>>>>> enabling nested gadgets. >>>>>> >>>>>> In this case, anything that's acting in a gadget context should >>>>>> register >>>>>> osapi.services. I'm sure there will be more ambiguity to navigate than >>>>>> just >>>>>> these flags, but did want to point out one downstream impact. >>>>>> >>>>>> --j >>>>>> >>>>>> On Mon, Jul 19, 2010 at 7:30 AM,<[email protected]> wrote: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> Author: lindner >>>>>>> Date: Mon Jul 19 14:30:24 2010 >>>>>>> New Revision: 965499 >>>>>>> >>>>>>> URL: http://svn.apache.org/viewvc?rev=965499&view=rev >>>>>>> Log: >>>>>>> SHINDIG-1380 | Patch from Randy Watler | Sample Container RPC >>>>>>> Javascript >>>>>>> Errors >>>>>>> >>>>>>> Added: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configcontainer.js >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configgadget.js >>>>>>> Modified: >>>>>>> shindig/trunk/features/pom.xml >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/feature.xml >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/gadgetsrpctransport.js >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/jsonrpctransport.js >>>>>>> >>>>>>> Modified: shindig/trunk/features/pom.xml >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/pom.xml?rev=965499&r1=965498&r2=965499&view=diff >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- shindig/trunk/features/pom.xml (original) >>>>>>> +++ shindig/trunk/features/pom.xml Mon Jul 19 14:30:24 2010 >>>>>>> @@ -108,6 +108,8 @@ >>>>>>> >>>>>>> >>>>>>> <source>../../../../src/test/javascript/features/mocks/xhr.js</source> >>>>>>> <source>globals/globals.js</source> >>>>>>> <source>core.config/config.js</source> >>>>>>> +<source>core.config/configcontainer.js</source> >>>>>>> +<source>core.config/configgadget.js</source> >>>>>>> <source>core.json/json.js</source> >>>>>>> <source>shindig.auth/auth.js</source> >>>>>>> <source>core.util/util.js</source> >>>>>>> >>>>>>> Added: >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configcontainer.js >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.config/configcontainer.js?rev=965499&view=auto >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configcontainer.js >>>>>>> (added) >>>>>>> +++ >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configcontainer.js >>>>>>> Mon Jul 19 14:30:24 2010 >>>>>>> @@ -0,0 +1,27 @@ >>>>>>> +/* >>>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>>> + * distributed with this work for additional information >>>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>>> + * "License"); you may not use this file except in compliance >>>>>>> + * with the License. You may obtain a copy of the License at >>>>>>> + * >>>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>>> + * >>>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>>> + * software distributed under the License is distributed on an >>>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>>> + * KIND, either express or implied. See the License for the >>>>>>> + * specific language governing permissions and limitations >>>>>>> + * under the License. >>>>>>> + */ >>>>>>> + >>>>>>> +/** >>>>>>> + * @fileoverview Provides gadget/container configuration flags. >>>>>>> + */ >>>>>>> + >>>>>>> +/** @type {boolean} */ >>>>>>> +gadgets.config.isGadget = false; >>>>>>> +/** @type {boolean} */ >>>>>>> +gadgets.config.isContainer = true; >>>>>>> >>>>>>> Added: >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configgadget.js >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.config/configgadget.js?rev=965499&view=auto >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configgadget.js >>>>>>> (added) >>>>>>> +++ >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/configgadget.js >>>>>>> Mon Jul 19 14:30:24 2010 >>>>>>> @@ -0,0 +1,26 @@ >>>>>>> +/* >>>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>>> + * distributed with this work for additional information >>>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>>> + * "License"); you may not use this file except in compliance >>>>>>> + * with the License. You may obtain a copy of the License at >>>>>>> + * >>>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>>> + * >>>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>>> + * software distributed under the License is distributed on an >>>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>>> + * KIND, either express or implied. See the License for the >>>>>>> + * specific language governing permissions and limitations >>>>>>> + * under the License. >>>>>>> + */ >>>>>>> + >>>>>>> +/** >>>>>>> + * @fileoverview Provides gadget/container configuration flags. >>>>>>> + */ >>>>>>> +/** @type {boolean} */ >>>>>>> +gadgets.config.isGadget = true; >>>>>>> +/** @type {boolean} */ >>>>>>> +gadgets.config.isContainer = false; >>>>>>> >>>>>>> Modified: >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/feature.xml >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.config/feature.xml?rev=965499&r1=965498&r2=965499&view=diff >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/feature.xml >>>>>>> (original) >>>>>>> +++ >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/core.config/feature.xml >>>>>>> Mon Jul 19 14:30:24 2010 >>>>>>> @@ -21,8 +21,10 @@ >>>>>>> <dependency>globals</dependency> >>>>>>> <gadget> >>>>>>> <script src="config.js"/> >>>>>>> +<script src="configgadget.js"/> >>>>>>> </gadget> >>>>>>> <container> >>>>>>> <script src="config.js"/> >>>>>>> +<script src="configcontainer.js"/> >>>>>>> </container> >>>>>>> </feature> >>>>>>> >>>>>>> Modified: >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/gadgetsrpctransport.js >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/osapi/gadgetsrpctransport.js?rev=965499&r1=965498&r2=965499&view=diff >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/gadgetsrpctransport.js >>>>>>> (original) >>>>>>> +++ >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/gadgetsrpctransport.js >>>>>>> Mon Jul 19 14:30:24 2010 >>>>>>> @@ -110,7 +110,7 @@ if (gadgets&& gadgets.rpc) { //Dont bin >>>>>>> } >>>>>>> >>>>>>> // Do not run this in container mode. >>>>>>> - if (gadgets.config) { >>>>>>> + if (gadgets.config&& gadgets.config.isGadget) { >>>>>>> gadgets.config.register("osapi.services", null, init); >>>>>>> } >>>>>>> })(); >>>>>>> >>>>>>> Modified: >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/jsonrpctransport.js >>>>>>> URL: >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/osapi/jsonrpctransport.js?rev=965499&r1=965498&r2=965499&view=diff >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ============================================================================== >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/jsonrpctransport.js >>>>>>> (original) >>>>>>> +++ >>>>>>> >>>>>>> >>>>>>> >>>>>>> shindig/trunk/features/src/main/javascript/features/osapi/jsonrpctransport.js >>>>>>> Mon Jul 19 14:30:24 2010 >>>>>>> @@ -89,7 +89,7 @@ >>>>>>> } >>>>>>> >>>>>>> // Do not run this in container mode. >>>>>>> - if (gadgets.config) { >>>>>>> + if (gadgets.config&& gadgets.config.isGadget) { >>>>>>> gadgets.config.register("osapi.services", null, init); >>>>>>> } >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> . >> >> >> >
