[
https://issues.apache.org/jira/browse/ARIES-98?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12796276#action_12796276
]
Jarek Gawor commented on ARIES-98:
----------------------------------
I agree with Alasdair. This is not a blueprint problem and instead seems like a
mbean issue. From what I understand, the core of the problem is that we can't
(or we don't know) how to define a field in an openmbean as of type any (that
is, as 'Object value' for example). That's why the current jmx blueprint
implementation serializes the blueprint bean argument and property values as
Byte[]. If we can find a way to define a field of type any in openmbean then
this entire problem disappears. If not, there are other ways we can try to
avoid the Byte[] serialization. For example, we could define a new
CompositeType that has a separate field for each possible value metadata type
in blueprint. And only one of those fields could ever be set on the
ComposisteData of that new CompositeType type. It's not very nice solution but
I think it would work in most cases and it would avoid the expensive
serialization/deserialization.
> Blueprint MetadataMBean cannot handle multiple-nesting blueprint component
> definitions
> --------------------------------------------------------------------------------------
>
> Key: ARIES-98
> URL: https://issues.apache.org/jira/browse/ARIES-98
> Project: Aries
> Issue Type: Bug
> Components: Blueprint
> Affects Versions: Incubation
> Environment: Linux i386
> Sun jdk1.5.0_16
> Reporter: Forrest Xia
>
> When a blueprint config has multiple-nesting components definition, for
> example as follows, then the BlueprintMetadataMBean will return a huge
> java.lang.Byte[], in my case, it's more than 5 millions, thus cause JMX
> client application(e.g JConsole) hangs.
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint default-activation="eager" default-availability="optional"
> default-timeout="300000"
> xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> <description>Apache Aries Blueprint Complex Sample -
> Client</description>
> <bean id="bean1"
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean1"
> init-method="startUp">
> <argument>
> <bean
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean2"
> init-method="startUp">
> <argument>
> <bean
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean3"
> init-method="startUp">
> <argument>
> <bean
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean4"
> init-method="startUp">
> <argument>
> <bean
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean5"
> init-method="startUp">
>
> <argument>
>
> <bean
> class="org.apache.aries.blueprint.sample.complex.client.temp.Bean6"
> init-method="startUp">
>
> <argument value="This is Bean6!"/>
>
> </bean>
>
> </argument>
> </bean>
> </argument>
> </bean>
> </argument>
> </bean>
> </argument>
> </bean>
> </argument>
> </bean>
> </blueprint>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.