List of usage examples for org.springframework.beans.factory.config BeanDefinition getConstructorArgumentValues
ConstructorArgumentValues getConstructorArgumentValues();
From source file:org.bigtester.ate.xmlschema.HomepageBeanDefinitionParser.java
/** * {@inheritDoc}/*from w w w. j a va 2s . c om*/ */ @Override protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { // Here we parse the Spring elements such as < property> if (parserContext == null || element == null) throw GlobalUtils.createNotInitializedException("element and parserContext"); // Here we parse the Spring elements such as < property> BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); bDef.setBeanClassName(Homepage.class.getName()); String homeUrl = element.getAttribute(XsdElementConstants.ATTR_HOMEPAGE_HOMEURL); bDef.getConstructorArgumentValues().addGenericArgumentValue(homeUrl); String dataFile = element.getAttribute(XsdElementConstants.ATTR_BASEPAGEOBJECT_DATAFILE); if (StringUtils.hasText(dataFile)) bDef.getPropertyValues().addPropertyValue(XsdElementConstants.ATTR_BASEPAGEOBJECT_DATAFILE, dataFile); bDef.setParentName(XsdElementConstants.ELEMENT_ID_MYBASEPAGEOBJECT); String idstring = element.getAttribute("id"); parserContext.getRegistry().registerBeanDefinition(idstring, bDef); return (AbstractBeanDefinition) bDef; }
From source file:org.bigtester.ate.xmlschema.BaseElementFinderBeanDefinitionParser.java
/** * {@inheritDoc}/*ww w .java 2 s. c om*/ */ @Override protected @Nullable AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { if (parserContext == null || element == null) throw GlobalUtils.createNotInitializedException("element and parserContext"); BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); String findbyValue = element.getAttribute(XsdElementConstants.ATTR_GENERICELEMENTFIND_FINDBYVALUE); if (StringUtils.hasText(findbyValue)) bDef.getConstructorArgumentValues().addGenericArgumentValue(findbyValue); String strIndex = element.getAttribute(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS); if (StringUtils.hasText(strIndex)) { bDef.getPropertyValues().addPropertyValue( XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS, new RuntimeBeanReference(strIndex)); } bDef.setAttribute("id", element.getAttribute("id")); return (AbstractBeanDefinition) bDef; }
From source file:org.brekka.stillingar.spring.pc.ConstructorArgDefChangeListener.java
@Override protected void onChange(String newValue) { ConfigurableListableBeanFactory beanFactory = beanFactoryRef.get(); if (beanFactory == null) { return;/* w w w. j a v a 2 s .c o m*/ } BeanDefinition beanDef = beanFactory.getMergedBeanDefinition(beanName); ConstructorArgumentValues mutableConstructorValues = beanDef.getConstructorArgumentValues(); ValueHolder valueHolder = null; List<ValueHolder> genericArgumentValues = mutableConstructorValues.getGenericArgumentValues(); if (constructorArgIndex != null) { valueHolder = mutableConstructorValues.getIndexedArgumentValues().get(constructorArgIndex); if (valueHolder == null) { throw new IllegalStateException( String.format("Failed to find constructor arg at index %d", constructorArgIndex)); } } else if (genericArgumentValues.size() == 1) { valueHolder = genericArgumentValues.get(0); } else { for (ValueHolder vh : genericArgumentValues) { if (vh.getType().equals(constructorArgType)) { valueHolder = vh; } } if (valueHolder == null) { throw new IllegalStateException( String.format("Failed to find constructor arg with type '%s'", constructorArgType)); } } if (!ObjectUtils.nullSafeEquals(newValue, valueHolder.getValue())) { valueHolder.setValue(newValue); try { /* * Spring implements caching of constructor values, which can be reset by clearing the package-private * field 'resolvedConstructorOrFactoryMethod' on RootBeanDefinition. Naturally this will fail if a * security manager is present but there doesn't seem to be any other way to do it. Make sure to warn * about this in the documentation! */ Field field = beanDef.getClass().getDeclaredField("resolvedConstructorOrFactoryMethod"); field.setAccessible(true); field.set(beanDef, null); } catch (Exception e) { throw new ConfigurationException(String.format( "Unable to update value for constructor argument '%s'. " + "Failed to reset the cached constructor state for bean '%s'", (constructorArgIndex != null ? constructorArgIndex.toString() : constructorArgType), beanName), e); } } }
From source file:org.bigtester.ate.model.page.elementaction.SendKeysActionPostBeanProcessor.java
/** * {@inheritDoc}//w ww . j a va 2 s . co m */ @Override public void postProcessBeanFactory(@Nullable ConfigurableListableBeanFactory beanFactory) throws BeansException { if (beanFactory == null) throw new IllegalStateException("Spring Container initialization error"); // String[] homePageNames = // beanFactory.getBeanNamesForType(IStepInputData.class, true, false); String[] allSendKeysActions = beanFactory.getBeanNamesForType(SendKeysAction.class, true, false); for (int index = 0; index < allSendKeysActions.length; index++) { BeanDefinition sendKeyActDef = beanFactory.getBeanDefinition(allSendKeysActions[index]); String dataValue = ((RuntimeBeanReference) sendKeyActDef.getConstructorArgumentValues() .getGenericArgumentValue(RuntimeBeanReference.class).getValue()).getBeanName(); //.getAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE); if (null == dataValue) { throw new IllegalStateException("Spring Container sendKeyActionValue initialization error"); } else { try { beanFactory.getBeanDefinition(dataValue); } catch (NoSuchBeanDefinitionException NoBeanDef) { String idstr; BeanDefinitionBuilder definitionBuilder; if (StringUtils.isEmpty(dataValue)) { definitionBuilder = BeanDefinitionBuilder .genericBeanDefinition(RandomAlphaTextValueDataHolder.class); idstr = (String) sendKeyActDef.getAttribute("id") + "_SendKeysRandomAlphaTextDataValueBean_ID"; definitionBuilder.addConstructorArgValue(idstr); definitionBuilder.addConstructorArgValue(10); } else { definitionBuilder = BeanDefinitionBuilder .genericBeanDefinition(ManualAssignedValueDataHolder.class); definitionBuilder.addConstructorArgValue(EnumRunTimeDataType.TEXT); definitionBuilder.addConstructorArgValue(dataValue); idstr = (String) sendKeyActDef.getAttribute("id") + "_SendKeysDataValueBean_ID"; definitionBuilder.addConstructorArgValue(idstr); } getBdReg().registerBeanDefinition(idstr, definitionBuilder.getBeanDefinition()); sendKeyActDef.setAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE, idstr); sendKeyActDef.getConstructorArgumentValues().getGenericArgumentValue(RuntimeBeanReference.class) .setValue(new RuntimeBeanReference(idstr)); } } } }
From source file:org.bigtester.ate.xmlschema.BasePageModelBeanDefinitionParser.java
/** * {@inheritDoc}//from w w w . j av a2s . co m */ @Override protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { // Here we parse the Spring elements such as < property> if (parserContext == null || element == null) throw GlobalUtils.createNotInitializedException("element and parserContext"); BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); bDef.setBeanClassName(PageModelBase.class.getName()); String myWd = element.getAttribute(XsdElementConstants.ATTR_BASEPAGEMODEL_MYWD); if (StringUtils.hasText(myWd)) { bDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(myWd)); } // String text = element.getAttribute("text"); // bd.getPropertyValues().addPropertyValue("text", text); parserContext.getRegistry().registerBeanDefinition(element.getAttribute("id"), bDef); return (AbstractBeanDefinition) bDef; }
From source file:com.apporiented.spring.override.BeanOverrideProcessor.java
private void overwriteBeanDefinition(BeanDefinition target, BeanDefinition source) { log.debug("Replacing bean [" + ref + "] with a [" + source.getBeanClassName() + "]"); target.setBeanClassName(source.getBeanClassName()); ConstructorArgumentValues cas = target.getConstructorArgumentValues(); cas.clear();//from ww w . j av a2s. c o m cas.addArgumentValues(source.getConstructorArgumentValues()); MutablePropertyValues pvs = target.getPropertyValues(); if (!merge) { pvs.getPropertyValueList().clear(); } pvs.addPropertyValues(source.getPropertyValues()); }
From source file:org.bigtester.ate.xmlschema.BaseERValueBeanDefinitionParser.java
/** * {@inheritDoc}//from ww w. j av a 2 s . c om */ @Override protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { // Here we parse the Spring elements such as < property> if (parserContext == null || element == null) throw new IllegalStateException("Incorrect xsd xml parsing."); BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); bDef.setBeanClassName(BaseERValue.class.getName()); String stepERDao = element.getAttribute(XsdElementConstants.ELEMENT_BASEERVALUE_STEPERDAO); if (StringUtils.hasText(stepERDao)) { bDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(stepERDao)); } // String text = element.getAttribute("text"); // bd.getPropertyValues().addPropertyValue("text", text); parserContext.getRegistry().registerBeanDefinition(element.getAttribute("id"), bDef); return (AbstractBeanDefinition) bDef; }
From source file:biz.c24.io.spring.config.C24MarshallerBeanDefinitionParserIntegrationTests.java
@Test public void plainMessageConverterElementSetsUpAConverterAndDefaultMarshaller() { BeanDefinition definition = getDefinitionFromFile("converter.xml", "xml"); assertThat(definition, is(notNullValue())); assertThat(definition.getBeanClassName(), is(C24HttpMessageConverter.class.getName())); ValueHolder constructorArgument = definition.getConstructorArgumentValues().getArgumentValue(0, null); assertThat(constructorArgument, is(notNullValue())); Object argument = constructorArgument.getValue(); assertThat(argument, is(RuntimeBeanReference.class)); assertThat(((RuntimeBeanReference) argument).getBeanName(), is(C24ModelBeanDefinitionParser.DEFAULT_BEAN_NAME)); constructorArgument = definition.getConstructorArgumentValues().getArgumentValue(1, null); assertThat(constructorArgument, is(notNullValue())); assertThat(constructorArgument.getValue(), is(Collection.class)); }
From source file:org.bigtester.ate.xmlschema.BaseInputDataValueBeanDefinitionParser.java
/** * {@inheritDoc}// w ww . jav a2 s. c o m */ @Override protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { // Here we parse the Spring elements such as < property> if (parserContext == null || element == null) throw new IllegalStateException("Incorrect xsd xml parsing."); BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); bDef.setBeanClassName(BaseInputDataValue.class.getName()); String elementDataDao = element.getAttribute(XsdElementConstants.ATTR_BASEINPUTDATAVALUE_ELEMENTDATADAO); if (StringUtils.hasText(elementDataDao)) { bDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(elementDataDao)); } parserContext.getRegistry().registerBeanDefinition(element.getAttribute("id"), bDef); return (AbstractBeanDefinition) bDef; }
From source file:org.bigtester.ate.xmlschema.InputDataValueParentBeanDefinitionParser.java
/** * {@inheritDoc}// w w w .j av a 2 s . c o m */ @Override protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) { // Here we parse the Spring elements such as < property> if (parserContext == null || element == null) throw new IllegalStateException("Incorrect xsd xml parsing."); BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element); BeanDefinition bDef = holder.getBeanDefinition(); bDef.setBeanClassName(StepInputDataValue.class.getName()); String elementDataDao = element.getAttribute(XsdElementConstants.ATTR_BASEINPUTDATAVALUE_ELEMENTDATADAO); if (StringUtils.hasText(elementDataDao)) { bDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(elementDataDao)); } parserContext.getRegistry().registerBeanDefinition(element.getAttribute("id"), bDef); return (AbstractBeanDefinition) bDef; }