[jboss-cvs] JBossAS SVN: r92986 - projects/docs/enterprise/4.3.3/Server_Configuration_Guide/de-DE.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 28 21:00:18 EDT 2009


Author: jdimanos at jboss.com
Date: 2009-08-28 21:00:17 -0400 (Fri, 28 Aug 2009)
New Revision: 92986

Modified:
   projects/docs/enterprise/4.3.3/Server_Configuration_Guide/de-DE/J2EE_Reference_Introduction.po
Log:
update

Modified: projects/docs/enterprise/4.3.3/Server_Configuration_Guide/de-DE/J2EE_Reference_Introduction.po
===================================================================
--- projects/docs/enterprise/4.3.3/Server_Configuration_Guide/de-DE/J2EE_Reference_Introduction.po	2009-08-28 21:37:32 UTC (rev 92985)
+++ projects/docs/enterprise/4.3.3/Server_Configuration_Guide/de-DE/J2EE_Reference_Introduction.po	2009-08-29 01:00:17 UTC (rev 92986)
@@ -8,7 +8,7 @@
 "Project-Id-Version: J2EE_Reference_Introduction\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-01-20 02:37+0000\n"
-"PO-Revision-Date: 2009-08-25 07:47+1000\n"
+"PO-Revision-Date: 2009-08-29 10:59+1000\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -5238,6 +5238,9 @@
 "url}/deploy/</literal>, which is local or remote depending on the URL used "
 "to boot the server"
 msgstr ""
+"<emphasis role=\"bold\">deploy/</emphasis> scannt <literal>${jboss.server."
+"url}/deploy/</literal>, das - je nach zum Boot des Servers verwendeter URL - "
+"lokal oder Remote ist"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1636
@@ -5246,6 +5249,8 @@
 "<emphasis role=\"bold\">${jboss.server.home.dir}/deploy/</emphasis> scans "
 "<emphasis>${jboss.server.home.dir)/deploy</emphasis>, which is always local"
 msgstr ""
+"<emphasis role=\"bold\">${jboss.server.home.dir}/deploy/</emphasis> scannt "
+"<emphasis>${jboss.server.home.dir)/deploy</emphasis>, das stets lokal ist"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1641
@@ -5254,16 +5259,18 @@
 "<emphasis role=\"bold\">file:/var/opt/myapp.ear</emphasis> deploys "
 "<literal>myapp.ear</literal> from a local location"
 msgstr ""
+"<emphasis role=\"bold\">file:/var/opt/myapp.ear</emphasis> deployt "
+"<literal>myapp.ear</literal> von einem lokalen Speicherort"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1646
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">file:/var/opt/apps/</emphasis> scans the specified "
 "directory"
 msgstr ""
-"<emphasis role=\"bold\">ip_ttl</emphasis> legt den TTL für Multicast-Pakete "
-"fest."
+"<emphasis role=\"bold\">file:/var/opt/apps/</emphasis> scannt das festgelgte "
+"Verzeichnis"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1651
@@ -5272,6 +5279,8 @@
 "<emphasis role=\"bold\">http://www.test.com/netboot/myapp.ear</emphasis> "
 "deploys <literal>myapp.ear</literal> from a remote location"
 msgstr ""
+"<emphasis role=\"bold\">http://www.test.com/netboot/myapp.ear</emphasis> "
+"deployt <literal>myapp.ear</literal> von einem Remote-Standort"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1656
@@ -5337,6 +5346,14 @@
 "DeploymentFilter</literal> which is an implementation that rejects the "
 "following patterns:"
 msgstr ""
+"<emphasis role=\"bold\">Filter</emphasis>: Der Klassenname einer "
+"<literal>java."
+"io.FileFilter</literal>-Implementierung, die zum Filtern der Inhalte "
+"gescannter Verzeichnisse verwendet wird. Von diesem Filter nicht akzeptierte "
+"Dateien werden nicht deployt. "
+"Der Standard lautet <literal>org.jboss.deployment.scanner."
+"DeploymentFilter</literal>, was eine die folgenden Muster abweisende "
+"Implementierung ist:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1679
@@ -5354,6 +5371,17 @@
 "literal>\", \"<literal>TAGS</literal>\", \"<literal>core</literal>\", "
 "\"<literal>tags</literal>\""
 msgstr ""
+"\"<literal>#*</literal>\", \"<literal>%*</literal>\", \"<literal>,*</literal>"
+"\", \"<literal>.*</literal>\", \"<literal>_$*</literal>\", \"<literal>*#</"
+"literal>\", \"<literal>*$</literal>\", \"<literal>*%</literal>\", "
+"\"<literal>*.BAK</literal>\", \"<literal>*.old</literal>\", \"<literal>*."
+"orig</literal>\", \"<literal>*.rej</literal>\", \"<literal>*.bak</literal>"
+"\", \"<literal>*.sh</literal>\", \"<literal>*,v</literal>\", \"<literal>*~</"
+"literal>\", \"<literal>.make.state</literal>\", \"<literal>.nse_depinfo</"
+"literal>\", \"<literal>CVS</literal>\", \"<literal>CVS.admin</literal>\", "
+"\"<literal>RCS</literal>\", \"<literal>RCSLOG</literal>\", \"<literal>SCCS</"
+"literal>\", \"<literal>TAGS</literal>\", \"<literal>core</literal>\", "
+"\"<literal>tags</literal>\""
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1684
@@ -5388,7 +5416,7 @@
 #: J2EE_Reference_Introduction.xml:1699
 #, no-c-format
 msgid "Writing JBoss MBean Services"
-msgstr ""
+msgstr "Das Schreiben von JBoss MBean-Diensten"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1700
@@ -5461,7 +5489,7 @@
 #: J2EE_Reference_Introduction.xml:1724
 #, no-c-format
 msgid "A Standard MBean Example"
-msgstr ""
+msgstr "Ein Standard MBean-Beispiel"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1725
@@ -5513,6 +5541,18 @@
 "    public void stop() throws Exception;\n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.ex1;\n"
+"                \n"
+"// The JNDIMap MBean interface\n"
+"import javax.naming.NamingException;\n"
+"                \n"
+"public interface JNDIMapMBean\n"
+"{\n"
+"    public String getJndiName();\n"
+"    public void setJndiName(String jndiName) throws NamingException;\n"
+"    public void start() throws Exception;\n"
+"    public void stop() throws Exception;\n"
+"}"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1733
@@ -5586,6 +5626,73 @@
 "    }\n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.ex1;\n"
+"\n"
+"// The JNDIMap MBean implementation\n"
+"import java.util.HashMap;\n"
+"import javax.naming.InitialContext;\n"
+"import javax.naming.Name;\n"
+"import javax.naming.NamingException;\n"
+"import org.jboss.naming.NonSerializableFactory;\n"
+"\n"
+"public class JNDIMap implements JNDIMapMBean\n"
+"{\n"
+"    private String jndiName;\n"
+"    private HashMap contextMap = new HashMap();\n"
+"    private boolean started;\n"
+"    \n"
+"    public String getJndiName()\n"
+"    {\n"
+"        return jndiName;\n"
+"    }\n"
+"    public void setJndiName(String jndiName) throws NamingException\n"
+"    {\n"
+"        String oldName = this.jndiName;\n"
+"        this.jndiName = jndiName;\n"
+"        if (started) {\n"
+"            unbind(oldName);\n"
+"            try {\n"
+"                rebind();\n"
+"            } catch(Exception e) {\n"
+"                NamingException ne = new NamingException(\"Failedto update "
+"jndiName\");\n"
+"                ne.setRootCause(e);\n"
+"                throw ne;\n"
+"            }\n"
+"        }\n"
+"    }\n"
+"\n"
+"    public void start() throws Exception\n"
+"    {\n"
+"        started = true;\n"
+"        rebind();\n"
+"    }\n"
+"                \n"
+"    public void stop()\n"
+"    {\n"
+"        started = false;\n"
+"        unbind(jndiName);\n"
+"    }\n"
+"                \n"
+"    private void rebind() throws NamingException\n"
+"    {\n"
+"        InitialContext rootCtx = new InitialContext();\n"
+"        Name fullName = rootCtx.getNameParser(\"\").parse(jndiName);\n"
+"        System.out.println(\"fullName=\"+fullName);\n"
+"        NonSerializableFactory.rebind(fullName, contextMap, true);\n"
+"    }\n"
+"\n"
+"    private void unbind(String jndiName)\n"
+"    {\n"
+"        try {\n"
+"            InitialContext rootCtx = new InitialContext();\n"
+"            rootCtx.unbind(jndiName);\n"
+"            NonSerializableFactory.unbind(jndiName);\n"
+"        } catch(NamingException e) {\n"
+"            e.printStackTrace();\n"
+"        }\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1734
@@ -5632,6 +5739,16 @@
 "    public void setJndiName(String jndiName) throws NamingException;\n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.ex2;\n"
+"\n"
+"// The JNDIMap MBean interface\n"
+"import javax.naming.NamingException;\n"
+"\n"
+"public interface JNDIMapMBean extends org.jboss.system.ServiceMBean\n"
+"{\n"
+"    public String getJndiName();\n"
+"    public void setJndiName(String jndiName) throws NamingException;\n"
+"}"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1739
@@ -5704,6 +5821,72 @@
 "    }\n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.ex2;\n"
