You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Rex Wang (JIRA)" <ji...@apache.org> on 2010/05/28 11:29:36 UTC

[jira] Commented: (ARIES-98) Blueprint MetadataMBean cannot handle multiple-nesting blueprint component definitions

    [ https://issues.apache.org/jira/browse/ARIES-98?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12872904#action_12872904 ] 

Rex Wang commented on ARIES-98:
-------------------------------

Hi, 

I am working on the RFC of blueprint mbeans for OSGi Alliance. Before the writing starts, I think this issue should be resolved. After a long time thoughts on this problem, I am afraid the only choice is to change the current design of the metadata mbean:-(

That is as follows:
    public CompositeData[] getComponentMetadata(long containerServiceId, String componentId) {

The api getComponentMetadata will return an array of composite datas, in which the first element is the component's composite data and the others are the inner values or targets' composite datas.
The component's composite data won't have an value item whose type is BYTE array. Instead, it will be an integer that indicates the index in the returned CompositeData array. 

I have implemented the design in the patches...

Any comments is appreciated! 

-Rex


> 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
>         Attachments: api.patch, core.patch
>
>
> 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.