// Path: core/src/main/java/org/soluvas/sanad/core/mvc/SanadMvcConfig.java
// @Configuration
// @Import(SanadConfig.class)
// @ComponentScan("org.soluvas.sanad.core.mvc")
// @EnableTransactionManagement
// @EnableWebMvc
// @EnableSwagger
// public class SanadMvcConfig extends WebMvcConfigurerAdapter {
// 	
// 	private static final Logger log = LoggerFactory
// 			.getLogger(SanadMvcConfig.class);
// 
// 	@Override
// 	public void addResourceHandlers(ResourceHandlerRegistry registry) {
// //		registry.addResourceHandler("/swagger/**")
// //			.addResourceLocations("classpath:/swagger/");
// 	}
// 	
// 	@Override
// 	public void configureDefaultServletHandling(
// 			DefaultServletHandlerConfigurer configurer) {
// 		configurer.enable();
// 	}
// 	
// 	@Override
// 	public void configureMessageConverters(
// 			List<HttpMessageConverter<?>> converters) {
// 		MappingJackson2HttpMessageConverter jackson2 = new MappingJackson2HttpMessageConverter();
// 		jackson2.setObjectMapper(JsonUtils.mapper);
// 		converters.add(jackson2);
// 		log.info("Spring MVC Message Converters: {}", converters);
// 	}
// 	
// }


import java.io.File;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import org.soluvas.commons.AggregatingSupplier;
import org.soluvas.commons.AppManifest;
import org.soluvas.commons.SupplierXmiClasspathScanner;
import org.soluvas.commons.config.CommonsWebConfig;
import org.soluvas.commons.config.MultiTenantConfig;
import org.soluvas.commons.config.MultiTenantWebConfig;
import org.soluvas.commons.config.TenantSelector;
import org.soluvas.commons.tenant.TenantBeans;
import org.soluvas.commons.tenant.TenantUtils;
import org.soluvas.data.repository.CrudRepository;
import org.soluvas.sanad.core.mvc.SanadMvcConfig;
import org.soluvas.web.site.CssLink;
import org.soluvas.web.site.JavaScriptLink;
import org.soluvas.web.site.JavaScriptSource;
import org.soluvas.web.site.PageMetaProvider;
import org.soluvas.web.site.PermalinkConfig;
import org.soluvas.web.site.RulesPageMetaProvider;
import org.soluvas.web.site.SimpleSite;
import org.soluvas.web.site.Site;
import org.soluvas.web.site.compose.EmfGenericRepository;
import org.soluvas.web.site.compose.LiveContributor;
import org.soluvas.web.site.pagemeta.PageMetaCatalog;
import org.soluvas.web.site.pagemeta.PagemetaFactory;
import org.soluvas.web.site.pagemeta.PagemetaPackage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import org.springframework.core.env.Environment;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.eventbus.EventBus;
package org.soluvas.sanad.app;





/**
 * @author ceefour
 *
 */
@Configuration
@PropertySource("classpath:/META-INF/sanad.properties")
// Path: core/src/main/java/org/soluvas/sanad/core/mvc/SanadMvcConfig.java
// @Configuration
// @Import(SanadConfig.class)
// @ComponentScan("org.soluvas.sanad.core.mvc")
// @EnableTransactionManagement
// @EnableWebMvc
// @EnableSwagger
// public class SanadMvcConfig extends WebMvcConfigurerAdapter {
// 	
// 	private static final Logger log = LoggerFactory
// 			.getLogger(SanadMvcConfig.class);
// 
// 	@Override
// 	public void addResourceHandlers(ResourceHandlerRegistry registry) {
// //		registry.addResourceHandler("/swagger/**")
// //			.addResourceLocations("classpath:/swagger/");
// 	}
// 	
// 	@Override
// 	public void configureDefaultServletHandling(
// 			DefaultServletHandlerConfigurer configurer) {
// 		configurer.enable();
// 	}
// 	
// 	@Override
// 	public void configureMessageConverters(
// 			List<HttpMessageConverter<?>> converters) {
// 		MappingJackson2HttpMessageConverter jackson2 = new MappingJackson2HttpMessageConverter();
// 		jackson2.setObjectMapper(JsonUtils.mapper);
// 		converters.add(jackson2);
// 		log.info("Spring MVC Message Converters: {}", converters);
// 	}
// 	
// }


// Path: app/src/main/java/org/soluvas/sanad/app/AppConfig.java
import java.io.File;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import org.soluvas.commons.AggregatingSupplier;
import org.soluvas.commons.AppManifest;
import org.soluvas.commons.SupplierXmiClasspathScanner;
import org.soluvas.commons.config.CommonsWebConfig;
import org.soluvas.commons.config.MultiTenantConfig;
import org.soluvas.commons.config.MultiTenantWebConfig;
import org.soluvas.commons.config.TenantSelector;
import org.soluvas.commons.tenant.TenantBeans;
import org.soluvas.commons.tenant.TenantUtils;
import org.soluvas.data.repository.CrudRepository;
import org.soluvas.sanad.core.mvc.SanadMvcConfig;
import org.soluvas.web.site.CssLink;
import org.soluvas.web.site.JavaScriptLink;
import org.soluvas.web.site.JavaScriptSource;
import org.soluvas.web.site.PageMetaProvider;
import org.soluvas.web.site.PermalinkConfig;
import org.soluvas.web.site.RulesPageMetaProvider;
import org.soluvas.web.site.SimpleSite;
import org.soluvas.web.site.Site;
import org.soluvas.web.site.compose.EmfGenericRepository;
import org.soluvas.web.site.compose.LiveContributor;
import org.soluvas.web.site.pagemeta.PageMetaCatalog;
import org.soluvas.web.site.pagemeta.PagemetaFactory;
import org.soluvas.web.site.pagemeta.PagemetaPackage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import org.springframework.core.env.Environment;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.eventbus.EventBus;

package org.soluvas.sanad.app;





/**
 * @author ceefour
 *
 */
@Configuration
@PropertySource("classpath:/META-INF/sanad.properties")
@Import({SanadSecurityConfig.class, MultiTenantWebConfig.class, SanadMvcConfig.class})