Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
BUILDING
CHANGES
LICENSE
NOTICE
README
RELEASE_NOTES
archetypes
distribution    - Maven archetypes for creating Tuscany project templates
distribution  - the code that defines and build Tuscany distributions
features               - Maven projects that collect together Tuscany features 
itest modules 
maven         
  archetypes           - Maven archetypes for creating Tuscany project integration tests templates
  maven-tuscany-plugin - ???
modules                - the source code for the runtime and the SCA extensions
pom.xmlsamples         
samples       - project samples
shadestesting
  itest      - TBD          - project integration tests
  compliance-tests     - OASIS compliance tests
pom.xml  

There is some related source code that's worth mentioning up front. Firstly the project Maven build relies on a set of Maven plugins that have been written specifically for Tuscany. They can also be found in the Tuscany subversion repository (http://svn.apache.org/repos/asf/tuscany/maven-plugins/trunk/) and are as follows:

...

The Tuscany extensibility framework exposes quite a few extension points, for example,(o.a.t.s = org.apache.tuscany)

Code Block
oorg.apache.atuscany.tsca.sassembly.corebuilder.FactoryExtensionPointBuilderExtensionPoint
  org.apache.tuscany.sca.assembly.builder.BindingBuilder
                                - Holds factories that create in-memory models
o.a.t.s.core.UtilityExtensionPoint                                  - A bucket for extensions that don't fit anywhere else
o.a.t.s.core.ModuleActivatorExtensionPoint                          - A Tuscany extension module can defined an activator
o.a.t.s.core.invocation.ProxyFactoryExtensionPoint                  - ???
o.a.t.s.provider.ProviderFactoryExtensionPoint                      - Created runtime providers
o.a.t.s.contribution.processor.ValidationSchemaExtensionPoint       - Holds schema for XML model validation
o.a.t.s.contribution.processor.StAXAttributeProcessorExtensionPoint - ???
o.a.t.s.contribution.processor.StAXArtifactProcessorExtensionPoint  - Holds processors are translate between XML and Java
o.a.t.s.contribution.processor.URLArtifactProcessorExtensionPoint   - Holds processors that read contribution artifacts
o.a.t.s.contribution.resolver.ModelResolverExtensionPoint           - Holds resolvers that locates model items in contributions
o.a.t.s.assembly.builder.BuilderExtensionPoint                      - ??? Do we still need this?
o.a.t.s.definitions.xml.DefinitionsExtensionPoint                   - Identifies definitions file in extension modules
o.a.t.s.contribution.scanner.ContributionScannerExtensionPoint      - Holds scanners that process different contributions formats
o.a.t.s.databinding.DataBindingExtensionPoint                       - Holds databindings
o.a.t.s.databinding.jaxb.XMLAdapterExtensionPoint                   - ???
o.a.t.s.context.ContextFactoryExtensionPoint                        - ???
o.a.t.s.databinding.TransformerExtensionPoint                       - ???
o.a.t.s.runtime.RuntimeWireProcessorExtensionPoint                  - Holds processors that process endpoint and endpoint reference interceptor chains
o.a.t.s.implementation.java.introspect.JavaClassVisitor             - Holds visitors used to introspect Java classes
o.a.t.s.context.PropertyValueFactory                                - ???
org.apache.tuscany.sca.assembly.builder.CompositeBuilder
  org.apache.tuscany.sca.assembly.builder.ContractBuilder
  org.apache.tuscany.sca.assembly.builder.ImplementationBuilder

org.apache.tuscany.sca.core.FactoryExtensionPoint
  org.apache.tuscany.sca.assembly.AssemblyFactory
  org.apache.tuscany.sca.assembly.SCABindingFactory
  org.apache.tuscany.sca.binding.atom.AtomBindingFactory
  org.apache.tuscany.sca.binding.comet.CometBindingFactory
  org.apache.tuscany.sca.binding.corba.CorbaBindingFactory
  org.apache.tuscany.sca.binding.ejb.EJBBindingFactory
  org.apache.tuscany.sca.binding.http.HTTPBindingFactory
  org.apache.tuscany.sca.binding.jsonp.JSONPBindingFactory
  org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBindingFactory
  org.apache.tuscany.sca.binding.rest.operationselector.jaxrs.JAXRSOperationSelectorFactory
  org.apache.tuscany.sca.binding.rest.operationselector.rpc.RPCOperationSelectorFactory
  org.apache.tuscany.sca.binding.rest.RESTBindingFactory
  org.apache.tuscany.sca.binding.rest.wireformat.json.JSONWireFormatFactory
  org.apache.tuscany.sca.binding.rest.wireformat.xml.XMLWireFormatFactory
  org.apache.tuscany.sca.binding.rmi.RMIBindingFactory
  org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory
  org.apache.tuscany.sca.contribution.ContributionFactory
  org.apache.tuscany.sca.contribution.java.JavaImportExportFactory
  org.apache.tuscany.sca.contribution.namespace.NamespaceImportExportFactory
  org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory
  org.apache.tuscany.sca.definitions.DefinitionsFactory
  org.apache.tuscany.sca.implementation.bpel.BPELFactory
  org.apache.tuscany.sca.implementation.java.JavaImplementationFactory
    org.apache.tuscany.sca.implementation.java.introspect.JavaClassVisitor
    org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor
  org.apache.tuscany.sca.implementation.jaxrs.JAXRSImplementationFactory
  org.apache.tuscany.sca.implementation.script.ScriptImplementationFactory
  org.apache.tuscany.sca.implementation.web.WebImplementationFactory
  org.apache.tuscany.sca.implementation.widget.WidgetImplementationFactory
  org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory
  org.apache.tuscany.sca.invocation.MessageFactory
  org.apache.tuscany.sca.node.configuration.NodeConfigurationFactory
  org.apache.tuscany.sca.policy.PolicyFactory

