Example #1
0
        public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext)
        {
            IObjectDefinitionFactory factory = parserContext.ReaderContext.ObjectDefinitionFactory;

            AssertUtils.ArgumentNotNull(factory, "factory");

            string id        = element.GetAttribute(ObjectNames.MongoConventionProfileId);
            string defaultId = StringUtils.HasText(id) ? id : ObjectNames.MongoConventionProfileDefaultId;

            ObjectDefinitionBuilder builder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(ConventionProfileFactory));

            SetConvention(element, builder, ObjectNames.ConventionProfileDefaultValue, ConventionProfileFactory.DefaultValueConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileElementName, ConventionProfileFactory.ElementNameConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileExtraElementsMember, ConventionProfileFactory.ExtraElementsMemberConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileIdGenerator, ConventionProfileFactory.IdGeneratorConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileIdMember, ConventionProfileFactory.IdMemberConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreExtraElements, ConventionProfileFactory.IgnoreExtraElementsConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreIfDefault, ConventionProfileFactory.IgnoreIfDefaultConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreIfNull, ConventionProfileFactory.IgnoreIfNullConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileMemberFinder, ConventionProfileFactory.MemberFinderConventionProperty);
            SetConvention(element, builder, ObjectNames.ConventionProfileSerializationOptions, ConventionProfileFactory.SerializationOptionsConventionProperty);

            parserContext.Registry.RegisterObjectDefinition(defaultId, builder.ObjectDefinition);

            return(null);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="XmlReaderContext"/> class.
 /// </summary>
 /// <param name="resource">The resource.</param>
 /// <param name="reader">The reader.</param>
 /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param>
 internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory) 
     : base(resource)
 {
     this.reader = reader;
     if (reader is XmlObjectDefinitionReader)
     {
         this.namespaceParserResolver = ((XmlObjectDefinitionReader) reader).NamespaceParserResolver;
     }
     this.objectDefinitionFactory = objectDefinitionFactory;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XmlReaderContext"/> class.
 /// </summary>
 /// <param name="resource">The resource.</param>
 /// <param name="reader">The reader.</param>
 /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param>
 internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory)
     : base(resource)
 {
     this.reader = reader;
     if (reader is XmlObjectDefinitionReader)
     {
         this.namespaceParserResolver = ((XmlObjectDefinitionReader)reader).NamespaceParserResolver;
     }
     this.objectDefinitionFactory = objectDefinitionFactory;
 }
