Skip to content

Commit f9519f5

Browse files
Merge pull request BroadleafCommerce#319 from BroadleafCommerce/qa-1026-admin-standalone
Allow the admin to run separate from any other Broadleaf deependencies
2 parents 4f42405 + fad7e7f commit f9519f5

File tree

18 files changed

+219
-213
lines changed

18 files changed

+219
-213
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@
1717
* limitations under the License.
1818
* #L%
1919
*/
20-
package org.broadleafcommerce.openadmin.server.service.persistence.module.provider;
20+
package org.broadleafcommerce.cms.admin.server.persistence.provider;
2121

2222
import org.broadleafcommerce.common.presentation.client.SupportedFieldType;
2323
import org.broadleafcommerce.common.web.BroadleafRequestContext;
2424
import org.broadleafcommerce.openadmin.dto.Property;
2525
import org.broadleafcommerce.openadmin.server.service.persistence.PersistenceException;
26+
import org.broadleafcommerce.openadmin.server.service.persistence.module.provider.FieldPersistenceProviderAdapter;
2627
import org.broadleafcommerce.openadmin.server.service.persistence.module.provider.request.ExtractValueRequest;
2728
import org.broadleafcommerce.openadmin.server.service.persistence.module.provider.request.PopulateValueRequest;
2829
import org.broadleafcommerce.openadmin.server.service.type.FieldProviderResponse;

admin/broadleaf-contentmanagement-module/src/main/resources/applicationContext-servlet-cms-contentCreator.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
already be picked up in the global component scan included in the root context (from bl-cms-contentCreator-applicationContext)-->
3333
<context:component-scan base-package="org.broadleafcommerce.cms.admin.web.controller" />
3434

35+
<bean id="blAdminStructuredContentController" class="org.broadleafcommerce.cms.admin.web.controller.AdminStructuredContentController" />
36+
37+
<bean id="multipartResolver"
38+
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
39+
<property name="maxUploadSize" value="${asset.server.max.uploadable.file.size}"/>
40+
</bean>
41+
3542
<aop:config/>
3643

3744
</beans>

admin/broadleaf-contentmanagement-module/src/main/resources/bl-cms-contentCreator-applicationContext.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@
4747
</list>
4848
</property>
4949
</bean>
50+
51+
<bean id="blPersistenceProviders" class="org.broadleafcommerce.common.util.SortedListFactoryBean" scope="prototype">
52+
<property name="sourceList">
53+
<list>
54+
<ref bean="blHTMLFieldPersistenceProvider"/>
55+
</list>
56+
</property>
57+
</bean>
5058

5159
<mo:override id="blMetadataOverrides">
5260
<mo:overrideItem configurationKey="targetProduct">

admin/broadleaf-open-admin-platform/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,10 @@
221221
<artifactId>imageio-jpeg</artifactId>
222222
</dependency>
223223
<!-- Tests -->
224+
<dependency>
225+
<groupId>org.springframework.security</groupId>
226+
<artifactId>spring-security-config</artifactId>
227+
</dependency>
224228
<dependency>
225229
<groupId>org.codehaus.groovy</groupId>
226230
<artifactId>groovy-all</artifactId>

admin/broadleaf-open-admin-platform/src/main/java/org/broadleafcommerce/openadmin/server/dao/provider/metadata/AdornedTargetCollectionFieldMetadataProvider.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ protected boolean canHandleFieldForConfiguredMetadata(AddMetadataRequest addMeta
7171
return annot != null;
7272
}
7373