+"// The JNDIMap MBean implementation\n"
+"import java.util.HashMap;\n"
+"import javax.naming.InitialContext;\n"
+"import javax.naming.Name;\n"
+"import javax.naming.NamingException;\n"
+"import org.jboss.naming.NonSerializableFactory;\n"
+"\n"
+"public class JNDIMap extends org.jboss.system.ServiceMBeanSupport\n"
+"    implements JNDIMapMBean\n"
+"{\n"
+"    private String jndiName;\n"
+"    private HashMap contextMap = new HashMap();\n"
+"    \n"
+"    public String getJndiName()\n"
+"    {\n"
+"        return jndiName;\n"
+"    }\n"
+"\n"
+"    public void setJndiName(String jndiName) \n"
+"        throws NamingException\n"
+"    {\n"
+"        String oldName = this.jndiName;\n"
+"        this.jndiName = jndiName;\n"
+"        if (super.getState() == STARTED) {\n"
+"            unbind(oldName);\n"
+"            try {\n"
+"                rebind();\n"
+"            } catch(Exception e) {\n"
+"                NamingException ne = new NamingException(\"Failed to update "
+"jndiName\");\n"
+"                ne.setRootCause(e);\n"
+"                throw ne;\n"
+"            }\n"
+"        }\n"
+"    }\n"
+"    \n"
+"    public void startService() throws Exception\n"
+"    {\n"
+"        rebind();\n"
+"    }\n"
+"\n"
+"    public void stopService()\n"
+"    {\n"
+"        unbind(jndiName);\n"
+"    }\n"
+"    \n"
+"    private void rebind() throws NamingException\n"
+"    {\n"
+"        InitialContext rootCtx = new InitialContext();\n"
+"        Name fullName = rootCtx.getNameParser(\"\").parse(jndiName);\n"
+"        log.info(\"fullName=\"+fullName);\n"
+"        NonSerializableFactory.rebind(fullName, contextMap, true);\n"
+"    }\n"
+"\n"
+"    private void unbind(String jndiName)\n"
+"    {\n"
+"        try {\n"
+"            InitialContext rootCtx = new InitialContext();\n"
+"            rootCtx.unbind(jndiName);\n"
+"            NonSerializableFactory.unbind(jndiName);\n"
+"        } catch(NamingException e) {\n"
+"            log.error(\"Failed to unbind map\", e);\n"
+"        }\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1740
@@ -5713,12 +5896,15 @@
 "located in the <literal>examples/src/main/org/jboss/book/jmx/{ex1,ex2}</"
 "literal> directories."
 msgstr ""
+"Der Quellcode für diese MBeans sowie die Service-Deskriptoren "
+"befindet sich in den <literal>examples/src/main/org/jboss/book/jmx/{ex1,ex2}</"
+"literal>-Verzeichnissen."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1743
 #, no-c-format
 msgid "The jboss-service.xml descriptor for the first version is shown below."
-msgstr ""
+msgstr "Der jboss-service.xml Deskriptor für die erste Version ist unten dargestellt."
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1746
@@ -5734,6 +5920,15 @@
 "    &lt;/mbean&gt;\n"
 "&lt;/server&gt;"
 msgstr ""
+"&lt;!-- The SAR META-INF/jboss-service.xml descriptor --&gt;\n"
+"&lt;server&gt;\n"
+"    &lt;mbean code=\"org.jboss.book.jmx.ex1.JNDIMap\" \n"
+"           name=\"j2eechap2.ex1:service=JNDIMap\"&gt;\n"
+"        &lt;attribute name=\"JndiName\"&gt;inmemory/maps/MapTest&lt;/"
+"attribute&gt;\n"
+"        &lt;depends&gt;jboss:service=Naming&lt;/depends&gt;\n"
+"    &lt;/mbean&gt;\n"
+"&lt;/server&gt;"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1747
@@ -5754,12 +5949,15 @@
 "InitialContext ctx = new InitialContext();\n"
 "HashMap map = (HashMap) ctx.lookup(\"inmemory/maps/MapTest\");"
 msgstr ""
+"// Sample lookup code\n"
+"InitialContext ctx = new InitialContext();\n"
+"HashMap map = (HashMap) ctx.lookup(\"inmemory/maps/MapTest\");"
 
 #. Tag: title
 #: J2EE_Reference_Introduction.xml:1754
 #, no-c-format
 msgid "XMBean Examples"
-msgstr ""
+msgstr "XMBean-Beispiele"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1755
@@ -5804,7 +6002,7 @@
 #: J2EE_Reference_Introduction.xml:1781
 #, no-c-format
 msgid "Version 1, The Annotated JNDIMap XMBean"
-msgstr ""
+msgstr "Version 1, Das annotierte JNDIMap XMBean"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1782
@@ -5838,6 +6036,20 @@
 "    &lt;/mbean&gt;\n"
 "&lt;/server&gt;"
 msgstr ""
+"&lt;?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39; ?&gt;\n"
+"&lt;!DOCTYPE server PUBLIC    \n"
+"                     \"-//JBoss//DTD MBean Service 3.2//EN\"\n"
+"                     \"http://www.jboss.org/j2ee/dtd/jboss-service_3_2.dtd"
+"\"&gt;\n"
+"&lt;server&gt;\n"
+"    &lt;mbean code=\"org.jboss.book.jmx.xmbean.JNDIMap\"\n"
+"           name=\"j2eechap2.xmbean:service=JNDIMap\" \n"
+"           xmbean-dd=\"META-INF/jndimap-xmbean.xml\"&gt;\n"
+"        &lt;attribute name=\"JndiName\"&gt;inmemory/maps/MapTest&lt;/"
+"attribute&gt;\n"
+"        &lt;depends&gt;jboss:service=Naming&lt;/depends&gt;\n"
+"    &lt;/mbean&gt;\n"
+"&lt;/server&gt;"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1786
@@ -5998,6 +6210,46 @@
 "            changed from javax.management.Attribute at 82a72a to \n"
 "            javax.management.Attribute at acdb96]"
 msgstr ""
+"[examples]$ ant -Dchap=jmx -Dex=xmbean1 run-example\n"
+"...\n"
+"run-examplexmbean1:    \n"
+"     [java] JNDIMap Class: org.jboss.mx.modelmbean.XMBean\n"
+"     [java] JNDIMap Operations: \n"
+"     [java]  + void start()\n"
+"     [java]  + void stop()\n"
+"     [java]  + void put(java.lang.Object chap2.xmbean:service=JNDIMap,java."
+"lang.Object \n"
+"                        chap2.xmbean:service=JNDIMap)\n"
+"     [java]  + java.lang.Object get(java.lang.Object chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java] name=chap2.xmbean:service=JNDIMap\n"
+"     [java] listener=org.jboss.book.jmx.xmbean.TestXMBean1$Listener at f38cf0\n"
+"     [java] key=key0, value=value0\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:\n"
+"            service=JNDIMap][type=org.jboss.book.jmx.xmbean.JNDIMap.put]"
+"[message=]\n"
+"     [java] JNDIMap.put(key1, value1) successful\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:\n"
+"            service=JNDIMap][type=org.jboss.book.jmx.xmbean.JNDIMap.get]"
+"[message=]\n"
+"     [java] JNDIMap.get(key0): null\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:\n"
+"            service=JNDIMap][type=org.jboss.book.jmx.xmbean.JNDIMap.get]"
+"[message=]\n"
+"     [java] JNDIMap.get(key1): value1\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:\n"
+"            service=JNDIMap][type=org.jboss.book.jmx.xmbean.JNDIMap.put]"
+"[message=]\n"
+"     [java] handleNotification, event: javax.management."
+"AttributeChangeNotification[source\n"
+"            =chap2.xmbean:service=JNDIMap][type=jmx.attribute.change]"
+"[message=InitialValues \n"
+"            changed from javax.management.Attribute at 82a72a to \n"
+"            javax.management.Attribute at acdb96]"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1791
@@ -6031,7 +6283,7 @@
 #: J2EE_Reference_Introduction.xml:1798
 #, no-c-format
 msgid "The Version 1 JNDIMapXMBean jmx-console view"
-msgstr ""
+msgstr "Die Version 1 JNDIMapXMBean jmx-console Ansicht"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1805
@@ -6057,6 +6309,8 @@
 "In version 2 of the XMBean we add support for persistence of the XMBean "
 "attributes. The updated XMBean deployment descriptor is given below."
 msgstr ""
+"In version 2 des XMBean fügen wir Support für Persistenz der XMBean "
+"Attribute hinzu. Der aktualisierte XMBean Deployment-Deskriptor ist unten angegeben."
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1815
@@ -6165,12 +6419,114 @@
 "    &lt;/notification&gt;\n"
 "&lt;/mbean&gt;"
 msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;!DOCTYPE mbean PUBLIC\n"