Example #4
0
        /// <summary>
        /// Parse the specified XmlElement and register the resulting
        ///             ObjectDefinitions with the <see cref="P:Spring.Objects.Factory.Xml.ParserContext.Registry"/> IObjectDefinitionRegistry
        ///             embedded in the supplied <see cref="T:Spring.Objects.Factory.Xml.ParserContext"/>
        /// </summary>
        /// <remarks>
        /// <p>This method is never invoked if the parser is namespace aware
        ///             and was called to process the root node.
        ///             </p>
        /// </remarks>
        /// <param name="element">The element to be parsed.
        ///             </param><param name="parserContext">TThe object encapsulating the current state of the parsing process.
        ///             Provides access to a IObjectDefinitionRegistry
        ///             </param>
        /// <returns>
        /// The primary object definition.
        /// </returns>
        public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext)
        {
            IObjectDefinitionFactory factory = parserContext.ReaderContext.ObjectDefinitionFactory;

            AssertUtils.ArgumentNotNull(factory, "factory");

            RegisterTypeConverters();

            string id        = element.GetAttribute(ObjectNames.MongoId);
            string defaultId = StringUtils.HasText(id) ? id : ObjectNames.MongoDatabaseFactoryDefaultId;
            string url       = element.GetAttribute(ObjectNames.MongoDatabaseFactoryUrl);
            string mongoRef  = element.GetAttribute(ObjectNames.MongoDatabaseFactoryMongoRef);
            string dbname    = element.GetAttribute(ObjectNames.MongoDatabaseFactoryDbname);

            ObjectDefinitionBuilder dbFactoryBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(SimpleMongoDatabaseFactory));

            IObjectDefinition userCredentials = GetUserCredentialsObjectDefinition(element);

            ParseAttribute(element, dbFactoryBuilder, SimpleMongoDatabaseFactory.WriteConcernProperty, ObjectNames.MongoDatabaseFactoryWriteConcern);

            if (StringUtils.HasText(url))
            {
                if (StringUtils.HasText(mongoRef) || StringUtils.HasText(dbname) || userCredentials != null)
                {
                    parserContext.ReaderContext.ReportException(element, ObjectNames.DbFactory, "Configure either url or details individually!");
                }

                dbFactoryBuilder.AddConstructorArg(GetMongoUrl(url));
                parserContext.Registry.RegisterObjectDefinition(defaultId, dbFactoryBuilder.ObjectDefinition);

                return(null);
            }

            if (StringUtils.HasText(mongoRef))
            {
                dbFactoryBuilder.AddConstructorArgReference(mongoRef);
            }
            else
            {
                dbFactoryBuilder.AddConstructorArg(RegisterMongoObjectDefinition(element));
            }

            dbname = StringUtils.HasText(dbname) ? dbname : ObjectNames.MongoDatabaseFactoryDefaultDatabaseName;
            dbFactoryBuilder.AddConstructorArg(dbname);

            if (userCredentials != null)
            {
                dbFactoryBuilder.AddConstructorArg(userCredentials);
            }

            parserContext.Registry.RegisterObjectDefinition(defaultId, dbFactoryBuilder.ObjectDefinition);

            return(null);
        }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a child object definition..
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="parentObjectName">Name of the parent object.</param>
        /// <returns></returns>
        public static ObjectDefinitionBuilder ChildObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                    string parentObjectName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();

            builder.objectDefinitionFactory = objectDefinitionFactory;

            builder.objectDefinition =
                objectDefinitionFactory.CreateObjectDefinition(null, parentObjectName, AppDomain.CurrentDomain);

            return(builder);
        }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="factoryMethodName">Name of the factory method.</param>
        /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
        public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                   Type objectType, string factoryMethodName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();

            builder.objectDefinitionFactory = objectDefinitionFactory;

            builder.objectDefinition =
                objectDefinitionFactory.CreateObjectDefinition(objectType.FullName, null, AppDomain.CurrentDomain);

            builder.objectDefinition.ObjectType        = objectType;
            builder.objectDefinition.FactoryMethodName = factoryMethodName;
            return(builder);
        }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="objectTypeName">Name of the object type.</param>
        /// <param name="factoryMethodName">Name of the factory method.</param>
        /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
        public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                   string objectTypeName,
                                                                   string factoryMethodName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();

            builder.objectDefinitionFactory = objectDefinitionFactory;

            // Pass in null for parent name and also AppDomain to force object definition to be register by name and not type.
            builder.objectDefinition =
                objectDefinitionFactory.CreateObjectDefinition(objectTypeName, null, null);

            builder.objectDefinition.FactoryMethodName = factoryMethodName;

            return(builder);
        }
        /// <summary>
        /// Parse the specified XmlElement and register the resulting
        ///             ObjectDefinitions with the <see cref="P:Spring.Objects.Factory.Xml.ParserContext.Registry"/> IObjectDefinitionRegistry
        ///             embedded in the supplied <see cref="T:Spring.Objects.Factory.Xml.ParserContext"/>
        /// </summary>
        /// <remarks>
        /// <p>This method is never invoked if the parser is namespace aware
        ///             and was called to process the root node.
        ///             </p>
        /// </remarks>
        /// <param name="element">The element to be parsed.
        ///             </param><param name="parserContext">TThe object encapsulating the current state of the parsing process.
        ///             Provides access to a IObjectDefinitionRegistry
        ///             </param>
        /// <returns>
        /// The primary object definition.
        /// </returns>
        public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext)
        {
            IObjectDefinitionFactory  factory  = parserContext.ReaderContext.ObjectDefinitionFactory;
            IObjectDefinitionRegistry registry = parserContext.ReaderContext.Registry;

            AssertUtils.ArgumentNotNull(factory, "factory");

            RegisterTypeConverters();

            string id          = element.GetAttribute(ObjectNames.MongoId);
            string defaultedId = StringUtils.HasText(id) ? id : ObjectNames.MongoDefaultId;

            ObjectDefinitionBuilder mongoDefBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(MongoFactoryObject));

            ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.UrlProperty, ObjectNames.MongoUrl);
            ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.ReplicaSetSeedsProperty, ObjectNames.MongoReplicaSet);
            ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.WriteConcernProperty, ObjectNames.MongoWriteConcern);

            ParseMongoClientSettings(element, mongoDefBuilder);

            registry.RegisterObjectDefinition(defaultedId, mongoDefBuilder.ObjectDefinition);

            return(null);
        }
 public SpringContainerConfigurator(IApplicationContext applicationContext)
 {
    _applicationContext = applicationContext;
    _factory = new DefaultObjectDefinitionFactory();
 }
 /// <summary>
 /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
 /// </summary>
 /// <param name="objectDefinitionFactory">The object definition factory.</param>
 /// <param name="objectTypeName">The type name of the object.</param>
 /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
 public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                            string objectTypeName)
 {
     return RootObjectDefinition(objectDefinitionFactory, objectTypeName, null);
 }
