[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