+"          \"-//JBoss//DTD JBOSS XMBEAN 1.0//EN\"\n"
+"          \"http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_0.dtd\"&gt;\n"
+"&lt;mbean&gt;\n"
+"    &lt;description&gt;The JNDIMap XMBean Example Version 2&lt;/"
+"description&gt;\n"
+"    &lt;descriptors&gt;\n"
+"        &lt;persistence persistPolicy=\"OnUpdate\" persistPeriod=\"10\"\n"
+"            persistLocation=\"${jboss.server.data.dir}\" persistName="
+"\"JNDIMap.ser\"/&gt;\n"
+"        &lt;currencyTimeLimit value=\"10\"/&gt;\n"
+"        &lt;state-action-on-update value=\"keep-running\"/&gt;\n"
+"        &lt;persistence-manager value=\"org.jboss.mx.persistence."
+"ObjectStreamPersistenceManager\"/&gt;\n"
+"    &lt;/descriptors&gt;  &lt;class&gt;org.jboss.test.jmx.xmbean.JNDIMap&lt;/"
+"class&gt;\n"
+"    &lt;constructor&gt;\n"
+"        &lt;description&gt;The default constructor&lt;/description&gt;\n"
+"        &lt;name&gt;JNDIMap&lt;/name&gt;\n"
+"    &lt;/constructor&gt; \n"
+"    &lt;!-- Attributes --&gt;\n"
+"    &lt;attribute access=\"read-write\" getMethod=\"getJndiName\" setMethod="
+"\"setJndiName\"&gt;\n"
+"        &lt;description&gt;\n"
+"            The location in JNDI where the Map we manage will be bound\n"
+"        &lt;/description&gt;\n"
+"        &lt;name&gt;JndiName&lt;/name&gt;\n"
+"        &lt;type&gt;java.lang.String&lt;/type&gt;\n"
+"        &lt;descriptors&gt;\n"
+"            &lt;default value=\"inmemory/maps/MapTest\"/&gt;\n"
+"        &lt;/descriptors&gt;\n"
+"    &lt;/attribute&gt;\n"
+"    &lt;attribute access=\"read-write\" getMethod=\"getInitialValues\"\n"
+"               setMethod=\"setInitialValues\"&gt;\n"
+"        &lt;description&gt;The array of initial values that will be placed "
+"into the\n"
+"            map associated with the service. The array is a collection of\n"
+"            key,value pairs with elements[0,2,4,...2n] being the keys and\n"
+"            elements [1,3,5,...,2n+1] the associated values&lt;/"
+"description&gt;\n"
+"        &lt;name&gt;InitialValues&lt;/name&gt;\n"
+"        &lt;type&gt;[Ljava.lang.String;&lt;/type&gt;\n"
+"        &lt;descriptors&gt;\n"
+"            &lt;default value=\"key0,value0\"/&gt;\n"
+"        &lt;/descriptors&gt;\n"
+"    &lt;/attribute&gt; \n"
+"    &lt;!-- Operations --&gt;\n"
+"    &lt;operation&gt;\n"
+"        &lt;description&gt;The start lifecycle operation&lt;/"
+"description&gt;\n"
+"        &lt;name&gt;start&lt;/name&gt;\n"
+"    &lt;/operation&gt;\n"
+"    &lt;operation&gt;\n"
+"        &lt;description&gt;The stop lifecycle operation&lt;/description&gt;\n"
+"        &lt;name&gt;stop&lt;/name&gt;\n"
+"    &lt;/operation&gt;\n"
+"    &lt;operation impact=\"ACTION\"&gt;\n"
+"        &lt;description&gt;Put a value into the nap&lt;/description&gt;\n"
+"        &lt;name&gt;put&lt;/name&gt;\n"
+"        &lt;parameter&gt;\n"
+"            &lt;description&gt;The key the value will be store under&lt;/"
+"description&gt;\n"
+"            &lt;name&gt;key&lt;/name&gt;\n"
+"            &lt;type&gt;java.lang.Object&lt;/type&gt;\n"
+"        &lt;/parameter&gt;\n"
+"        &lt;parameter&gt;\n"
+"            &lt;description&gt;The value to place into the map&lt;/"
+"description&gt;\n"
+"            &lt;name&gt;value&lt;/name&gt;\n"
+"            &lt;type&gt;java.lang.Object&lt;/type&gt;\n"
+"        &lt;/parameter&gt;\n"
+"    &lt;/operation&gt;\n"
+"    &lt;operation impact=\"INFO\"&gt;\n"
+"        &lt;description&gt;Get a value from the map&lt;/description&gt;\n"
+"        &lt;name&gt;get&lt;/name&gt;\n"
+"        &lt;parameter&gt;\n"
+"            &lt;description&gt;The key to lookup in the map&lt;/"
+"description&gt;\n"
+"            &lt;name&gt;get&lt;/name&gt;\n"
+"            &lt;type&gt;java.lang.Object&lt;/type&gt;\n"
+"        &lt;/parameter&gt;\n"
+"        &lt;return-type&gt;java.lang.Object&lt;/return-type&gt;\n"
+"    &lt;/operation&gt; \n"
+"    &lt;!-- Notifications --&gt;\n"
+"    &lt;notification&gt;\n"
+"        &lt;description&gt;The notification sent whenever a value is get "
+"into the map\n"
+"            managed by the service&lt;/description&gt;\n"
+"        &lt;name&gt;javax.management.Notification&lt;/name&gt;\n"
+"        &lt;notification-type&gt;org.jboss.book.jmx.xmbean.JNDIMap.get&lt;/"
+"notification-type&gt;\n"
+"    &lt;/notification&gt;\n"
+"    &lt;notification&gt;\n"
+"        &lt;description&gt;The notification sent whenever a value is put "
+"into the map\n"
+"            managed by the service&lt;/description&gt;\n"
+"        &lt;name&gt;javax.management.Notification&lt;/name&gt;\n"
+"        &lt;notification-type&gt;org.jboss.book.jmx.xmbean.JNDIMap.put&lt;/"
+"notification-type&gt;\n"
+"    &lt;/notification&gt;\n"
+"&lt;/mbean&gt;"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1816
 #, no-c-format
 msgid "Build, deploy and test the version 2 XMBean as follows:"
-msgstr ""
+msgstr "Build, Deployment und Test des Version 2 XMBean wie folgt:"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1819
@@ -6221,6 +6577,50 @@
 "timeStamp=1098632\n"
 "693925,message=null,userData=null]"
 msgstr ""
+"[examples]$ ant -Dchap=jmx -Dex=xmbean2 -Djboss.deploy.conf=default run-"
+"example\n"
+"...\n"
+"run-examplexmbean2:\n"
+"     [java] JNDIMap Class: org.jboss.mx.modelmbean.XMBean\n"
+"     [java] JNDIMap Operations: \n"
+"     [java]  + void start()\n"
+"     [java]  + void stop()\n"
+"     [java]  + void put(java.lang.Object chap2.xmbean:service=JNDIMap,java."
+"lang.Object cha\n"
+"p2.xmbean:service=JNDIMap)\n"
+"     [java]  + java.lang.Object get(java.lang.Object chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java]  + java.lang.String getJndiName()\n"
+"     [java]  + void setJndiName(java.lang.String chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java]  + [Ljava.lang.String; getInitialValues()\n"
+"     [java]  + void setInitialValues([Ljava.lang.String; chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java] handleNotification, event: null\n"
+"     [java] key=key10, value=value10\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.chap2.xmbean.JNDIMap.put,sequenceNumber=7,"
+"timeStamp=10986326\n"
+"93716,message=null,userData=null]\n"
+"     [java] JNDIMap.put(key1, value1) successful\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.chap2.xmbean.JNDIMap.get,sequenceNumber=8,"
+"timeStamp=10986326\n"
+"93857,message=null,userData=null]\n"
+"     [java] JNDIMap.get(key0): null\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.chap2.xmbean.JNDIMap.get,sequenceNumber=9,"
+"timeStamp=10986326\n"
+"93896,message=null,userData=null]\n"
+"     [java] JNDIMap.get(key1): value1\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.chap2.xmbean.JNDIMap.put,sequenceNumber=10,"
+"timeStamp=1098632\n"
+"693925,message=null,userData=null]"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1820
@@ -6241,6 +6641,10 @@
 "     [java] InitialValues.length=2\n"
 "     [java] key=key10, value=value10"
 msgstr ""
+"[examples] ant -Dchap=jmx -Dex=xmbean2a run-example\n"
+"...\n"
+"     [java] InitialValues.length=2\n"
+"     [java] key=key10, value=value10"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1825
@@ -6274,6 +6678,10 @@
 "setting, and then adds another key/value pair to it. The client code is "
 "shown below."
 msgstr ""
+"Das in diesem Beispiel verwendete "
+"<literal>org.jboss.book.jmx.xmbean.TestXMBeanRestart</literal> enthält die "
+"aktuelle <literal>InitialValues</literal>-Attributeinstellung und fügt dann "
+"ein weiteres Schlüssel/Wert-Paar hinzu. Der Client-Code ist unten dargestellt."
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1833
@@ -6332,6 +6740,58 @@
 "    }\n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.xmbean;\n"
+"\n"
+"import javax.management.Attribute;\n"
+"import javax.management.ObjectName;\n"
+"import javax.naming.InitialContext;\n"
+"\n"
+"import org.jboss.jmx.adaptor.rmi.RMIAdaptor;\n"
+"\n"
+"/**\n"
+" *  A client that demonstrates the persistence of the xmbean\n"
+" *  attributes. Every time it run it looks up the InitialValues\n"
+" *  attribute, prints it out and then adds a new key/value to the\n"
+" *  list.\n"
+" *  \n"
+" *  @author Scott.Stark at jboss.org\n"
+" *  @version $Revision: 1.1 $\n"
+" */\n"
+"public class TestXMBeanRestart\n"
+"{\n"
+"    /**\n"
+"     * @param args the command line arguments\n"
+"     */\n"
+"    public static void main(String[] args) throws Exception\n"
+"    {\n"
+"        InitialContext ic = new InitialContext();\n"
+"        RMIAdaptor server = (RMIAdaptor) ic.lookup(\"jmx/rmi/RMIAdaptor\");\n"
+"        \n"
+"        // Get the InitialValues attribute\n"
+"        ObjectName name = new ObjectName(\"j2eechap2.xmbean:service=JNDIMap"
+"\");\n"
+"        String[] initialValues = (String[])\n"
+"            server.getAttribute(name, \"InitialValues\");\n"
+"        System.out.println(\"InitialValues.length=\"+initialValues.length);\n"
+"        int length = initialValues.length;\n"
+"        for (int n = 0; n &lt; length; n += 2) {\n"
+"            String key = initialValues[n];\n"
+"            String value = initialValues[n+1];\n"
+"            \n"
+"            System.out.println(\"key=\"+key+\", value=\"+value);\n"
+"        }\n"
+"        // Add a new key/value pair\n"
+"        String[] newInitialValues = new String[length+2];\n"
+"        System.arraycopy(initialValues, 0, newInitialValues,\n"
+"                         0, length);\n"
+"        newInitialValues[length] = \"key\"+(length/2+1);\n"
+"        newInitialValues[length+1] = \"value\"+(length/2+1);\n"
+"        \n"
+"        Attribute ivalues = new\n"
+"            Attribute(\"InitialValues\", newInitialValues);\n"
+"        server.setAttribute(name, ivalues);\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1834
@@ -6341,6 +6801,9 @@
 "rerun the initial example to see if the changes are persisted across server "
 "restarts:"
 msgstr ""
+"An diesem Punkt können Sie den JBoss-Server sogar herunterfahren, neu starten "
+"und das Anfangsbeispiel erneut laufen lassen, um zu sehen, ob die Änderungen "
+"über Server-Neustarts hinweg persistiert wurden:"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1837
@@ -6409,6 +6872,68 @@
 "timeStamp=10986\n"
 "33665614,message=null,userData=null]"
 msgstr ""
