From: Katja Luther Date: Mon, 11 Jan 2016 13:41:11 +0000 (+0100) Subject: adapt dependencies, not finished yet X-Git-Tag: 4.0.0^2~197^2~2 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/a3e7482e947b068324cf9ea470e084344f6cdc4d adapt dependencies, not finished yet --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/pom.xml b/eu.etaxonomy.taxeditor.cdmlib/pom.xml index 1ce986570..444633d72 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/pom.xml +++ b/eu.etaxonomy.taxeditor.cdmlib/pom.xml @@ -177,6 +177,11 @@ http://repository.springsource.com/maven/bundles/external + + + repository.springsource.release + SpringSource GA Repository + http://repo.springsource.org/release @@ -353,78 +358,78 @@ org.springframework - org.springframework.context - 3.2.2.RELEASE + spring-context + 4.2.4.RELEASE org.springframework - org.springframework.context.support - 3.2.2.RELEASE + spring-context-support + 4.2.4.RELEASE org.springframework - org.springframework.aspects - 3.2.2.RELEASE + spring-aspects + 4.2.4.RELEASE org.springframework - org.springframework.test - 3.2.2.RELEASE + spring-test + 4.2.4.RELEASE org.springframework - org.springframework.beans - 3.2.2.RELEASE + spring-beans + 4.2.4.RELEASE org.springframework - org.springframework.transaction - 3.2.2.RELEASE + spring-tx + 4.2.4.RELEASE - org.springframework - org.springframework.web - 3.2.2.RELEASE - - - org.springframework - org.springframework.core - 3.2.2.RELEASE - + org.springframework + spring-web + 4.2.4.RELEASE + org.springframework - org.springframework.aop - 3.2.2.RELEASE + spring-core + 4.2.4.RELEASE org.springframework - org.springframework.expression - 3.2.2.RELEASE + spring-aop + 4.2.4.RELEASE - org.springframework - org.springframework.orm - 3.2.2.RELEASE - + org.springframework + spring-expression + 4.2.4.RELEASE + + + org.springframework + spring-orm + 4.2.4.RELEASE + - org.springframework - org.springframework.jdbc - 3.2.2.RELEASE - + org.springframework + spring-jdbc + 4.2.4.RELEASE + org.springframework.security spring-security-core - 3.1.3.RELEASE + 4.0.3.RELEASE org.springframework.security spring-security-config - 3.1.3.RELEASE + 4.0.3.RELEASE org.springframework.security spring-security-remoting - 3.1.3.RELEASE + 4.0.3.RELEASE org.jboss.logging diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java index 47757c986..cdb3a1cdb 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java @@ -19,7 +19,7 @@ import org.apache.log4j.Logger; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; -import org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor; +import org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor; import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean; import org.springframework.security.access.AccessDecisionVoter; import org.springframework.security.authentication.AuthenticationProvider; @@ -128,7 +128,7 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu this.remoteSource = remoteSource; } - private Object getService(Class clazz, String serviceSuffix, CommonsHttpInvokerRequestExecutor executor) { + private Object getService(Class clazz, String serviceSuffix, HttpComponentsHttpInvokerRequestExecutor executor) { if(serviceMap.containsKey(clazz)) { return serviceMap.get(clazz); } @@ -140,7 +140,7 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu public static Object getService(Class clazz, String serviceSuffix, ICdmRemoteSource remoteSource, - CommonsHttpInvokerRequestExecutor executor) { + HttpComponentsHttpInvokerRequestExecutor executor) { String baseUrl; if(remoteSource.getContextPath() == null || remoteSource.getContextPath().equals("")) { @@ -305,16 +305,16 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu public static IUserService getUserService(ICdmRemoteSource remoteSource) { - return (IUserService) getService(IUserService.class, "/remoting-public/user.service", remoteSource, new CommonsHttpInvokerRequestExecutor()); + return (IUserService) getService(IUserService.class, "/remoting-public/user.service", remoteSource, new HttpComponentsHttpInvokerRequestExecutor()); } @Override public IMetadataService getMetadataService() { - return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", new CommonsHttpInvokerRequestExecutor()); + return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", new HttpComponentsHttpInvokerRequestExecutor()); } public static IMetadataService getMetadataService(ICdmRemoteSource remoteSource) { - return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", remoteSource, new CommonsHttpInvokerRequestExecutor()); + return (IMetadataService) getService(IMetadataService.class, "/remoting-public/metadata.service", remoteSource, new HttpComponentsHttpInvokerRequestExecutor()); } @Override @@ -426,7 +426,7 @@ public class CdmApplicationRemoteConfiguration implements ICdmApplicationConfigu if(cdmPermissionEvaluator != null) { return cdmPermissionEvaluator; } - List decisionVoters = new ArrayList(); + List> decisionVoters = new ArrayList>(); decisionVoters.add(new GrantAlwaysVoter()); decisionVoters.add(new TaxonNodeVoter()); decisionVoters.add(new TaxonBaseVoter()); diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacher.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacher.java index cf53ea5e1..997526936 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacher.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CdmModelCacher.java @@ -17,12 +17,20 @@ import net.sf.ehcache.Element; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.Platform; +import org.hibernate.SessionFactory; +import org.hibernate.boot.MetadataSources; +import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; -import org.hibernate.property.Getter; +import org.hibernate.metadata.ClassMetadata; +import org.hibernate.property.access.spi.Getter; import org.osgi.framework.Bundle; +import org.hibernate.boot.Metadata; + public class CdmModelCacher { @@ -63,22 +71,39 @@ public class CdmModelCacher { public Map generateModelClassMap() { - - Configuration configuration = buildConfiguration(HB_CONFIG_FILE_PATH); - Iterator classMappingIterator = configuration.getClassMappings(); - - Map modelClassMap = new HashMap(); - - while(classMappingIterator.hasNext()) { - PersistentClass persistentClass = classMappingIterator.next(); - Class mappedClass = persistentClass.getMappedClass(); - String mappedClassName = mappedClass.getName(); - - CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName); - System.out.println("Adding class : " + mappedClassName + " to cache"); - addGetters(persistentClass, cmgmfc); - modelClassMap.put(mappedClassName, cmgmfc); - } + + // A SessionFactory is set up once for an application! + final StandardServiceRegistry registry = new StandardServiceRegistryBuilder() + .configure(HB_CONFIG_FILE_PATH) // configures settings from hibernate.cfg.xml + .build(); + SessionFactory sessionFactory = null; + Map modelClassMap = new HashMap(); + try { + sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory(); + Configuration configuration = buildConfiguration(HB_CONFIG_FILE_PATH); + Map classMetaDataMap = sessionFactory.getAllClassMetadata(); + Metadata metadata = new MetadataSources( registry ).getMetadataBuilder().applyImplicitNamingStrategy( ImplicitNamingStrategyJpaCompliantImpl.INSTANCE ).build(); + + + for(ClassMetadata classMetaData :classMetaDataMap.values()) { + Class mappedClass = classMetaData.getMappedClass(); + + String mappedClassName = mappedClass.getName(); + + PersistentClass persistentClass =metadata.getEntityBinding(mappedClassName); + CdmModelFieldPropertyFromClass cmgmfc = new CdmModelFieldPropertyFromClass(mappedClassName); + System.out.println("Adding class : " + mappedClassName + " to cache"); + addGetters(persistentClass, cmgmfc); + modelClassMap.put(mappedClassName, cmgmfc); + } + } + catch (Exception e) { + // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory + // so destroy it manually. + StandardServiceRegistryBuilder.destroy( registry ); + } + + return modelClassMap; } diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmAuthenticatedHttpInvokerRequestExecutor.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmAuthenticatedHttpInvokerRequestExecutor.java index 692a3bae1..f46b81ae5 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmAuthenticatedHttpInvokerRequestExecutor.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmAuthenticatedHttpInvokerRequestExecutor.java @@ -13,7 +13,8 @@ import java.io.IOException; import org.apache.commons.codec.binary.Base64; import org.apache.commons.httpclient.methods.PostMethod; -import org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor; +import org.apache.http.client.methods.HttpPost; +import org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor; import org.springframework.remoting.httpinvoker.HttpInvokerClientConfiguration; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; @@ -25,11 +26,11 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState; * @date 27 Jan 2015 * */ -public class CdmAuthenticatedHttpInvokerRequestExecutor extends CommonsHttpInvokerRequestExecutor { +public class CdmAuthenticatedHttpInvokerRequestExecutor extends HttpComponentsHttpInvokerRequestExecutor { @Override - protected PostMethod createPostMethod(HttpInvokerClientConfiguration config) throws IOException { - PostMethod postMethod = super.createPostMethod(config); + protected HttpPost createHttpPost(HttpInvokerClientConfiguration config) throws IOException { + HttpPost postMethod = super.createHttpPost(config); SecurityContext securityContext = CdmApplicationState.getCurrentSecurityContext(); if(securityContext != null) { @@ -37,7 +38,7 @@ public class CdmAuthenticatedHttpInvokerRequestExecutor extends CommonsHttpInvok if ((auth != null) && (auth.getName() != null) && (auth.getCredentials() != null)) { String base64 = auth.getName() + ":" + auth.getCredentials().toString(); - postMethod.setRequestHeader("Authorization", "Basic " + + postMethod.setHeader("Authorization", "Basic " + new String(Base64.encodeBase64(base64.getBytes()))); } } diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java index f2debccfe..2224ce5ad 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java @@ -236,11 +236,11 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers if ( isTempSession ) { // TODO: On the next major release, add an // 'isJTA' or 'getTransactionFactory' method to Session. - isJTA = session.getTransactionCoordinator() + /*isJTA = session.getTransactionCoordinator() .getTransactionContext().getTransactionEnvironment() .getTransactionFactory() - .compatibleWithJtaSynchronization(); - + .compatibleWithJtaSynchronization();*/ + isJTA = session.getTransactionCoordinator().getTransactionCoordinatorBuilder().isJta(); if ( !isJTA ) { // Explicitly handle the transactions only if we're not in // a JTA environment. A lazy loading temporary session can diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java index 591594804..f9920b678 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java @@ -203,10 +203,12 @@ public abstract class AbstractLazyInitializer implements LazyInitializer { // TODO: On the next major release, add an // 'isJTA' or 'getTransactionFactory' method to Session. - boolean isJTA = session.getTransactionCoordinator() + /*boolean isJTA = session.getTransactionCoordinator() .getTransactionContext().getTransactionEnvironment() .getTransactionFactory() .compatibleWithJtaSynchronization(); + */ + boolean isJTA = session.getTransactionCoordinator().getTransactionCoordinatorBuilder().isJta(); if ( !isJTA ) { // Explicitly handle the transactions only if we're not in