<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=cnelson" rel="nofollow">Christian Nelson</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-3198?redirect=false" rel="nofollow">SPR-3198</a></strong> and commented</p>
<p dir="auto">Note: There are a number of already existing related issues, but none seemed to address this one specific improvement: create companion javadoc and source archives for every spring jar, including module jars, and make them available via maven.</p>
<p dir="auto">One of the benefits to using maven is the automatic downloading and configuration of source and javadoc for a specific library.  This can be done directly from maven (e.g. mvn idea:idea or mvn eclipse:eclipse) or through an IDE plugin (e.g. Maven Reloaded).  When it works, it's really quite nice and brings us a step closer to an ideal development environment.</p>
<p dir="auto">Currently, the javadoc and source archives are created and made available only for the mondo, all-encompassing spring.jar.  In this case, auto-fetching and configuration of source and javadoc works great.  One could even say it works <em>awesome</em>.</p>
<p dir="auto">Unfortunately, we're only using a subset of spring and we explicitly list our dependencies on each module.  In this case, there aren't any javadoc or source modules to be associated with the class jars.  It would be fantastic if spring also provided these for those of us who only require a small subset of spring and would like to leverage maven's ability to auto-fetch and configure these.</p>
<p dir="auto">With future versions of spring, is it possible to include the associated javadoc and source archies for all of the spring jars, including the seperate module jars?</p>
<p dir="auto">Christian</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 2.0.2</p>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398071837" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/7392" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/7392/hovercard" href="https://github.com/spring-projects/spring-framework/issues/7392">#7392</a> Create and upload Maven Source and Javadoc Bundles for Spring 2.0 (<em><strong>"duplicates"</strong></em>)</li>
</ul>
<p dir="auto">9 votes, 5 watchers</p>
<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=vmorarian" rel="nofollow">Vitaliy Morarian</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-5854?redirect=false" rel="nofollow">SPR-5854</a></strong> and commented</p>
<p dir="auto">I have an abstract bean which used as a template. This bean has scope=prototype. Children declarations are real beans which are injected (as method lookup).<br>
The problem is, that this  scope=prototype is ignore (beans are created only once). Found solution -- declare scope=prototype for each 'real' bean.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="	&lt;bean id=&quot;reportingService&quot; class=&quot;com.uwiss.hr.service.impl.ReportingServiceImpl&quot;&gt;
		&lt;property name=&quot;asyncTaskManager&quot; ref=&quot;asyncTaskManager&quot;/&gt;
		&lt;property name=&quot;projectBO&quot; ref=&quot;projectBO&quot;/&gt;
		&lt;property name=&quot;context&quot; ref=&quot;asyncTaskContext&quot;/&gt;
		&lt;!-- lookups --&gt;
		&lt;lookup-method name=&quot;createEmployeeReportTask&quot; bean=&quot;employeeReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createSummaryEmployeeReportTask&quot; bean=&quot;summaryEmployeeReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createEmployeeAllDetailReportTask&quot; bean=&quot;employeeAllDetailReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createProjectReportTask&quot; bean=&quot;projectReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createProjectDetailReportTask&quot; bean=&quot;projectDetailReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createProjectAllDetailReportTask&quot; bean=&quot;projectAllDetailReportTask&quot;/&gt;
		&lt;lookup-method name=&quot;createAllBankDataInfoCallableTask&quot; bean=&quot;allBankDataInfoCallableTask&quot;/&gt;
		&lt;lookup-method name=&quot;createInvoiceReportCallableTask&quot; bean=&quot;invoiceReportCallableTask&quot;/&gt;
	&lt;/bean&gt;

         &lt;!-- template --&gt;
	&lt;bean id=&quot;jasperReportJDBCTaskGeneric&quot; class=&quot;com.uwiss.jenive.asynctask.server.AbstractJasperReportJDBCCallableTask&quot; scope=&quot;prototype&quot; abstract=&quot;true&quot;&gt;
		&lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;/&gt;
		&lt;property name=&quot;cacheBaseDirectory&quot; value=&quot;${jasper.cache.location}&quot;/&gt;
		&lt;property name=&quot;resultProcessor&quot; ref=&quot;asyncTaskProgressableUrlCreator&quot;/&gt;
		&lt;property name=&quot;fileResolver&quot;&gt;
			&lt;bean class=&quot;com.uwiss.hr.RuntimeCompilationFileResolver&quot;&gt;
				&lt;constructor-arg&gt;
					&lt;list&gt;
						&lt;value&gt;classpath:/fonts/&lt;/value&gt;
						&lt;value&gt;classpath:/com/uwiss/hr/report/&lt;/value&gt;
					&lt;/list&gt;
				&lt;/constructor-arg&gt;
				&lt;property name=&quot;cacheBaseDirectory&quot; value=&quot;${jasper.cache.location}&quot;/&gt;
			&lt;/bean&gt;
		&lt;/property&gt;
	&lt;/bean&gt;
        
       &lt;!-- real beans: have to declare scope=target as a workaround --&gt;
	&lt;bean id=&quot;allBankDataInfoCallableTask&quot; class=&quot;com.uwiss.hr.service.async.report.AllBankDataInfoCallableTask&quot; scope=&quot;prototype&quot; parent=&quot;jasperReportJDBCTaskGeneric&quot;&gt;
		&lt;property name=&quot;reportLocation&quot; value=&quot;classpath:/com/uwiss/hr/report/AllBankDataInfo.jrxml&quot;/&gt;
		&lt;property name=&quot;employeeBO&quot; ref=&quot;employeeBO&quot;/&gt;
	&lt;/bean&gt;