+"[examples]$ ant -Dchap=jmx -Dex=xmbean2 run-example\n"
+"...\n"
+"\n"
+"run-examplexmbean2:\n"
+"     [java] JNDIMap Class: org.jboss.mx.modelmbean.XMBean\n"
+"     [java] JNDIMap Operations: \n"
+"     [java]  + void start()\n"
+"     [java]  + void stop()\n"
+"     [java]  + void put(java.lang.Object chap2.xmbean:service=JNDIMap,java."
+"lang.Object cha\n"
+"p2.xmbean:service=JNDIMap)\n"
+"     [java]  + java.lang.Object get(java.lang.Object chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java]  + java.lang.String getJndiName()\n"
+"     [java]  + void setJndiName(java.lang.String chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java]  + [Ljava.lang.String; getInitialValues()\n"
+"     [java]  + void setInitialValues([Ljava.lang.String; chap2.xmbean:"
+"service=JNDIMap)\n"
+"     [java] handleNotification, event: null\n"
+"     [java] <emphasis role=\"bold\">key=key10, value=value10</emphasis>\n"
+"     [java] <emphasis role=\"bold\">key=key2, value=value2</emphasis>\n"
+"     [java] <emphasis role=\"bold\">key=key3, value=value3</emphasis>\n"
+"     [java] <emphasis role=\"bold\">key=key4, value=value4</emphasis>\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.put,sequenceNumber=3,"
+"timeStamp=10986\n"
+"33664712,message=null,userData=null]\n"
+"     [java] JNDIMap.put(key1, value1) successful\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.get,sequenceNumber=4,"
+"timeStamp=10986\n"
+"33664821,message=null,userData=null]\n"
+"     [java] JNDIMap.get(key0): null\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.get,sequenceNumber=5,"
+"timeStamp=10986\n"
+"33664860,message=null,userData=null]\n"
+"     [java] JNDIMap.get(key1): value1\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.put,sequenceNumber=6,"
+"timeStamp=10986\n"
+"33664877,message=null,userData=null]\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.put,sequenceNumber=7,"
+"timeStamp=10986\n"
+"33664895,message=null,userData=null]\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.put,sequenceNumber=8,"
+"timeStamp=10986\n"
+"33664899,message=null,userData=null]\n"
+"     [java] handleNotification, event: javax.management.Notification"
+"[source=chap2.xmbean:s\n"
+"ervice=JNDIMap,type=org.jboss.book.jmx.xmbean.JNDIMap.put,sequenceNumber=9,"
+"timeStamp=10986\n"
+"33665614,message=null,userData=null]"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1838
@@ -6417,6 +6942,8 @@
 "You see that the last <literal>InitialValues</literal> attribute setting is "
 "in fact visible."
 msgstr ""
+"Sie sehen, dass die letzte <literal>InitialValues</literal>-Attributeinstellung "
+"tatsächlich sichtbar ist."
 
 #. Tag: title
 #: J2EE_Reference_Introduction.xml:1848
@@ -6470,6 +6997,20 @@
 "| +- org/jboss/book/jmx/ex3/EjbMBeanAdaptor.class\n"
 "+- META-INF/application.xml"
 msgstr ""
+"<emphasis role=\"bold\">output/jmx/jmx-ex3.ear</emphasis>\n"
+"+- META-INF/MANIFEST.MF\n"
+"+- META-INF/jboss-app.xml\n"
+"+- jmx-ex3.jar (archive) [EJB jar]\n"
+"| +- META-INF/MANIFEST.MF\n"
+"| +- META-INF/ejb-jar.xml\n"
+"| +- org/jboss/book/jmx/ex3/EchoBean.class\n"
+"| +- org/jboss/book/jmx/ex3/EchoLocal.class\n"
+"| +- org/jboss/book/jmx/ex3/EchoLocalHome.class\n"
+"+- jmx-ex3.sar (archive) [MBean sar]\n"
+"| +- META-INF/MANIFEST.MF\n"
+"| +- META-INF/jboss-service.xml\n"
+"| +- org/jboss/book/jmx/ex3/EjbMBeanAdaptor.class\n"
+"+- META-INF/application.xml"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1856
@@ -6481,6 +7022,11 @@
 "implemented the service as a Dynamic MBean to provide an illustration of "
 "their use."
 msgstr ""
+"Die EAR enthält ein <literal>jmx-ex3.jar</literal> und <literal>jmx-ex3.sar</"
+"literal>. Das <literal>jmx-ex3.jar</literal> ist das EJB-Archiv und das "
+"<literal>jmx-ex3.sar</literal> ist das MBean Service-Archiv. Wir haben den "
+"Dienst als dynamisches MBean (\"Dynamic MBean\") implementiert, um eine "
+"Darstellung der Anwendung zu bieten."
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1859
@@ -6827,6 +7373,346 @@
 "    \n"
 "}"
 msgstr ""