74+
@Override
7475
protected boolean canHandleFieldForTypeMetadata(AddMetadataFromFieldTypeRequest addMetadataFromFieldTypeRequest, Map<String, FieldMetadata> metadata) {
7576
AdminPresentationAdornedTargetCollection annot = addMetadataFromFieldTypeRequest.getRequestedField().getAnnotation(AdminPresentationAdornedTargetCollection.class);
7677
return annot != null;
@@ -504,8 +505,12 @@ protected void buildAdornedTargetCollectionMetadata(Class<?> parentClass, Class<
504505
try {
505506
ParameterizedType pt = (ParameterizedType) field.getGenericType();
506507
java.lang.reflect.Type collectionType = pt.getActualTypeArguments()[0];
507-
String ceilingEntityName = ((Class<?>) collectionType).getName();
508-
collectionTarget = entityConfiguration.lookupEntityClass(ceilingEntityName);
508+
collectionTarget = (Class<?>) collectionType;
509+
// Only check entityConfiguration if it's an interface since I can't determine what the
510+
// Hibernate class is from that
511+
if (collectionTarget.isInterface()) {
512+
collectionTarget = entityConfiguration.lookupEntityClass(collectionTarget.getName());
513+
}
509514
break checkCeiling;
510515
} catch (NoSuchBeanDefinitionException e) {
511516
// We weren't successful at looking at entity configuration to find the type of this collection.

admin/broadleaf-open-admin-platform/src/main/java/org/broadleafcommerce/openadmin/web/controller/entity/AdminBasicEntityController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.broadleafcommerce.openadmin.server.service.persistence.PersistenceResponse;
5454
import org.broadleafcommerce.openadmin.server.service.persistence.module.BasicPersistenceModule;
5555
import org.broadleafcommerce.openadmin.web.controller.AdminAbstractController;
56+
import org.broadleafcommerce.openadmin.web.controller.modal.ModalHeaderType;
5657
import org.broadleafcommerce.openadmin.web.editor.NonNullBooleanEditor;
5758
import org.broadleafcommerce.openadmin.web.form.component.DefaultListGridActions;
5859
import org.broadleafcommerce.openadmin.web.form.component.ListGrid;
@@ -62,7 +63,6 @@
6263
import org.broadleafcommerce.openadmin.web.form.entity.EntityFormAction;
6364
import org.broadleafcommerce.openadmin.web.form.entity.Field;
6465
import org.broadleafcommerce.openadmin.web.form.entity.Tab;
65-
import org.broadleafcommerce.openadmin.web.controller.modal.ModalHeaderType;
6666
import org.springframework.beans.factory.annotation.Value;
6767
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
6868
import org.springframework.stereotype.Controller;
@@ -143,6 +143,11 @@ public String viewEntityList(HttpServletRequest request, HttpServletResponse res
143143
DynamicResultSet drs = service.getRecords(ppr).getDynamicResultSet();
144144

145145
ListGrid listGrid = formService.buildMainListGrid(drs, cmd, sectionKey, crumbs);
146+
147+
if (CollectionUtils.isEmpty(listGrid.getHeaderFields())) {
148+
throw new IllegalStateException("At least 1 field must be set to prominent to display in a main grid");
149+
}
150+
146151
List<EntityFormAction> mainActions = new ArrayList<EntityFormAction>();
147152
addAddActionIfAllowed(sectionClassName, cmd, mainActions);
148153
extensionManager.getProxy().addAdditionalMainActions(sectionClassName, mainActions);

admin/broadleaf-open-admin-platform/src/main/java/org/broadleafcommerce/openadmin/web/service/FormBuilderServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public ListGrid buildMainListGrid(DynamicResultSet drs, ClassMetadata cmd, Strin
150150
List<Field> headerFields = new ArrayList<Field>();
151151
ListGrid.Type type = ListGrid.Type.MAIN;
152152
String idProperty = "id";
153-
153+
154154
for (Property p : cmd.getProperties()) {
155155
if (p.getMetadata() instanceof BasicFieldMetadata) {
156156
BasicFieldMetadata fmd = (BasicFieldMetadata) p.getMetadata();
@@ -194,7 +194,7 @@ protected Field createHeaderField(Property p, BasicFieldMetadata fmd) {
194194
}
195195

196196
hf.withName(p.getName())
197-
.withFriendlyName(fmd.getFriendlyName())
197+
.withFriendlyName(StringUtils.isNotEmpty(fmd.getFriendlyName()) ? fmd.getFriendlyName() : p.getName())
198198
.withOrder(fmd.getGridOrder())
199199
.withColumnWidth(fmd.getColumnWidth())
200200
.withForeignKeyDisplayValueProperty(fmd.getForeignKeyDisplayValueProperty())

admin/broadleaf-open-admin-platform/src/main/resources/applicationContext-servlet-open-admin.xml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,6 @@
4141
<property name="order" value="1"/>
4242
</bean>
4343

44-
<bean id="multipartResolver"
45-
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
46-
<property name="maxUploadSize" value="${asset.server.max.uploadable.file.size}"/>
47-
</bean>
48-
4944
<mvc:annotation-driven>
5045
<!-- This changes the ordering of the message converters such that JSON appears prior to any XML converters -->
5146
<mvc:message-converters>
@@ -59,6 +54,8 @@
5954

6055
<context:component-scan base-package="org.broadleafcommerce.openadmin.web.controller" />
6156

57+
<bean id="blConfiguration" class="org.broadleafcommerce.common.config.RuntimeEnvironmentPropertiesConfigurer" />
58+
6259
<bean id="blAdminDialectProcessors" class="org.springframework.beans.factory.config.SetFactoryBean">
6360
<property name="sourceSet">
6461
<set>
@@ -68,6 +65,7 @@
6865
<ref bean="blAdminSectionHrefProcessor"/>
6966
<ref bean="blAdminFieldBuilderProcessor"/>
7067
<ref bean="blErrorsProcessor"/>
68+
7169
</set>
7270
</property>
7371
</bean>

admin/broadleaf-open-admin-platform/src/main/resources/bl-open-admin-contentClient-applicationContext.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@
115115
<bean id="blPersistenceProviders" class="org.broadleafcommerce.common.util.SortedListFactoryBean" scope="prototype">
116116
<property name="sourceList">
117117
<list>
118-
<ref bean="blHTMLFieldPersistenceProvider"/>
119118
<ref bean="blBasicFieldPersistenceProvider"/>
120119
<ref bean="blRuleFieldPersistenceProvider"/>
121120
<ref bean="blMapFieldPersistenceProvider"/>

admin/broadleaf-open-admin-platform/src/main/resources/open_admin_style/templates/modules/modalContainer.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ <h3 id="myModalLabel" th:inline="text" th:switch="${modalHeaderType}">
1515

1616
<span th:case="'addCollectionItem'" th:remove="tag">
1717
[[#{modal.title.add}]]
18-
<span th:remove="tag" th:if="${#strings.isEmpty(collectionProperty.metadata.friendlyName)}" th:text="#{${collectionProperty.metadata.name}}" />
18+
<span th:remove="tag" th:if="${#strings.isEmpty(collectionProperty.metadata.friendlyName)}" th:text="#{${collectionProperty.name}}" />
1919
<span th:remove="tag" th:unless="${#strings.isEmpty(collectionProperty.metadata.friendlyName)}" th:text="#{${collectionProperty.metadata.friendlyName}}" />
2020
</span>
2121

common/src/main/java/org/broadleafcommerce/common/breadcrumbs/processor/BreadcrumbProcessor.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.broadleafcommerce.common.breadcrumbs.service.BreadcrumbService;
2424
import org.broadleafcommerce.common.web.BroadleafRequestContext;
2525
import org.broadleafcommerce.common.web.dialect.AbstractModelVariableModifierProcessor;
26-
import org.springframework.stereotype.Component;
2726
import org.springframework.util.CollectionUtils;
2827
import org.thymeleaf.Arguments;
2928
import org.thymeleaf.dom.Element;
@@ -39,7 +38,6 @@
3938
*
4039
* @author bpolster
4140
*/
42-
@Component("blBreadcrumbProcessor")
4341
public class BreadcrumbProcessor extends AbstractModelVariableModifierProcessor {
4442

4543
@Resource(name = "blBreadcrumbService")
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* limitations under the License.
1818
* #L%
1919
*/
20-
package org.broadleafcommerce.core.web.processor;
20+
package org.broadleafcommerce.common.web.processor;
2121

2222
import org.broadleafcommerce.common.exception.ServiceException;
2323
import org.broadleafcommerce.common.security.handler.CsrfFilter;

common/src/main/resources/bl-common-applicationContext-persistence.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,28 @@
4141
</property>
4242
</bean>
4343

44+
<bean id="blCacheManager" class="org.broadleafcommerce.common.extensibility.cache.ehcache.MergeEhCacheManagerFactoryBean">
45+
<property name="shared" value="true"/>
46+
</bean>
47+
4448
<bean id="blMergedCacheConfigLocations" class="org.springframework.beans.factory.config.ListFactoryBean">
4549
<property name="sourceList">
4650
<list>
4751
<value>classpath:bl-common-ehcache.xml</value>
4852
</list>
4953
</property>
5054
</bean>
55+
56+
<bean id="blTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
57+
<property name="entityManagerFactory" ref="entityManagerFactory" />
58+
</bean>
59+
60+
<tx:advice id="blTxAdvice" transaction-manager="blTransactionManager">
61+
<tx:attributes>
62+
<tx:method name="*" propagation="REQUIRED"/>
63+
<tx:method name="findNextId" propagation="REQUIRES_NEW"/>
64+
</tx:attributes>
65+
</tx:advice>
5166

5267
<bean id="blMergedPersistenceXmlLocations" class="org.springframework.beans.factory.config.ListFactoryBean">
5368
<property name="sourceList">

common/src/main/resources/bl-common-applicationContext.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,14 @@
342342
</property>
343343
</bean>
344344

345+
<bean id="thymeleafSpringStandardDialect" class="org.thymeleaf.spring4.dialect.SpringStandardDialect" />
346+
345347
<bean id="blVariableExpressionEvaluator" class="org.broadleafcommerce.common.web.expression.BroadleafVariableExpressionEvaluator" />
346348
<bean id="blDataDrivenEnumerationProcessor" class="org.broadleafcommerce.common.web.processor.DataDrivenEnumerationProcessor" />
347349
<bean id="blResourceBundleProcessor" class="org.broadleafcommerce.common.web.processor.ResourceBundleProcessor" />
348350
<bean id="blConfigVariableProcessor" class="org.broadleafcommerce.common.web.processor.ConfigVariableProcessor" />
351+
<bean id="blBreadcrumbProcessor" class="org.broadleafcommerce.common.breadcrumbs.processor.BreadcrumbProcessor" />
352+
<bean id="blFormProcessor" class="org.broadleafcommerce.common.web.processor.FormProcessor" />
349353

350354
<!-- This core Broadleaf dialect should not be extended by implementors. Instead, define your -->
351355
<!-- own dialect and add your processors there. -->
@@ -356,10 +360,28 @@
356360
<ref bean="blResourceBundleProcessor" />
357361
<ref bean="blConfigVariableProcessor" />
358362
<ref bean="blBreadcrumbProcessor" />
363+
<ref bean="blFormProcessor" />
359364
</set>
360365
</property>
361366
</bean>
362367

368+
<bean id="blDialect" class="org.broadleafcommerce.common.web.dialect.BLCDialect">
369+
<property name="processors" ref="blDialectProcessors" />
370+
</bean>
371+
372+
<!-- This list factory bean will accept classes that implment the BroadleafVariableExpression interface. -->
373+
<!-- This provides the ability to inject custom expression evaluators into Thymeleaf. -->
374+
<bean id="blVariableExpressions" class="org.springframework.beans.factory.config.ListFactoryBean">
375+
<property name="sourceList">
376+
<list>
377+
<bean class="org.broadleafcommerce.common.web.expression.NullBroadleafVariableExpression" />
378+
<bean class="org.broadleafcommerce.common.web.expression.BRCVariableExpression" />
379+
<bean class="org.broadleafcommerce.common.web.expression.PropertiesVariableExpression" />
380+
<bean class="org.broadleafcommerce.common.web.payment.expression.PaymentGatewayFieldVariableExpression"/>
381+
</list>
382+
</property>
383+
</bean>
384+
363385
<bean id="blSiteMapGenerators" class="org.springframework.beans.factory.config.ListFactoryBean">
364386
<property name="sourceList">
365387
<list>

0 commit comments

Comments
 (0)