Inline...<br><br><div class="gmail_quote">On Mon, Oct 22, 2012 at 3:16 PM, Brian Stansberry <span dir="ltr">&lt;<a href="mailto:brian.stansberry@redhat.com" target="_blank">brian.stansberry@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It&#39;s a reasonable thing to look at in AS 8. There are really two<br>
concerns I have with it:<br>
<br>
1) It can&#39;t become another complex coding requirement that subsystem<br>
developers have to add into what they do. It needs to be something that<br>
the infrastructure can handle for the subsystems.<br>
<br>
2) Boot speed. I&#39;m concerned about a lot of logic during boot to<br>
generate the resource metadata and then compare each &quot;add&quot; ops to it in<br>
order to figure out how to split up the add op.<br>
<br>
BTW in case it&#39;s helpful, have a look at<br>
GenericSubsystemDescribeHandler. It&#39;s a class that takes a subsystem<br>
model (in the Host Controller) and converts it into a series of<br>
operations (for execution on a server during boot). It assumes a<br>
&quot;default&quot; subsystem model, where the set of writable attributes exposed<br>
by each resource in the subsystem tree matches the set of params exposed<br>
by the resource&#39;s &quot;add&quot; operation. Subsystems, however, aren&#39;t required<br>
to follow that pattern.<br></blockquote><div>Best way to get this operations would be just to call :describe operation for a subsystem, that gives you list of operations to (re)generate resource structure.<br>GenericSubsystemDescribeHandler is just default one and does not work for few exceptions. <br>
Also output of that operation is tested in subsystem tests so you can relay on it to produce proper operations.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im"><br>
<br>
On 10/22/12 4:38 AM, Heiko Braun wrote:<br>
&gt;<br>
&gt; Yes, right. I meant to ask:<br>
&gt; Does this sound like a reasonable feature to add? The ability to<br>
&gt; recursively invoke add operations?<br>
&gt;<br>
&gt; I.e. operation=add, recursive=true, [...]<br>
&gt;<br>
&gt; So that the management layer takes care of breaking it up into multiple<br>
&gt; &quot;add&quot; invocations?<br>
&gt;<br>
&gt;<br>
&gt; On Oct 22, 2012, at 11:31 AM, Tomaž Cerar &lt;<a href="mailto:tomaz.cerar@gmail.com">tomaz.cerar@gmail.com</a><br>
</div><div><div class="h5">&gt; &lt;mailto:<a href="mailto:tomaz.cerar@gmail.com">tomaz.cerar@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; given example below, your problem is that you are calling one add<br>
&gt;&gt; operation where you should be calling many. for example provided it<br>
&gt;&gt; should be something like this (not tested)<br>
&gt;&gt;<br>
&gt;&gt; {<br>
&gt;&gt;     &quot;operation&quot; =&gt; &quot;add&quot;,<br>
&gt;&gt;     &quot;address&quot; =&gt; [<br>
&gt;&gt;         (&quot;host&quot; =&gt; &quot;master&quot;),<br>
&gt;&gt;         (&quot;server-config&quot; =&gt; &quot;prod_copy&quot;)<br>
&gt;&gt;     ],<br>
&gt;&gt;     &quot;auto-start&quot; =&gt; true,<br>
&gt;&gt;     &quot;cpu-affinity&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;group&quot; =&gt; &quot;production-1&quot;,<br>
&gt;&gt;     &quot;interface&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;path&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;priority&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;socket-binding-group&quot; =&gt; &quot;full-sockets&quot;,<br>
&gt;&gt;     &quot;socket-binding-port-offset&quot; =&gt; 150<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; {<br>
&gt;&gt;     &quot;operation&quot; =&gt; &quot;add&quot;,<br>
&gt;&gt;     &quot;address&quot; =&gt; [<br>
&gt;&gt;         (&quot;host&quot; =&gt; &quot;master&quot;),<br>
&gt;&gt;         (&quot;server-config&quot; =&gt; &quot;prod_copy&quot;)<br>
&gt;&gt;         (&quot;jvm&quot; =&gt; &quot;default&quot;)<br>
&gt;&gt;     ],<br>
&gt;&gt;         &quot;agent-lib&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;agent-path&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;debug-enabled&quot; =&gt; false,<br>
&gt;&gt;     &quot;debug-options&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;env-classpath-ignored&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;environment-variables&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;heap-size&quot; =&gt; &quot;256m&quot;,<br>
&gt;&gt;     &quot;java-agent&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;java-home&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;jvm-options&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;max-heap-size&quot; =&gt; &quot;256m&quot;,<br>
&gt;&gt;     &quot;max-permgen-size&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;permgen-size&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;stack-size&quot; =&gt; undefined,<br>
&gt;&gt;     &quot;type&quot; =&gt; undefined<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; {<br>
&gt;&gt;     &quot;operation&quot; =&gt; &quot;add&quot;,<br>
&gt;&gt;     &quot;address&quot; =&gt; [<br>
&gt;&gt;         (&quot;host&quot; =&gt; &quot;master&quot;),<br>
&gt;&gt;         (&quot;server-config&quot; =&gt; &quot;prod_copy&quot;)<br>
&gt;&gt;         (&quot;system-property&quot; =&gt; &quot;test&quot;)<br>
&gt;&gt;     ],<br>
&gt;&gt;          &quot;boot-time&quot; =&gt; false,<br>
&gt;&gt;      &quot;value&quot; =&gt; &quot;value&quot;<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; basicly every resource needs its own add operation<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; tomaz<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Oct 22, 2012 at 11:17 AM, Heiko Braun &lt;<a href="mailto:hbraun@redhat.com">hbraun@redhat.com</a><br>
</div></div><div><div class="h5">&gt;&gt; &lt;mailto:<a href="mailto:hbraun@redhat.com">hbraun@redhat.com</a>&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;     I am working on a use cases that enables people to &quot;copy&quot;<br>
&gt;&gt;     resources. I.e. creating a clone of a server configuration under a<br>
&gt;&gt;     new name. I&#39;ve realised that recursive add operations, covering a<br>
&gt;&gt;     larger resource tree don&#39;t seem to work (see example below). Is<br>
&gt;&gt;     there any &quot;switch&quot; that I am not aware of, or this simply not work<br>
&gt;&gt;     due to the design of the operation handlers?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;     [INFO] {<br>
&gt;&gt;     [INFO]     &quot;operation&quot; =&gt; &quot;add&quot;,<br>
&gt;&gt;     [INFO]     &quot;address&quot; =&gt; [<br>
&gt;&gt;     [INFO]         (&quot;host&quot; =&gt; &quot;master&quot;),<br>
&gt;&gt;     [INFO]         (&quot;server-config&quot; =&gt; &quot;prod_copy&quot;)<br>
&gt;&gt;     [INFO]     ],<br>
&gt;&gt;     [INFO]     &quot;auto-start&quot; =&gt; true,<br>
&gt;&gt;     [INFO]     &quot;cpu-affinity&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]     &quot;group&quot; =&gt; &quot;production-1&quot;,<br>
&gt;&gt;     [INFO]     &quot;interface&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]     &quot;path&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]     &quot;priority&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]     &quot;socket-binding-group&quot; =&gt; &quot;full-sockets&quot;,<br>
&gt;&gt;     [INFO]     &quot;socket-binding-port-offset&quot; =&gt; 150,<br>
&gt;&gt;     [INFO]     &quot;jvm&quot; =&gt; {&quot;default&quot; =&gt; {<br>
&gt;&gt;     [INFO]         &quot;agent-lib&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;agent-path&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;debug-enabled&quot; =&gt; false,<br>
&gt;&gt;     [INFO]         &quot;debug-options&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;env-classpath-ignored&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;environment-variables&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;heap-size&quot; =&gt; &quot;256m&quot;,<br>
&gt;&gt;     [INFO]         &quot;java-agent&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;java-home&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;jvm-options&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;max-heap-size&quot; =&gt; &quot;256m&quot;,<br>
&gt;&gt;     [INFO]         &quot;max-permgen-size&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;permgen-size&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;stack-size&quot; =&gt; undefined,<br>
&gt;&gt;     [INFO]         &quot;type&quot; =&gt; undefined<br>
&gt;&gt;     [INFO]     }},<br>
&gt;&gt;     [INFO]     &quot;system-property&quot; =&gt; {&quot;test&quot; =&gt; {<br>
&gt;&gt;     [INFO]         &quot;boot-time&quot; =&gt; false,<br>
&gt;&gt;     [INFO]         &quot;value&quot; =&gt; &quot;value&quot;<br>
&gt;&gt;     [INFO]     }}<br>
&gt;&gt;     [INFO] }<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;     _______________________________________________<br>
&gt;&gt;     jboss-as7-dev mailing list<br>
</div></div>&gt;&gt;     <a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a>&gt;<br>
&gt;&gt;     <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
<div class="im HOEnZb">&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; jboss-as7-dev mailing list<br>
&gt; <a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
&gt;<br>
<br>
<br>
</div><span class="HOEnZb"><font color="#888888">--<br>
Brian Stansberry<br>
Principal Software Engineer<br>
JBoss by Red Hat<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
jboss-as7-dev mailing list<br>
<a href="mailto:jboss-as7-dev@lists.jboss.org">jboss-as7-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/jboss-as7-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/jboss-as7-dev</a><br>
</div></div></blockquote></div><br>