+"package org.jboss.book.jmx.ex3;\n"
+"            \n"
+"import java.lang.reflect.Method;\n"
+"import javax.ejb.CreateException;\n"
+"import javax.management.Attribute;\n"
+"import javax.management.AttributeList;\n"
+"import javax.management.AttributeNotFoundException;\n"
+"import javax.management.DynamicMBean;\n"
+"import javax.management.InvalidAttributeValueException;\n"
+"import javax.management.JMRuntimeException;\n"
+"import javax.management.MBeanAttributeInfo;\n"
+"import javax.management.MBeanConstructorInfo;\n"
+"import javax.management.MBeanInfo;\n"
+"import javax.management.MBeanNotificationInfo;\n"
+"import javax.management.MBeanOperationInfo;\n"
+"import javax.management.MBeanException;\n"
+"import javax.management.MBeanServer;\n"
+"import javax.management.ObjectName;\n"
+"import javax.management.ReflectionException;\n"
+"import javax.naming.InitialContext;\n"
+"import javax.naming.NamingException;\n"
+"\n"
+"import org.jboss.system.ServiceMBeanSupport;\n"
+"\n"
+"/** \n"
+" *  An example of a DynamicMBean that exposes select attributes and\n"
+" *  operations of an EJB as an MBean.\n"
+" *  @author Scott.Stark at jboss.org\n"
+" *  @version $Revision: 1.1 $\n"
+" */\n"
+"public class EjbMBeanAdaptor extends ServiceMBeanSupport\n"
+"    implements DynamicMBean\n"
+"{\n"
+"    private String helloPrefix;\n"
+"    private String ejbJndiName;\n"
+"    private EchoLocalHome home;\n"
+"    \n"
+"    /** These are the mbean attributes we expose\n"
+"     */\n"
+"    private MBeanAttributeInfo[] attributes = {\n"
+"        new MBeanAttributeInfo(\"HelloPrefix\", \"java.lang.String\",\n"
+"                               \"The prefix message to append to the session "
+"echo reply\",\n"
+"                               true, // isReadable\n"
+"                               true, // isWritable\n"
+"                               false), // isIs\n"
+"        new MBeanAttributeInfo(\"EjbJndiName\", \"java.lang.String\",\n"
+"                               \"The JNDI name of the session bean local home"
+"\",\n"
+"                               true, // isReadable\n"
+"                               true, // isWritable\n"
+"                               false) // isIs\n"
+"    };\n"
+"\n"
+"    /** \n"
+"     * These are the mbean operations we expose\n"
+"     */\n"
+"    private MBeanOperationInfo[] operations;\n"
+"    \n"
+"    /** \n"
+"     * We override this method to setup our echo operation info. It\n"
+"     * could also be done in a ctor.\n"
+"     */\n"
+"    public ObjectName preRegister(MBeanServer server,\n"
+"                                  ObjectName name)\n"
+"        throws Exception\n"
+"    {\n"
+"        log.info(\"preRegister notification seen\");\n"
+"        \n"
+"        operations = new MBeanOperationInfo[5];\n"
+"        \n"
+"        Class thisClass = getClass();\n"
+"        Class[] parameterTypes = {String.class};\n"
+"        Method echoMethod =\n"
+"            thisClass.getMethod(\"echo\", parameterTypes);\n"
+"        String desc = \"The echo op invokes the session bean echo method and"
+"\"\n"
+"            + \" returns its value prefixed with the helloPrefix attribute "
+"value\";\n"
+"        operations[0] = new MBeanOperationInfo(desc, echoMethod);\n"
+"            \n"
+"        // Add the Service interface operations from our super class\n"
+"        parameterTypes = new Class[0];\n"
+"        Method createMethod =\n"
+"            thisClass.getMethod(\"create\", parameterTypes);\n"
+"        operations[1] = new MBeanOperationInfo(\"The\n"
+"                JBoss Service.create\", createMethod);\n"
+"        Method startMethod =\n"
+"            thisClass.getMethod(\"start\", parameterTypes);\n"
+"        operations[2] = new MBeanOperationInfo(\"The\n"
+"                JBoss Service.start\", startMethod);\n"
+"        Method stopMethod =\n"
+"            thisClass.getMethod(\"stop\", parameterTypes);\n"
+"        operations[3] = new MBeanOperationInfo(\"The\n"
+"                JBoss Service.stop\", startMethod);\n"
+"        Method destroyMethod =\n"
+"            thisClass.getMethod(\"destroy\", parameterTypes);\n"
+"        operations[4] = new MBeanOperationInfo(\"The\n"
+"                JBoss Service.destroy\", startMethod);\n"
+"        return name;\n"
+"    }\n"
+"    \n"
+"    \n"
+"    // --- Begin ServiceMBeanSupport overides\n"
+"    protected void createService() throws Exception\n"
+"    {\n"
+"        log.info(\"Notified of create state\");\n"
+"    }\n"
+"\n"
+"    protected void startService() throws Exception\n"
+"    {\n"
+"        log.info(\"Notified of start state\");\n"
+"        InitialContext ctx = new InitialContext();\n"
+"        home = (EchoLocalHome) ctx.lookup(ejbJndiName);\n"
+"    }\n"
+"\n"
+"    protected void stopService()\n"
+"    {\n"
+"        log.info(\"Notified of stop state\");\n"
+"    }\n"
+"\n"
+"    // --- End ServiceMBeanSupport overides\n"
+"            \n"
+"    public String getHelloPrefix()\n"
+"    {\n"
+"        return helloPrefix;\n"
+"    }\n"
+"    public void setHelloPrefix(String helloPrefix)\n"
+"    {\n"
+"        this.helloPrefix = helloPrefix;\n"
+"    }\n"
+"    \n"
+"    public String getEjbJndiName()\n"
+"    {\n"
+"        return ejbJndiName;\n"
+"    }\n"
+"    public void setEjbJndiName(String ejbJndiName)\n"
+"    {\n"
+"        this.ejbJndiName = ejbJndiName;\n"
+"    }\n"
+"    \n"
+"    public String echo(String arg)\n"
+"        throws CreateException, NamingException\n"
+"    {\n"
+"        log.debug(\"Lookup EchoLocalHome@\"+ejbJndiName);\n"
+"        EchoLocal bean = home.create();\n"
+"        String echo = helloPrefix + bean.echo(arg);\n"
+"        return echo;\n"
+"    }\n"
+"    \n"
+"    // --- Begin DynamicMBean interface methods\n"
+"    /** \n"
+"     *  Returns the management interface that describes this dynamic\n"
+"     *  resource.  It is the responsibility of the implementation to\n"
+"     *  make sure the description is accurate.\n"
+"     *\n"
+"     * @return the management interface descriptor.\n"
+"     */\n"
+"    public MBeanInfo getMBeanInfo()\n"
+"    {\n"
+"        String classname = getClass().getName();\n"
+"        String description = \"This is an MBean that uses a session bean in "
+"the\"\n"
+"            + \" implementation of its echo operation.\";\n"
+"        MBeanInfo[] constructors = null;\n"
+"        MBeanNotificationInfo[] notifications = null;\n"
+"        MBeanInfo mbeanInfo = new MBeanInfo(classname,\n"
+"                                            description, attributes,\n"
+"                                            constructors, operations,\n"
+"                                            notifications);\n"
+"        // Log when this is called so we know when in the\n"
+"        lifecycle this is used\n"
+"            Throwable trace = new Throwable(\"getMBeanInfo trace\");\n"
+"        log.info(\"Don&#39;t panic, just a stack\n"
+"                trace\", trace);\n"
+"        return mbeanInfo;\n"
+"    }\n"
+"    \n"
+"    /** \n"
+"     *  Returns the value of the attribute with the name matching the\n"
+"     *  passed string.\n"
+"     *\n"
+"     * @param attribute the name of the attribute.\n"
+"     * @return the value of the attribute.\n"
+"     * @exception AttributeNotFoundException when there is no such\n"
+"     * attribute.\n"
+"     * @exception MBeanException wraps any error thrown by the\n"
+"     * resource when\n"
+"     * getting the attribute.\n"
+"     * @exception ReflectionException wraps any error invoking the\n"
+"     * resource.\n"
+"     */\n"
+"    public Object getAttribute(String attribute)\n"
+"        throws AttributeNotFoundException, \n"
+"               MBeanException, \n"
+"               ReflectionException\n"
+"    {\n"
+"        Object value = null;\n"
+"        if (attribute.equals(\"HelloPrefix\")) {\n"
+"            value = getHelloPrefix();\n"
+"        } else if(attribute.equals(\"EjbJndiName\")) {\n"
+"            value = getEjbJndiName();\n"
+"        } else {\n"
+"            throw new AttributeNotFoundException(\"Unknown\n"
+"                attribute(\"+attribute+\") requested\");\n"
+"        }\n"
+"        return value;\n"
+"    }\n"
+"            \n"
+"    /** \n"
+"     * Returns the values of the attributes with names matching the\n"
+"     * passed string array.\n"
+"     *\n"
+"     * @param attributes the names of the attribute.\n"
+"     * @return an {@link AttributeList AttributeList} of name\n"
+"     * and value pairs.\n"
+"     */\n"
+"    public AttributeList getAttributes(String[] attributes)\n"
+"    {\n"
+"        AttributeList values = new AttributeList();\n"
+"        for (int a = 0; a &lt; attributes.length; a++) {\n"
+"            String name = attributes[a];\n"
+"            try {\n"
+"                Object value = getAttribute(name);\n"
+"                Attribute attr = new Attribute(name, value);\n"
+"                values.add(attr);\n"
+"            } catch(Exception e) {\n"
+"                log.error(\"Failed to find attribute: \"+name, e);\n"
+"            }\n"
+"        }\n"
+"        return values;\n"
+"    }\n"
+"            \n"
+"    /**\n"
+"     *  Sets the value of an attribute. The attribute and new value\n"
+"     *  are passed in the name value pair {@link Attribute\n"
+"     *  Attribute}.\n"
+"     *\n"
+"     * @see javax.management.Attribute\n"
+"     *\n"
+"     * @param attribute the name and new value of the attribute.\n"
+"     * @exception AttributeNotFoundException when there is no such\n"
+"     * attribute.\n"
+"     * @exception InvalidAttributeValueException when the new value\n"
+"     * cannot be converted to the type of the attribute.\n"
+"     * @exception MBeanException wraps any error thrown by the\n"
+"     * resource when setting the new value.\n"
+"     * @exception ReflectionException wraps any error invoking the\n"
+"     * resource.\n"
+"     */\n"
+"    public void setAttribute(Attribute attribute)\n"
+"        throws AttributeNotFoundException, \n"
+"               InvalidAttributeValueException,\n"
+"               MBeanException, \n"
+"               ReflectionException\n"
+"    {\n"
+"        String name = attribute.getName();\n"
+"        if (name.equals(\"HelloPrefix\")) { \n"
+"            String value = attribute.getValue().toString();\n"
+"            setHelloPrefix(value);\n"
+"        } else if(name.equals(\"EjbJndiName\")) {\n"
+"            String value = attribute.getValue().toString();\n"
+"            setEjbJndiName(value);\n"
+"        } else {\n"
+"            throw new AttributeNotFoundException(\"Unknown attribute(\"+name+"
+"\") requested\");\n"
+"        }\n"
+"    }\n"
+"            \n"
+"    /**\n"
+"     * Sets the values of the attributes passed as an\n"
+"     * {@link AttributeList AttributeList} of name and new\n"
+"     * value pairs.\n"
+"     *\n"
+"     * @param attributes the name an new value pairs.\n"
+"     * @return an {@link AttributeList AttributeList} of name and\n"
+"     * value pairs that were actually set.\n"
+"     */\n"
+"    public AttributeList setAttributes(AttributeList attributes)\n"
+"    {\n"
+"        AttributeList setAttributes = new AttributeList();\n"
+"        for(int a = 0; a &lt; attributes.size(); a++) {\n"
+"            Attribute attr = (Attribute) attributes.get(a);\n"
+"            try {\n"
+"                setAttribute(attr);\n"
+"                setAttributes.add(attr);\n"
+"            } catch(Exception ignore) {\n"
+"            }\n"
+"        }\n"
+"        return setAttributes;\n"
+"    }\n"
+"    \n"
+"    /**\n"
+"     *  Invokes a resource operation.\n"
+"     *\n"
+"     *  @param actionName the name of the operation to perform.\n"
+"     *  @param params the parameters to pass to the operation.\n"
+"     *  @param signature the signartures of the parameters.\n"
+"     *  @return the result of the operation.\n"
+"     *  @exception MBeanException wraps any error thrown by the\n"
+"     *  resource when performing the operation.\n"
+"     *  @exception ReflectionException wraps any error invoking the\n"
+"     *  resource.\n"
+"     */\n"
+"    public Object invoke(String actionName, Object[] params,\n"
+"                         String[] signature)\n"
+"        throws MBeanException,\n"
+"               ReflectionException\n"
+"    {\n"
+"        Object rtnValue = null;\n"
+"        log.debug(\"Begin invoke, actionName=\"+actionName);\n"
+"        try {\n"
+"            if (actionName.equals(\"echo\")) {\n"
+"                String arg = (String) params[0];\n"
+"                rtnValue = echo(arg);\n"
+"                log.debug(\"Result: \"+rtnValue);\n"
+"            } else if (actionName.equals(\"create\")) {\n"
+"                super.create();\n"
+"            } else if (actionName.equals(\"start\")) {\n"
+"                super.start();\n"
+"            } else if (actionName.equals(\"stop\")) {\n"
+"                super.stop();\n"
+"            } else if (actionName.equals(\"destroy\")) {\n"
+"                super.destroy();\n"
+"            } else {\n"
+"                throw new JMRuntimeException(\"Invalid state,\n"
+"                don&#39;t know about op=\"+actionName);\n"
+"            }\n"
+"        } catch(Exception e) {\n"
+"            throw new ReflectionException(e, \"echo failed\");\n"
+"        }\n"
+"\n"
+"\n"
+"        log.debug(\"End invoke, actionName=\"+actionName);\n"
+"        return rtnValue;\n"
+"    }\n"
+"    \n"
+"    // --- End DynamicMBean interface methods\n"
+"    \n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1860
@@ -6870,6 +7756,18 @@
 "    public void destroy();\n"
 "}"
 msgstr ""
+"public interface EjbMBeanAdaptorMBean\n"
+"{\n"
+"    public String getHelloPrefix();\n"
+"    public void setHelloPrefix(String prefix);\n"
+"    public String getEjbJndiName();\n"
+"    public void setEjbJndiName(String jndiName);\n"
+"    public String echo(String arg) throws CreateException, NamingException;\n"
+"    public void create() throws Exception;\n"
+"    public void start() throws Exception;\n"
+"    public void stop();\n"
+"    public void destroy();\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1867
@@ -6996,24 +7894,36 @@
 "    &lt;/mbean&gt;\n"
 "&lt;/server&gt;"
 msgstr ""
+"&lt;server&gt;\n"
+"    &lt;mbean code=\"org.jboss.book.jmx.ex3.EjbMBeanAdaptor\"\n"
+"           name=\"jboss.book:service=EjbMBeanAdaptor\"&gt;\n"
+"        &lt;attribute name=\"HelloPrefix\"&gt;AdaptorPrefix&lt;/"
+"attribute&gt;\n"
+"        &lt;attribute name=\"EjbJndiName\"&gt;local/j2ee_chap2.EchoBean&lt;/"
+"attribute&gt;\n"
+"        &lt;depends&gt;jboss.j2ee:service=EJB,jndiName=local/j2ee_chap2."
+"EchoBean&lt;/depends&gt;\n"
+"    &lt;/mbean&gt;\n"
+"&lt;/server&gt;"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1892
 #, no-c-format