"><pre class="notranslate"><code class="notranslate">	&lt;bean id="reportingService" class="com.uwiss.hr.service.impl.ReportingServiceImpl"&gt;
		&lt;property name="asyncTaskManager" ref="asyncTaskManager"/&gt;
		&lt;property name="projectBO" ref="projectBO"/&gt;
		&lt;property name="context" ref="asyncTaskContext"/&gt;
		&lt;!-- lookups --&gt;
		&lt;lookup-method name="createEmployeeReportTask" bean="employeeReportTask"/&gt;
		&lt;lookup-method name="createSummaryEmployeeReportTask" bean="summaryEmployeeReportTask"/&gt;
		&lt;lookup-method name="createEmployeeAllDetailReportTask" bean="employeeAllDetailReportTask"/&gt;
		&lt;lookup-method name="createProjectReportTask" bean="projectReportTask"/&gt;
		&lt;lookup-method name="createProjectDetailReportTask" bean="projectDetailReportTask"/&gt;
		&lt;lookup-method name="createProjectAllDetailReportTask" bean="projectAllDetailReportTask"/&gt;
		&lt;lookup-method name="createAllBankDataInfoCallableTask" bean="allBankDataInfoCallableTask"/&gt;
		&lt;lookup-method name="createInvoiceReportCallableTask" bean="invoiceReportCallableTask"/&gt;
	&lt;/bean&gt;

         &lt;!-- template --&gt;
	&lt;bean id="jasperReportJDBCTaskGeneric" class="com.uwiss.jenive.asynctask.server.AbstractJasperReportJDBCCallableTask" scope="prototype" abstract="true"&gt;
		&lt;property name="dataSource" ref="dataSource"/&gt;
		&lt;property name="cacheBaseDirectory" value="${jasper.cache.location}"/&gt;
		&lt;property name="resultProcessor" ref="asyncTaskProgressableUrlCreator"/&gt;
		&lt;property name="fileResolver"&gt;
			&lt;bean class="com.uwiss.hr.RuntimeCompilationFileResolver"&gt;
				&lt;constructor-arg&gt;
					&lt;list&gt;
						&lt;value&gt;classpath:/fonts/&lt;/value&gt;
						&lt;value&gt;classpath:/com/uwiss/hr/report/&lt;/value&gt;
					&lt;/list&gt;
				&lt;/constructor-arg&gt;
				&lt;property name="cacheBaseDirectory" value="${jasper.cache.location}"/&gt;
			&lt;/bean&gt;
		&lt;/property&gt;
	&lt;/bean&gt;
        
       &lt;!-- real beans: have to declare scope=target as a workaround --&gt;
	&lt;bean id="allBankDataInfoCallableTask" class="com.uwiss.hr.service.async.report.AllBankDataInfoCallableTask" scope="prototype" parent="jasperReportJDBCTaskGeneric"&gt;
		&lt;property name="reportLocation" value="classpath:/com/uwiss/hr/report/AllBankDataInfo.jrxml"/&gt;
		&lt;property name="employeeBO" ref="employeeBO"/&gt;
	&lt;/bean&gt;

</code></pre></div>
<hr>
<p dir="auto"><strong>Affects:</strong> 2.5.6</p>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398078445" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/8225" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/8225/hovercard" href="https://github.com/spring-projects/spring-framework/issues/8225">#8225</a> scope (&amp; similar attributes) on abstract beans should be inherited in child beans, or not permitted (<em><strong>"duplicates"</strong></em>)</li>
</ul>