[jboss-cvs] JBossAS SVN: r100973 - in projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src: main/java/org/jboss/osgi/framework/metadata/internal and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Feb 15 10:52:08 EST 2010


Author: alesj
Date: 2010-02-15 10:52:06 -0500 (Mon, 15 Feb 2010)
New Revision: 100973

Added:
   projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/main/java/org/jboss/osgi/framework/metadata/internal/OSGiPojoMetaData.java
Modified:
   projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/etc/osgitck/jboss-osgi-bootstrap.xml
   projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
   projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bootstrap/jboss-osgi-bootstrap.xml
   projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bundles/service/service-beans3/META-INF/jboss-beans.xml
Log:
Simplify pojo usage -- custom metadata.

Modified: projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/etc/osgitck/jboss-osgi-bootstrap.xml
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/etc/osgitck/jboss-osgi-bootstrap.xml	2010-02-15 15:45:12 UTC (rev 100972)
+++ projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/etc/osgitck/jboss-osgi-bootstrap.xml	2010-02-15 15:52:06 UTC (rev 100973)
@@ -188,6 +188,22 @@
   <bean name="OSGiManifestParsingDeployer" class="org.jboss.osgi.framework.deployers.OSGiManifestParsingDeployer" />
   <bean name="OSGiNativeCodeMetaDataDeployer" class="org.jboss.osgi.framework.deployers.OSGiNativeCodeMetaDataDeployer" />
 
+  <bean name="OSGiSingletonSchemaResolverFactory">
+      <constructor factoryClass="org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory" factoryMethod="getInstance"/>
+  </bean>
+  <bean name="Pojo2OSGiSchema" class="org.jboss.xb.binding.resolver.MutableSchemaResolver">
+      <constructor factoryMethod="getSchemaBindingResolver">
+          <factory bean="OSGiSingletonSchemaResolverFactory"/>
+      </constructor>
+      <install method="mapURIToClass">
+          <parameter>urn:jboss:pojo2osgi:1.0</parameter>
+          <parameter>org.jboss.osgi.framework.metadata.internal.OSGiPojoMetaData</parameter>
+      </install>
+      <uninstall method="removeURIToClassMapping">
+          <parameter>urn:jboss:pojo2osgi:1.0</parameter>
+      </uninstall>
+  </bean>
+
   <!--
   ********************************
   *                              *  

Added: projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/main/java/org/jboss/osgi/framework/metadata/internal/OSGiPojoMetaData.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/main/java/org/jboss/osgi/framework/metadata/internal/OSGiPojoMetaData.java	                        (rev 0)
+++ projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/main/java/org/jboss/osgi/framework/metadata/internal/OSGiPojoMetaData.java	2010-02-15 15:52:06 UTC (rev 100973)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.osgi.framework.metadata.internal;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDemandMetaData;
+import org.jboss.beans.metadata.plugins.AbstractRelatedClassMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.DemandMetaData;
+import org.jboss.beans.metadata.spi.RelatedClassMetaData;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperties;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+import javax.xml.bind.annotation.*;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Simplify pojo 2 osgi metadata.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+ at ManagementObject(properties = ManagementProperties.EXPLICIT)
+ at JBossXmlSchema(namespace="urn:jboss:pojo2osgi:1.0", elementFormDefault= XmlNsForm.QUALIFIED)
+ at XmlRootElement(name="osgi")
+ at XmlType(name="osgiType", propOrder={"exposedTypes", "aliasMetaData", "related", "annotations", "classLoader", "constructor", "properties", "create", "start", "stop", "destroy", "depends", "demands", "supplies", "installs", "uninstalls", "installCallbacks", "uninstallCallbacks"})
+public class OSGiPojoMetaData extends AbstractBeanMetaData
+{
+   private Set<String> exposedTypes;
+   private String mdrService = "MDRService";
+   private volatile boolean initialized;
+
+   public Set<String> getExposedTypes()
+   {
+      return exposedTypes;
+   }
+
+   @XmlElement(name="exposed-type")
+   public void setExposedTypes(Set<String> exposedTypes)
+   {
+      this.exposedTypes = exposedTypes;
+   }
+
+   public String getMdrService()
+   {
+      return mdrService;
+   }
+
+   @XmlAttribute(name = "MDRService")
+   public void setMdrService(String mdrService)
+   {
+      this.mdrService = mdrService;
+   }
+
+   @Override
+   public List<BeanMetaData> getBeans()
+   {
+      if (initialized == false)
+      {
+         if (exposedTypes != null && exposedTypes.isEmpty() == false)
+         {
+            Set<RelatedClassMetaData> rcmds = getRelated();
+            if (rcmds == null)
+            {
+               rcmds = new HashSet<RelatedClassMetaData>();
+               setRelated(rcmds);
+            }
+            for (String exposedType : exposedTypes)
+            {
+               AbstractRelatedClassMetaData rcmd = new AbstractRelatedClassMetaData(exposedType);
+               rcmd.setEnabled(Collections.<Object>singleton("OSGi"));
+               rcmds.add(rcmd);
+            }
+         }
+
+         Set<DemandMetaData> demands = getDemands();
+         if (demands == null)
+         {
+            demands = new HashSet<DemandMetaData>();
+            setDemands(demands);
+         }
+         AbstractDemandMetaData dmd = new AbstractDemandMetaData(mdrService);
+         dmd.setWhenRequired(ControllerState.PRE_INSTALL);
+         demands.add(dmd);
+
+         initialized = true;
+      }
+      return Collections.singletonList((BeanMetaData)this);
+   }
+}