+#, fuzzy
 msgid "Deploy the example ear by running:"
-msgstr ""
+msgstr "Deployment der Beispiel-EAR durch ausführenthe example ear by running:"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1895
 #, no-c-format
 msgid "[examples]$ ant -Dchap=jmx -Dex=3 run-example"
-msgstr ""
+msgstr "[examples]$ ant -Dchap=jmx -Dex=3 run-example"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1896
 #, no-c-format
 msgid "On the server console there will be messages similar to the following:"
-msgstr ""
+msgstr "An der Server-Konsole erscheinen Meldungen ähnlich der folgenden:"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:1899
@@ -7090,6 +8000,76 @@
 "/tmp60550jmx-ex3.ear-contents/jmx-ex3.jar                    \n"
 "14:57:14,075 INFO  [EARDeployer] Started J2EE application: ..."
 msgstr ""
+"14:57:12,906 INFO  [EARDeployer] Init J2EE application: file:/private/tmp/"
+"jboss-eap-4.3/jboss-as/server/\n"
+"        production/deploy/j2ee_chap2-ex3.ear\n"
+"14:57:13,044 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...\n"
+"14:57:13,088 INFO  [EjbMBeanAdaptor] preRegister notification seen\n"
+"14:57:13,093 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...\n"
+"14:57:13,117 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...        \n"
+"14:57:13,140 WARN  [EjbMBeanAdaptor] Unexcepted error accessing MBeanInfo "
+"for null\n"
+"java.lang.NullPointerException\n"
+"  at org.jboss.system.ServiceMBeanSupport.postRegister(ServiceMBeanSupport."
+"java:418)\n"
+"...\n"
+"14:57:13,203 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"... \n"
+"14:57:13,232 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...\n"
+"14:57:13,420 INFO  [EjbModule] Deploying Chap2EchoInfoBean\n"
+"14:57:13,443 INFO  [EjbModule] Deploying chap2.EchoBean\n"
+"14:57:13,488 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...\n"
+"14:57:13,542 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"...\n"
+"14:57:13,558 INFO  [EjbMBeanAdaptor] Begin invoke, actionName=create\n"
+"14:57:13,560 INFO  [EjbMBeanAdaptor] Notified of create state\n"
+"14:57:13,562 INFO  [EjbMBeanAdaptor] End invoke, actionName=create\n"
+"14:57:13,604 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"... \n"
+"14:57:13,621 INFO  [EjbMBeanAdaptor] Don&#39;t panic, just a stack trace\n"
+"java.lang.Throwable: getMBeanInfo trace\n"
+"  at org.jboss.book.jmx.ex3.EjbMBeanAdaptor.getMBeanInfo(EjbMBeanAdaptor."
+"java:153)\n"
+"14:57:13,641 INFO  [EjbMBeanAdaptor] Begin invoke, actionName=getState\n"
+"14:57:13,942 INFO  [EjbMBeanAdaptor] Begin invoke, actionName=start\n"
+"14:57:13,944 INFO  [EjbMBeanAdaptor] Notified of start state\n"
+"14:57:13,951 INFO  [EjbMBeanAdaptor] Testing Echo\n"
+"14:57:13,983 INFO  [EchoBean] echo, info=echo info, arg=, arg=startService\n"
+"14:57:13,986 INFO  [EjbMBeanAdaptor] echo(startService) = startService\n"
+"14:57:13,988 INFO  [EjbMBeanAdaptor] End invoke, actionName=start\n"
+"14:57:13,991 INFO  [EJBDeployer] Deployed: file:/tmp/jboss-eap-4.3/jboss-as/"
+"server/production/tmp/deploy\n"
+"/tmp60550jmx-ex3.ear-contents/jmx-ex3.jar                    \n"
+"14:57:14,075 INFO  [EARDeployer] Started J2EE application: ..."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1900
@@ -7119,7 +8099,7 @@
 #: J2EE_Reference_Introduction.xml:1907
 #, no-c-format
 msgid "The EjbMBeanAdaptor MBean operations JMX console view"
-msgstr ""
+msgstr "Die JMX-Konsolenansicht von EjbMBeanAdaptor MBean-Operationen"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1914
@@ -7144,12 +8124,18 @@
 "10:51:48,687 INFO [EjbMBeanAdaptor] Result: AdaptorPrefix-echo-arg\n"
 "10:51:48,687 INFO [EjbMBeanAdaptor] End invoke, actionName=echo"
 msgstr ""
+"10:51:48,671 INFO [EjbMBeanAdaptor] Begin invoke, actionName=echo\n"
+"10:51:48,671 INFO [EjbMBeanAdaptor] Lookup EchoLocalHome at local/j2ee_chap2."
+"EchoBean\n"
+"10:51:48,687 INFO [EchoBean] echo, info=echo info, arg=, arg=-echo-arg\n"
+"10:51:48,687 INFO [EjbMBeanAdaptor] Result: AdaptorPrefix-echo-arg\n"
+"10:51:48,687 INFO [EjbMBeanAdaptor] End invoke, actionName=echo"
 
 #. Tag: title
 #: J2EE_Reference_Introduction.xml:1923
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "JBoss Deployer Architecture"
-msgstr "Service-Architekturen"
+msgstr "JBoss Deployer-Architektur"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:1924
@@ -7344,7 +8330,7 @@
 #: J2EE_Reference_Introduction.xml:1999
 #, no-c-format
 msgid "An illustration of the class loaders involved with an EAR deployment"
-msgstr ""
+msgstr "Eine Abbildung der an einem EAR-Deployment beteiligten Klassenlader"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2006
@@ -7490,6 +8476,22 @@
 "    Object invoke(Invocation invocation) throws Exception;\n"
 "}"
 msgstr ""
+"package org.jboss.invocation;\n"
+"            \n"
+"import java.rmi.Remote;\n"
+"import org.jboss.proxy.Interceptor;\n"
+"import org.jboss.util.id.GUID;\n"
+"            \n"
+"            \n"
+"public interface Invoker\n"
+"    extends Remote\n"
+"{\n"
+"    GUID ID = new GUID();\n"
+"\n"
+"    String getServerHostName() throws Exception;\n"
+"\n"
+"    Object invoke(Invocation invocation) throws Exception;\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2042
@@ -7577,6 +8579,9 @@
 "Define a JMX operation matching the signature: <literal>public Object invoke"
 "(org.jboss.invocation.Invocation) throws Exception</literal>"
 msgstr ""
+"Definieren einer mit der Signatur übereinstimmenden JMX-Operation: "
+"<literal>public Object invoke"
+"(org.jboss.invocation.Invocation) throws Exception</literal>"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2083
@@ -7630,7 +8635,7 @@
 #: J2EE_Reference_Introduction.xml:2101
 #, no-c-format
 msgid "The InvokerAdaptorService MBean"
-msgstr ""
+msgstr "Das InvokerAdaptorService MBean"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:2102
@@ -7779,6 +8784,148 @@
 "    }\n"
 "}"
 msgstr ""