Example #11
0
 public ObjectDefinitionService(IObjectDefinitionFactory objectDefinitionFactory, IConfigurableListableObjectFactory listableObjectFactory)
 {
     _objectDefinitionFactory = objectDefinitionFactory;
     _listableObjectFactory   = listableObjectFactory;
 }
 /// <summary>
 /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
 /// </summary>
 /// <param name="objectDefinitionFactory">The object definition factory.</param>
 /// <param name="objectType">Type of the object.</param>
 /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
 public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                            Type objectType)
 {
     return(RootObjectDefinition(objectDefinitionFactory, objectType, null));
 }
 public ObjectDefinitionService(IObjectDefinitionFactory objectDefinitionFactory, IConfigurableListableObjectFactory listableObjectFactory)
 {
     _objectDefinitionFactory = objectDefinitionFactory;
     _listableObjectFactory = listableObjectFactory;
 }
 public void CreateObjectDefinitionBuilder()
 {
     odf = new DefaultObjectDefinitionFactory();
 }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a child object definition..
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="parentObjectName">Name of the parent object.</param>
        /// <returns></returns>
        public static ObjectDefinitionBuilder ChildObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                    string parentObjectName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();

            builder.objectDefinitionFactory = objectDefinitionFactory;

            builder.objectDefinition =
              objectDefinitionFactory.CreateObjectDefinition(null, parentObjectName, AppDomain.CurrentDomain);

            return builder;
        }
Example #16
0
 public Binder(IObjectDefinitionFactory objectDefinitionFactory)
 {
     this.objectDefinitionFactory = objectDefinitionFactory;
 }
 /// <summary>
 /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
 /// </summary>
 /// <param name="objectDefinitionFactory">The object definition factory.</param>
 /// <param name="objectType">Type of the object.</param>
 /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
 public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                            Type objectType) 
 {
     return RootObjectDefinition(objectDefinitionFactory, objectType, null);
 }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="factoryMethodName">Name of the factory method.</param>
        /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
        public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                   Type objectType, string factoryMethodName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();
            
            builder.objectDefinitionFactory = objectDefinitionFactory;

            builder.objectDefinition =
                objectDefinitionFactory.CreateObjectDefinition(objectType.FullName, null, AppDomain.CurrentDomain);

            builder.objectDefinition.ObjectType = objectType;
            builder.objectDefinition.FactoryMethodName = factoryMethodName;
            return builder;
        }
        /// <summary>
        /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition.
        /// </summary>
        /// <param name="objectDefinitionFactory">The object definition factory.</param>
        /// <param name="objectTypeName">Name of the object type.</param>
        /// <param name="factoryMethodName">Name of the factory method.</param>
        /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns>
        public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory,
                                                                   string objectTypeName,
                                                                   string factoryMethodName)
        {
            ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder();

            builder.objectDefinitionFactory = objectDefinitionFactory;

            // Pass in null for parent name and also AppDomain to force object definition to be register by name and not type.
            builder.objectDefinition =
                           objectDefinitionFactory.CreateObjectDefinition(objectTypeName, null, null);

            builder.objectDefinition.FactoryMethodName = factoryMethodName;

            return builder;

        }        
 /// <summary>
 /// Creates a new instance of the
 /// <see cref="Spring.Objects.Factory.Xml.XmlObjectDefinitionReader"/> class.
 /// </summary>
 /// <param name="registry">
 /// The <see cref="Spring.Objects.Factory.Support.IObjectDefinitionRegistry"/>
 /// instance that this reader works on.
 /// </param>
 /// <param name="resolver">
 /// The <see cref="System.Xml.XmlResolver"/>to be used for parsing.
 /// </param>
 /// <param name="objectDefinitionFactory">the <see cref="IObjectDefinitionFactory"/> to use for creating new <see cref="IObjectDefinition"/>s</param>
 protected XmlObjectDefinitionReader(IObjectDefinitionRegistry registry, XmlResolver resolver, IObjectDefinitionFactory objectDefinitionFactory)
     : base(registry)
 {
     Resolver = resolver;
     this.objectDefinitionFactory = objectDefinitionFactory;
 }
 public void CreateObjectDefinitionBuilder()
 {
     odf = new DefaultObjectDefinitionFactory();
 }
Example #22
0
 public FluentObjectDefinitionConfigurationRegistry(IObjectDefinitionFactory objectDefinitionFactory)
 {
     _objectDefinitionFactory = objectDefinitionFactory;
 }
 /// <summary>
 /// Creates a new instance of the
 /// <see cref="Spring.Objects.Factory.Xml.XmlObjectDefinitionReader"/> class.
 /// </summary>
 /// <param name="registry">
 /// The <see cref="Spring.Objects.Factory.Support.IObjectDefinitionRegistry"/>
 /// instance that this reader works on.
 /// </param>
 /// <param name="resolver">
 /// The <see cref="System.Xml.XmlResolver"/>to be used for parsing.
 /// </param>
 /// <param name="objectDefinitionFactory">the <see cref="IObjectDefinitionFactory"/> to use for creating new <see cref="IObjectDefinition"/>s</param>
 protected XmlObjectDefinitionReader(IObjectDefinitionRegistry registry, XmlResolver resolver, IObjectDefinitionFactory objectDefinitionFactory)
     : base(registry)
 {
     Resolver = resolver;
     this.objectDefinitionFactory = objectDefinitionFactory;
 }