@SuppressWarnings("deprecation") protected static SyncItemJob setupStoreTemplateSyncJobs( final CatalogVersionSyncJobModel syncJobModel, final ModelService modelService) { // configure root types final SyncItemJob syncJob = modelService.getSource(syncJobModel); if (syncJob == null) { LOG.warn( "Could not setup catalog version synchronization job. Reason: Synchronization job not found."); } else { final List<ComposedType> rootTypes = new ArrayList<ComposedType>(2); final ComposedType cmsItemType = TypeManager.getInstance().getComposedType(Cms2Constants.TC.CMSITEM); rootTypes.add(cmsItemType); rootTypes.add(TypeManager.getInstance().getComposedType(Cms2Constants.TC.CMSRELATION)); rootTypes.add(TypeManager.getInstance().getComposedType(Media.class)); syncJob.setRootTypes(JaloSession.getCurrentSession().getSessionContext(), rootTypes); syncJob.setSyncLanguages( JaloSession.getCurrentSession().getSessionContext(), C2LManager.getInstance().getAllLanguages()); final Collection<SyncAttributeDescriptorConfig> syncAttributeConfigs = syncJob.getSyncAttributeConfigurations(); for (final SyncAttributeDescriptorConfig syncAttributeDescriptorConfig : syncAttributeConfigs) { final Type attributeType = syncAttributeDescriptorConfig.getAttributeDescriptor().getAttributeType(); if ((syncAttributeDescriptorConfig .getAttributeDescriptor() .getEnclosingType() .isAssignableFrom(cmsItemType) && cmsItemType.isAssignableFrom(attributeType)) || ((attributeType instanceof CollectionType) && cmsItemType.isAssignableFrom( ((CollectionType) attributeType).getElementType()))) { syncAttributeDescriptorConfig.setCopyByValue(true); } } } return syncJob; }