+"package org.jboss.jmx.connector.invoker;\n"
+"public interface InvokerAdaptorServiceMBean\n"
+"    extends org.jboss.system.ServiceMBean\n"
+"{\n"
+"    Class getExportedInterface();\n"
+"    void setExportedInterface(Class exportedInterface);\n"
+"\n"
+"    Object invoke(org.jboss.invocation.Invocation invocation)\n"
+"        throws Exception;\n"
+"}\n"
+"\n"
+"package org.jboss.jmx.connector.invoker;\n"
+"\n"
+"import java.lang.reflect.InvocationTargetException;\n"
+"import java.lang.reflect.Method;\n"
+"import java.lang.reflect.UndeclaredThrowableException;\n"
+"import java.util.Collections;\n"
+"import java.util.HashMap;\n"
+"import java.util.Map;\n"
+"\n"
+"import javax.management.MBeanServer;\n"
+"import javax.management.ObjectName;\n"
+"\n"
+"import org.jboss.invocation.Invocation;\n"
+"import org.jboss.invocation.MarshalledInvocation;\n"
+"import org.jboss.mx.server.ServerConstants;\n"
+"import org.jboss.system.ServiceMBeanSupport;\n"
+"import org.jboss.system.Registry;\n"
+"\n"
+"public class InvokerAdaptorService\n"
+"    extends ServiceMBeanSupport\n"
+"    implements InvokerAdaptorServiceMBean, ServerConstants\n"
+"{\n"
+"    private static ObjectName mbeanRegistry;\n"
+"    \n"
+"    static {\n"
+"        try {\n"
+"            mbeanRegistry = new ObjectName(MBEAN_REGISTRY);\n"
+"        } catch (Exception e) {\n"
+"            throw new RuntimeException(e.toString());\n"
+"        }\n"
+"    }\n"
+"\n"
+"    private Map marshalledInvocationMapping = new HashMap();\n"
+"    private Class exportedInterface;\n"
+"\n"
+"    public Class getExportedInterface()\n"
+"    {\n"
+"        return exportedInterface;\n"
+"    }\n"
+"\n"
+"    public void setExportedInterface(Class exportedInterface)\n"
+"    {\n"
+"        this.exportedInterface = exportedInterface;\n"
+"    }\n"
+"\n"
+"    protected void startService()\n"
+"        throws Exception\n"
+"    {\n"
+"        // Build the interface method map\n"
+"        Method[] methods = exportedInterface.getMethods();\n"
+"        HashMap tmpMap = new HashMap(methods.length);\n"
+"        for (int m = 0; m &lt; methods.length; m ++) {\n"
+"            Method method = methods[m];\n"
+"            Long hash = new Long(MarshalledInvocation.calculateHash"
+"(method));\n"
+"            tmpMap.put(hash, method);\n"
+"        }\n"
+"\n"
+"        marshalledInvocationMapping = Collections.unmodifiableMap(tmpMap);\n"
+"        // Place our ObjectName hash into the Registry so invokers can\n"
+"        // resolve it\n"
+"        Registry.bind(new Integer(serviceName.hashCode()), serviceName);\n"
+"    }\n"
+"\n"
+"    protected void stopService()\n"
+"        throws Exception\n"
+"    {\n"
+"        Registry.unbind(new Integer(serviceName.hashCode()));\n"
+"    }\n"
+"\n"
+"\n"
+"    public Object invoke(Invocation invocation)\n"
+"        throws Exception\n"
+"    {\n"
+"        // Make sure we have the correct classloader before unmarshalling\n"
+"        Thread thread = Thread.currentThread();\n"
+"        ClassLoader oldCL = thread.getContextClassLoader();\n"
+"\n"
+"        // Get the MBean this operation applies to\n"
+"        ClassLoader newCL = null;\n"
+"        ObjectName objectName = (ObjectName) \n"
+"            invocation.getValue(\"JMX_OBJECT_NAME\");\n"
+"        if (objectName != null) {\n"
+"            // Obtain the ClassLoader associated with the MBean deployment\n"
+"            newCL = (ClassLoader) \n"
+"                server.invoke(mbeanRegistry, \"getValue\",\n"
+"                              new Object[] { objectName, CLASSLOADER },\n"
+"                              new String[] { ObjectName.class.getName(),\n"
+"                                             \"java.lang.String\" });\n"
+"        }\n"
+"        \n"
+"        if (newCL != null &amp;&amp; newCL != oldCL) {\n"
+"            thread.setContextClassLoader(newCL);\n"
+"        }\n"
+"\n"
+"        try {\n"
+"            // Set the method hash to Method mapping\n"
+"            if (invocation instanceof MarshalledInvocation) {\n"
+"                MarshalledInvocation mi = (MarshalledInvocation) "
+"invocation;\n"
+"                mi.setMethodMap(marshalledInvocationMapping);\n"
+"            }\n"
+"\n"
+"            // Invoke the MBeanServer method via reflection\n"
+"            Method method = invocation.getMethod();\n"
+"            Object[] args = invocation.getArguments();\n"
+"            Object value = null;\n"
+"            try {\n"
+"                String name = method.getName();\n"
+"                Class[] sig = method.getParameterTypes();\n"
+"                Method mbeanServerMethod =\n"
+"                    MBeanServer.class.getMethod(name, sig);\n"
+"                value = mbeanServerMethod.invoke(server, args);\n"
+"            } catch(InvocationTargetException e) {\n"
+"                Throwable t = e.getTargetException();\n"
+"                if (t instanceof Exception) {\n"
+"                    throw (Exception) t;\n"
+"                } else {\n"
+"                    throw new UndeclaredThrowableException(t, method.toString"
+"());\n"
+"                }\n"
+"            }\n"
+"\n"
+"            return value;\n"
+"        } finally {\n"
+"            if (newCL != null &amp;&amp; newCL != oldCL) {\n"
+"                thread.setContextClassLoader(oldCL);\n"
+"            }\n"
+"        }\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2103
@@ -7893,7 +9040,7 @@
 msgid ""
 "Line 126 is the return of the successful MBeanServer method invocation "
 "result."
-msgstr ""
+msgstr "Zeile 126 zeigt das Ergebnis des erfolgreichen MBeanServer Methodenaufrufs."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2130
@@ -7929,6 +9076,8 @@
 "The default jmx-invoker-adaptor-server.sar jboss-service.xml deployment "
 "descriptor"
 msgstr ""
+"Der standardmäßige jmx-invoker-adaptor-server.sar jboss-service.xml "
+"Deployment-Deskriptor"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:2137
@@ -7979,6 +9128,50 @@
 "    &lt;/mbean&gt;\n"
 "&lt;/server&gt;"
 msgstr ""
+"&lt;server&gt;\n"
+"    &lt;!-- The JRMP invoker proxy configuration for the "
+"InvokerAdaptorService --&gt;\n"
+"    &lt;mbean code=\"org.jboss.invocation.jrmp.server.JRMPProxyFactory\"\n"
+"           name=\"jboss.jmx:type=adaptor,name=Invoker,protocol=jrmp,"
+"service=proxyFactory\"&gt;\n"
+"        &lt;!-- Use the standard JRMPInvoker from conf/jboss-service.xml --"
+"&gt;\n"
+"        &lt;attribute name=\"InvokerName\"&gt;jboss:service=invoker,"
+"type=jrmp&lt;/attribute&gt;\n"
+"        &lt;!-- The target MBean is the InvokerAdaptorService configured "
+"below --&gt;\n"
+"        &lt;attribute name=\"TargetName\"&gt;jboss.jmx:type=adaptor,"
+"name=Invoker&lt;/attribute&gt;\n"
+"        &lt;!-- Where to bind the RMIAdaptor proxy --&gt;\n"
+"        &lt;attribute name=\"JndiName\"&gt;jmx/invoker/RMIAdaptor&lt;/"
+"attribute&gt;\n"
+"        &lt;!-- The RMI compabitle MBeanServer interface --&gt;\n"
+"        &lt;attribute name=\"ExportedInterface\"&gt;org.jboss.jmx.adaptor."
+"rmi.RMIAdaptor&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"ClientInterceptors\"&gt;\n"
+"            &lt;iterceptors&gt;\n"
+"                &lt;interceptor&gt;org.jboss.proxy."
+"ClientMethodInterceptor&lt;/interceptor&gt;\n"
+"                &lt;interceptor&gt;\n"
+"                    org.jboss.jmx.connector.invoker.client."
+"InvokerAdaptorClientInterceptor \n"
+"                &lt;/interceptor&gt;\n"
+"                &lt;interceptor&gt;org.jboss.invocation."
+"InvokerInterceptor&lt;/interceptor&gt;\n"
+"            &lt;/iterceptors&gt;\n"
+"        &lt;/attribute&gt;\n"
+"        &lt;depends&gt;jboss:service=invoker,type=jrmp&lt;/depends&gt;\n"
+"    &lt;/mbean&gt; \n"
+"    &lt;!-- This is the service that handles the RMIAdaptor invocations by "
+"routing\n"
+"         them to the MBeanServer the service is deployed under. --&gt;\n"
+"    &lt;mbean code=\"org.jboss.jmx.connector.invoker.InvokerAdaptorService"
+"\" \n"
+"           name=\"jboss.jmx:type=adaptor,name=Invoker\"&gt;\n"
+"        &lt;attribute name=\"ExportedInterface\"&gt;org.jboss.jmx.adaptor."
+"rmi.RMIAdaptor&lt;/attribute&gt;\n"
+"    &lt;/mbean&gt;\n"
+"&lt;/server&gt;"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2138
@@ -8027,7 +9220,7 @@
 #: J2EE_Reference_Introduction.xml:2149
 #, no-c-format
 msgid "The JRMPInvoker - RMI/JRMP Transport"
-msgstr ""
+msgstr "Der JRMPInvoker - RMI/JRMP Transport"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2150
@@ -8047,6 +9240,8 @@
 "The JRMPInvoker MBean supports a number of attribute to configure the RMI/"
 "JRMP transport layer. Its configurable attributes are:"
 msgstr ""
+"Das JRMPInvoker MBean unterstützt eine Reihe von Attributen zur Konfiguration der "
+"RMI/JRMP-Transportebene. Seine konfigurierbaren Attribute sind:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2158
@@ -8120,7 +9315,7 @@
 #: J2EE_Reference_Introduction.xml:2186
 #, no-c-format
 msgid "The PooledInvoker - RMI/Socket Transport"
-msgstr ""
+msgstr "Der PooledInvoker - RMI/Socket Transport"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2187
@@ -8145,37 +9340,35 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2195
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">NumAcceptThreads</emphasis>: The number of threads "
 "that exist for accepting client connections. The default is 1."
 msgstr ""
-"<emphasis role=\"bold\">LockAcquisitionTimeout</emphasis> bestimmt die "
-"maximale Anzahl von Millisekunden, die auf eine \"Lock Acquisition\" "
-"gewartet wird. Der voreinstellte Wert lautet hier 15000."
+"<emphasis role=\"bold\">NumAcceptThreads</emphasis>: Die Anzahl vorhandener "
+"Threads zur Annahme von Client-Verbindungen. Der Standardwert lautet 1."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2200
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">MaxPoolSize</emphasis>: The number of server threads "
 "for processing client. The default is 300."
 msgstr ""
-"<emphasis role=\"bold\">cookies</emphasis>: Hierbei handelt es sich um ein "
-"Flag das anzeigt, ob Sessions unter Verwendung von Cookies verfolgt werden. "
-"Die Standardeinstellung lautet \"true\"."
+"<emphasis role=\"bold\">MaxPoolSize</emphasis>: Die Anzahl von Server-Threads "
+"für den Bearbeitungs-Client. Der Standardwert lautet 300."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2205
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">SocketTimeout</emphasis>: The socket timeout value "
 "passed to the <literal>Socket.setSoTimeout()</literal> method. The default "
 "is 60000."
 msgstr ""
-"<emphasis role=\"bold\">scheme</emphasis>: Legt den Namen des Protokolls "
-"fest wie mittels der <literal>ServletRequest.getScheme</literal> Methode "
-"zugegriffen wird. Die Standardeinstellung lautet <literal>http</literal>."
+"<emphasis role=\"bold\">SocketTimeout</emphasis>: Legt den Timeout-Wert des "
+"Socket fest, der an die <literal>Socket.setSoTimeout()</literal>-Methode gegeben wird. "
+"Der Standardwert lautet 60000."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2210
@@ -8185,6 +9378,9 @@
 "server socket. A value of 0 indicates that an anonymous port should be "
 "chosen."
 msgstr ""
+"<emphasis role=\"bold\">ServerBindPort</emphasis>: Der für das "
+"Server-Socket verwendete Port. Ein Wert von 0 gibt an, dass ein "
+"anonymer Port gewählt werden sollte."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2215
@@ -8210,13 +9406,13 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2225
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">ClientMaxPoolSize</emphasis>: The client side "
 "maximum number of threads. The default is 300."
 msgstr ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> legt die maximale "
