<?xml version="1.0" encoding="UTF-8"?> 
<!--
    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.
-->
<java version="${version}" class="java.beans.XMLDecoder"> 
 <object class="${classname}"> 
  <void property="property"> 
   <object class="java.util.Collections" method="unmodifiableCollection"> 
    <object class="java.util.ArrayList"> 
     <void method="add"> 
      <string>A</string> 
     </void> 
     <void method="add"> 
      <string>B</string> 
     </void> 
     <void method="add"> 
      <string>C</string> 
     </void> 
    </object> 
   </object> 
  </void> 
 </object> 
</java> 

