class SpringExtensionPointImpl extends ExtensionPointImpl {

    @Serial
    private static final long serialVersionUID = -7891847787889605861L;

    public SpringExtensionPointImpl(String name, Class<?> contributionClass) {
        super(name, contributionClass);
    }

    @Override
    public Object[] loadContributions(ExtensionInternal extension) throws Exception {<FILL_FUNCTION_BODY>}

}


        ApplicationContext applicationContext = null;

        if (extension instanceof SpringExtensionImpl) {
            applicationContext = ((SpringExtensionImpl) extension).getApplicationContext();
        }
        if (contributions != null) {
            XMapSpring xmapSpring = new XMapSpring();
            for (Class<?> contrib : contributions) {
                xmapSpring.register(contrib, applicationContext);
            }

            Object[] contributions = xmapSpring.loadAll(
                new XMapContext(extension.getAppClassLoader()), extension.getElement());
            for (Object o : contributions) {
                if (applicationContext != null && o instanceof BeanFactoryAware) {
                    ((BeanFactoryAware) o).setBeanFactory(applicationContext
                        .getAutowireCapableBeanFactory());
                }
            }
            extension.setContributions(contributions);

            return contributions;
        }
        return null;
    
<methods>public void <init>(java.lang.String, Class<?>) ,public void addContribution(Class<?>) ,public void addContribution(java.lang.String) ,public List<Class<?>> getContributions() ,public java.lang.String getDocumentation() ,public java.lang.String getName() ,public boolean hasContribution() ,public java.lang.Object[] loadContributions(com.alipay.sofa.runtime.ext.component.ExtensionInternal) throws java.lang.Exception,public void setBeanClassLoader(java.lang.ClassLoader) <variables>protected java.lang.ClassLoader beanClassLoader,protected transient List<Class<?>> contributions,protected java.lang.String documentation,protected java.lang.String name,private static final long serialVersionUID