-"Anzahl von Rückmeldungen fest, auf die gewartet wird."
+"<emphasis role=\"bold\">ClientMaxPoolSize</emphasis>: Die maximale Anzahl "
+"von Threads auf Client-Seite. Der Standardwert beträgt 300."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2230
@@ -8252,19 +9448,19 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2245
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">TransactionManagerService</emphasis>: The JMX "
 "ObjectName of the JTA transaction manager service."
 msgstr ""
-"<emphasis role=\"bold\">className</emphasis>: Der Name der Klasse, die die "
-"Implementierung des Dienstes liefert."
+"<emphasis role=\"bold\">TransactionManagerService</emphasis>: Der JMX "
+"ObjectName des JTA Transaction Manager Dienstes."
 
 #. Tag: title
 #: J2EE_Reference_Introduction.xml:2253
 #, no-c-format
 msgid "The IIOPInvoker - RMI/IIOP Transport"
-msgstr ""
+msgstr "Der IIOPInvoker - RMI/IIOP Transport"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2254
@@ -8311,9 +9507,9 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2267
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The JRMPProxyFactory supports the following attributes:"
-msgstr "Das <literal>run</literal>-Skript unterstützt die folgenden Optionen:"
+msgstr "Die JRMPProxyFactory unterstützt die folgenden Attribute:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2272
@@ -8335,25 +9531,25 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2282
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">JndiName</emphasis>: The JNDI name under which the "
 "proxy will be bound."
 msgstr ""
-"<emphasis role=\"bold\">name</emphasis>: Ein eindeutiger Name, unter dem der "
-"Dienst bekannt ist."
+"<emphasis role=\"bold\">JndiName</emphasis>: Der JNDI-Name unter dem der "
+"Proxy gebunden wird."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2287
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">ExportedInterface</emphasis>: The fully qualified "
 "class name of the interface that the proxy implements. This is the typed "
 "view of the proxy that the client uses for invocations."
 msgstr ""
-"<emphasis role=\"bold\">className</emphasis>: Dies ist der "
-"vollständigeKlassenname der <literal>org.apache.catalina.Valve</literal> "
-"Interface-Implementierung."
+"<emphasis role=\"bold\">ExportedInterface</emphasis>: Dies ist der "
+"vollständige Klassenname des vom Proxy implementierten Interface. "
+"Dies ist die typisierte Ansicht des Proxy, den der Client für Aufrufe verwendet."
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2292
@@ -8371,7 +9567,7 @@
 #: J2EE_Reference_Introduction.xml:2300
 #, no-c-format
 msgid "The HttpInvoker - RMI/HTTP Transport"
-msgstr ""
+msgstr "Der HttpInvoker - RMI/HTTP Transport"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2301
@@ -8397,9 +9593,9 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2304
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The HttpInvoker supports the following attributes:"
-msgstr "Das <literal>run</literal>-Skript unterstützt die folgenden Optionen:"
+msgstr "The HttpInvoker unterstützt die folgenden Attribute:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2309 J2EE_Reference_Introduction.xml:2377
@@ -8513,7 +9709,7 @@
 #: J2EE_Reference_Introduction.xml:2358
 #, no-c-format
 msgid "HttpProxyFactory - Building Dynamic HTTP Proxies"
-msgstr ""
+msgstr "HttpProxyFactory - Building Dynamic HTTP Proxies"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2359
@@ -8527,9 +9723,9 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2362
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The HttpProxyFactory supports the following attributes:"
-msgstr "Das <literal>run</literal>-Skript unterstützt die folgenden Optionen:"
+msgstr "Die HttpProxyFactory unterstützt die folgenden Attribute:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2367
@@ -8567,13 +9763,14 @@
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2397
-#, fuzzy, no-c-format
+#, no-c-format
 msgid ""
 "<emphasis role=\"bold\">ExportedInterface</emphasis>: The name of the RMI "
 "compatible interface that the <literal>HttpInvokerProxy</literal> implements."
 msgstr ""
-"<emphasis role=\"bold\">className</emphasis>: Der Name der Klasse, die die "
-"Implementierung des Dienstes liefert."
+"<emphasis role=\"bold\">ExportedInterface</emphasis>: Der Name des "
+"RMI-kompatiblen Interface, das der <literal>HttpInvokerProxy</literal> "
+"implementiert."
 
 #. Tag: title
 #: J2EE_Reference_Introduction.xml:2405
@@ -8597,7 +9794,7 @@
 #: J2EE_Reference_Introduction.xml:2409
 #, no-c-format
 msgid "The three steps to making your object invocable via HTTP are:"
-msgstr ""
+msgstr "Die drei Schritte, um Ihr Objekt via HTTP aufrufbar zu machen, sind:"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2414
@@ -8627,6 +9824,19 @@
 "    marshalledInvocationMapping.put(hash, method);\n"
 "}"
 msgstr ""
+"import java.lang.reflect.Method;\n"
+"import java.util.HashMap;\n"
+"import org.jboss.invocation.MarshalledInvocation;\n"
+"\n"
+"HashMap marshalledInvocationMapping = new HashMap();\n"
+"\n"
+"// Build the Naming interface method map\n"
+"Method[] methods = SRPRemoteServerInterface.class.getMethods();\n"
+"for(int m = 0; m &lt; methods.length; m ++) {\n"
+"    Method method = methods[m];\n"
+"    Long hash = new Long(MarshalledInvocation.calculateHash(method));\n"
+"    marshalledInvocationMapping.put(hash, method);\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2420
@@ -8641,6 +9851,14 @@
 "<literal>MarshalledInvocation</literal> to the <literal>Method</literal> for "
 "the interface."
 msgstr ""
+"Erstellen Sie ein MBean oder erweitern Sie ein bestehendes, um einen Aufrufvorgang "
+"zu unterstützen. Die Signatur ist <literal>Object invoke(Invocation invocation) throws "
+"Exception</literal> und die ausgeführten Schritte werden hier für das "
+"<literal>SRPRemoteServerInterface</literal>-Interface gezeigt. Beachten Sie, dass"
+"dies das <literal>marshalledInvocationMapping</literal> aus Schritt 1 zum mappen "
+"der <literal>Long</literal>-Methoden-Hashes in die "
+"<literal>MarshalledInvocation</literal> zur <literal>Method</literal> für "
+"das Interface verwendet."
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:2424
@@ -8678,6 +9896,37 @@
 "    return value;\n"
 "}"
 msgstr ""
+"import org.jboss.invocation.Invocation;\n"
+"import org.jboss.invocation.MarshalledInvocation;\n"
+"\n"
+"public Object invoke(Invocation invocation)\n"
+"    throws Exception\n"
+"{\n"
+"    SRPRemoteServerInterface theServer = &lt;"
+"the_actual_rmi_server_object&gt;;\n"
+"    // Set the method hash to Method mapping\n"
+"    if (invocation instanceof MarshalledInvocation) {\n"
+"        MarshalledInvocation mi = (MarshalledInvocation) invocation;\n"
+"        mi.setMethodMap(marshalledInvocationMapping);\n"
+"    }\n"
+"\n"
+"    // Invoke the Naming method via reflection\n"
+"    Method method = invocation.getMethod();\n"
+"    Object[] args = invocation.getArguments();\n"
+"    Object value = null;\n"
+"    try {\n"
+"        value = method.invoke(theServer, args);\n"
+"    } catch(InvocationTargetException e) {\n"
+"        Throwable t = e.getTargetException();    \n"
+"        if (t instanceof Exception) {\n"
+"            throw (Exception) e;\n"
+"        } else {\n"
+"            throw new UndeclaredThrowableException(t, method.toString());\n"
+"        }\n"
+"    }\n"
+"\n"
+"    return value;\n"
+"}"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2428
@@ -8686,6 +9935,8 @@
 "Create a configuration of the <literal>HttpProxyFactory</literal> MBean to "
 "make the RMI/HTTP proxy available through JNDI. For example:"
 msgstr ""
+"Erstellen einer Konfiguration des <literal>HttpProxyFactory</literal>-MBeans, um "
+"den RMI/HTTP-Proxy durch JNDI verfügbar zu machen. Zum Beispiel:"
 
 #. Tag: programlisting
 #: J2EE_Reference_Introduction.xml:2431
@@ -8705,6 +9956,19 @@
 "attribute&gt;\n"
 "&lt;/mbean&gt;"
 msgstr ""
+"&lt;!-- Expose the SRP service interface via HTTP --&gt;\n"
+"&lt;mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\"\n"
+"       name=\"jboss.security.tests:service=SRP/HTTP\"&gt;\n"
+"    &lt;attribute name=\"InvokerURL\"&gt;http://localhost:8080/invoker/"
+"JMXInvokerServlet&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"InvokerName\"&gt;jboss.security.tests:"
+"service=SRPService&lt;/attribute&gt;\n"
+"    &lt;attribute name=\"ExportedInterface\"&gt;\n"
+"        org.jboss.security.srp.SRPRemoteServerInterface\n"
+"    &lt;/attribute&gt;\n"
+"    &lt;attribute name=\"JndiName\"&gt;srp-test-http/SRPServerInterface&lt;/"
+"attribute&gt;\n"
+"&lt;/mbean&gt;"
 
 #. Tag: para
 #: J2EE_Reference_Introduction.xml:2434
@@ -8715,4 +9979,8 @@
 "test-http/SRPServerInterface</literal>) and use the obtain proxy in exactly "
 "the same manner as the RMI/JRMP version."
 msgstr ""
+"Jeder Client kann jetzt mittels JNDI das RMI-Interface auffinden, indem der in der "
+"<literal>HttpProxyFactory</literal> festgelegte Name verwendet wird (z.B. <literal>srp-"
+"test-http/SRPServerInterface</literal>) und den erhaltenen Proxy auf genau "
+"dieselbe Weise wie die RMI/JRMP-Version verwendet."
 




More information about the jboss-cvs-commits mailing list