Modified: projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java	2010-02-15 15:45:12 UTC (rev 100972)
+++ projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/java/org/jboss/test/osgi/service/ServiceMixUnitTestCase.java	2010-02-15 15:52:06 UTC (rev 100973)
@@ -21,19 +21,12 @@
  */
 package org.jboss.test.osgi.service;
 
-import java.lang.reflect.Method;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.List;
-
 import junit.framework.Test;
-
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.deployers.client.spi.Deployment;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.test.osgi.DeployersTest;
 import org.jboss.test.osgi.service.support.LazyBundle;
 import org.jboss.test.osgi.service.support.a.A;
 import org.jboss.test.osgi.service.support.a.AMBean;
@@ -45,6 +38,10 @@
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 
+import java.util.Dictionary;
+import java.util.Hashtable;
+import java.util.List;
+
 /**
  * Test MC's service mixture.
  *

Modified: projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bootstrap/jboss-osgi-bootstrap.xml
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bootstrap/jboss-osgi-bootstrap.xml	2010-02-15 15:45:12 UTC (rev 100972)
+++ projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bootstrap/jboss-osgi-bootstrap.xml	2010-02-15 15:52:06 UTC (rev 100973)
@@ -197,6 +197,22 @@
   <bean name="OSGiManifestParsingDeployer" class="org.jboss.osgi.framework.deployers.OSGiManifestParsingDeployer" />
   <bean name="OSGiNativeCodeMetaDataDeployer" class="org.jboss.osgi.framework.deployers.OSGiNativeCodeMetaDataDeployer" />
 
+  <bean name="OSGiSingletonSchemaResolverFactory">
+      <constructor factoryClass="org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory" factoryMethod="getInstance"/>
+  </bean>
+  <bean name="Pojo2OSGiSchema" class="org.jboss.xb.binding.resolver.MutableSchemaResolver">
+      <constructor factoryMethod="getSchemaBindingResolver">
+          <factory bean="OSGiSingletonSchemaResolverFactory"/>
+      </constructor>
+      <install method="mapURIToClass">
+          <parameter>urn:jboss:pojo2osgi:1.0</parameter>
+          <parameter>org.jboss.osgi.framework.metadata.internal.OSGiPojoMetaData</parameter>
+      </install>
+      <uninstall method="removeURIToClassMapping">
+          <parameter>urn:jboss:pojo2osgi:1.0</parameter>
+      </uninstall>
+  </bean>
+
   <!--
   ********************************
   *                              *  

Modified: projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bundles/service/service-beans3/META-INF/jboss-beans.xml
===================================================================
--- projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bundles/service/service-beans3/META-INF/jboss-beans.xml	2010-02-15 15:45:12 UTC (rev 100972)
+++ projects/jboss-osgi/projects/runtime/framework/branches/alesj_service-mix/src/test/resources/bundles/service/service-beans3/META-INF/jboss-beans.xml	2010-02-15 15:52:06 UTC (rev 100973)
@@ -1,7 +1,7 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
-  <bean name="A" class="org.jboss.test.osgi.service.support.a.A">
-      <related-class name="org.jboss.test.osgi.service.support.a.AMBean">OSGi</related-class>
-  </bean>
+  <osgi xmlns="urn:jboss:pojo2osgi:1.0" name="A" class="org.jboss.test.osgi.service.support.a.A">
+      <exposed-type>org.jboss.test.osgi.service.support.a.AMBean</exposed-type>
+  </osgi>
 
 </deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list