org.apache.tuscany.sca.context.ContextFactoryExtensionPoint
  org.apache.tuscany.sca.context.ComponentContextFactory
  org.apache.tuscany.sca.context.PropertyValueFactory
  org.apache.tuscany.sca.context.RequestContextFactory

org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint
  org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor

org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint
  org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor

org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint
  org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor

org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint
  org.apache.tuscany.sca.contribution.processor.ValidationSchema

org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint
  org.apache.tuscany.sca.contribution.resolver.ModelResolver

org.apache.tuscany.sca.contribution.scanner.ContributionScannerExtensionPoint

org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint

org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint
  org.apache.tuscany.sca.core.ModuleActivator

org.apache.tuscany.sca.databinding.DataBindingExtensionPoint
  org.apache.tuscany.sca.databinding.DataBinding

org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint

org.apache.tuscany.sca.databinding.TransformerExtensionPoint
  org.apache.tuscany.sca.databinding.PullTransformer
  org.apache.tuscany.sca.databinding.PushTransformer

org.apache.tuscany.sca.definitions.xml.DefinitionsExtensionPoint
  org.apache.tuscany.sca.definitions.xml.Definitions

org.apache.tuscany.sca.host.corba.CorbaHostExtensionPoint

org.apache.tuscany.sca.host.http.ServletHostExtensionPoint
  org.apache.tuscany.sca.host.http.ServletHost

org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory

org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint
  org.apache.tuscany.sca.provider.BindingProviderFactory
  org.apache.tuscany.sca.provider.ImplementationProviderFactory
  org.apache.tuscany.sca.provider.PolicyProviderFactory
  org.apache.tuscany.sca.provider.WireFormatProviderFactory
  org.apache.tuscany.sca.provider.OperationSelectorProviderFactory

org.apache.tuscany.sca.runtime.DomainRegistryFactoryExtensionPoint
  org.apache.tuscany.sca.runtime.DomainRegistryFactory

org.apache.tuscany.sca.runtime.RuntimeWireProcessorExtensionPoint
  org.apache.tuscany.sca.runtime.RuntimeWireProcessor

org.apache.tuscany.sca.core.UtilityExtensionPoint
  org.apache.tuscany.sca.databinding.Mediator
  org.apache.tuscany.sca.databinding.SimpleTypeMapper
  org.apache.tuscany.sca.core.scope.ScopeRegistry
  org.apache.tuscany.sca.binding.sca.provider.SCABindingMapper
  org.apache.tuscany.sca.deployment.Deployer
  org.apache.tuscany.sca.interfacedef.FaultExceptionMapper
  org.apache.tuscany.sca.interfacedef.InterfaceContractMapper
  org.apache.tuscany.sca.monitor.MonitorFactory
  org.apache.tuscany.sca.runtime.CompositeActivator
  org.apache.tuscany.sca.runtime.EndpointReferenceBinder
  org.apache.tuscany.sca.runtime.EndpointSerializer
  org.apache.tuscany.sca.runtime.RuntimeProperties
  org.apache.tuscany.sca.work.WorkScheduler

org.apache.tuscany.sca.node.NodeFactory
org.apache.tuscany.sca.xsd.XSDFactory

Extension points are usually used in groups. You have to populate the right extension points when implementing say an implementation or a binding extensions. The best way to get a grip on how this works is to look at existing extensions and see what they do. As an example, if you look at how the implementation.java extension registers an extension to read the <implemenation.java/> element from a composite file and turn it into an in-memory Java model you will see the following file:

...