From b07c801e6583105e6ced568387f296a8bd4caa7c Mon Sep 17 00:00:00 2001 From: Will Ezell Date: Fri, 2 Feb 2018 09:20:45 -0500 Subject: [PATCH] Release nocode alpha (#13536) * #12619 Update edit content to match the rows and columns from content types * fixing messages * #13315 fixed * #13315 sonarcube * #13315 mas sonarcube * fixing broken ContentTypeUtilTest * Return PageView object after saving layout * #13270 fixes layout manager, but we still need to copy themes * Can't save new containers in a layout * refactoring * refactoring * merge * #13352 adding drag and drop to workflow builder * #13352 cool new hover trick * #13352 we didn't need api changed * #13352 * #13325 development branch * doing constructor public again * #13325 added toString methods to template designer * #13325 blow up page if template has bad data * #13325 throw error if template does not have a drawed body * #13325 moving the velocity mode renderer to the VelocityModeHandler * creating neew fields type: RowField and ColumnField * adding ColumnField into JsonSubTypes * #13325 fixes null container in getContainersInTemplate * #13325 fixes widget and form written out in loop * #13325 fixes double // duplication * #13325 invalidate container by object and not string * #13325 reverted edit_contentlet changes * #13325 showing template image if exists * #13325 fixes content drag and drop for new content * #13325 fixing template picker * #13395 CopyContentlet done * #13424 fixes the mysql lockup issue * #13425 fixes container invalidation * #13424 fixes the mysql lockup issue * #13425 containers now invalidating * #13424 closes the preparedstatement * #13425 cache key corrected for files * #13425 reverting log4j and others * Issue 13440 drawed templates (#13441) * Fix TreeTransformer for Oracle. (#13439) * #13440 draw your templates * #nocode allow columns to be accesses by int * #nocode workflow steps still needs love * #Added the work to create the system workflow on UT * #13174 fixing a log * Issue 13292 add contentlet search (#13448) * dotCMS/core#13292 Contentlet search filter and add contentlet to a page * Make work forms and widgets * Added new starter * #13321: Avoiding factory method with API find call inside (#13443) * #13429 (#13432) * Updating commit reference for src/main/enterprise * Added new starter * Adding new content from edit-mode * merge * removing TODO * #13449 adds libsass support * #13449 adds libsass support * dotcms/core#13449 adds libsass support * dotcms/core#13449 adds libsass support * #13174 feedback fixes * #13449 fixed if condition * #13449 reverting sass * #13449 velocity cache invalidation * #13452 added content can be moved from container to container * #13452 save contentlet to container, allow content selection * #13452 auto-add who can use and actionlet when selected * #13452 hide row/column fields from ui * #13452 contentlet velocity cache not invalidating * saving sidebar's width property * Fixing error when try to add a form content * fixed sidebar not saving * fixing error when saving the template's sidebar * saving the sidebar width in lowercase * saving the sidebar's width in lowercase * #13475 cache invalidations again * #13482 * #13452 allows you to select content type to add * #13390 cherry-pick the email fix * #13390 removing all the old velocity files * #13482 * #13452 container velocity cache * merge y saving uuid * merge and saving uuid * #13452 respect tree order * Removing tika jar dotCMS/core#13482 * #13452 ng-content-select * #13452 ng-content-select * #13452 fixed an npe on content versions and made minor changes to workflow list * Add CategoryAjax * #13482 * Add edit contentlet toolbar lang * #13504 uses outputstream rather than writer * #13452 adds basetype to content search * fixing nocode tests * Fix error with extra call to _fillStructures in Firefox * Adding base type to the ContentEvent when a content is add * revert context.xml change * Adding page fields to renderHTML end point * dotCMS/core#13482 * dotCMS/core#13482 * cleaned up the page resource return * cleaned up the page resource return * more page resource cleanup * more page resource cleanup * hopefully final renderHTML result * Adding messages * added CopyActionlet to imports * Cleaning imports * Missing javassist #13482 * Updating repackaged cactus.integration.ant jar #13482 * Missing dependency #13482 * Adding hibernate back #13482 * dotCMS/core#13482 * #13482 * Updating aws repackaged jars #13482 * Changing jar version #13482 * Updating milton repackaged jars #13482 * Changing jar version #13482 * Updating daisydiff repackaged jar #13482 * Adding tika bundle and related osgi bundles as system bundles in order to exclude them from the OSGI portlet #13482 * Changing back ee version #13482 --- dotCMS/build.gradle | 13 +- dotCMS/dependencies.gradle | 185 +- .../listeners/TestXmlRingingListener.java | 10 +- .../functional-test/resources/build-tests.xml | 3 +- .../java/com/dotcms/IntegrationTestBase.java | 2 +- .../test/ContentTypeAPIImplTest.java | 2 +- .../contenttype/test/DeleteFieldJobTest.java | 15 +- .../business/NotificationAPITest.java | 16 +- .../PublishingEndPointFactoryImplTest.java | 11 +- .../util/IntegrationTestInitService.java | 10 +- .../dotcms/uuid/shorty/TestShortyIdApi.java | 18 +- .../provider/guava/CachePerformanceTest.java | 51 +- .../dotmarketing/db/HibernateUtilTest.java | 18 +- .../containers/business/ContainerAPITest.java | 2 +- .../business/ContentletAPITest.java | 5 +- .../quartz/job/DeleteFieldJobTest.java | 15 +- .../com/ettrema/httpclient/LockMethod.java | 8 +- .../ettrema/httpclient/PropFindMethod.java | 17 +- .../com/ettrema/httpclient/ReportMethod.java | 12 +- .../java/com/ettrema/httpclient/Resource.java | 6 +- .../com/ettrema/httpclient/RespUtils.java | 18 +- .../java/com/liferay/util/LocaleUtilTest.java | 11 +- dotCMS/src/main/enterprise | 2 +- .../api/system/user/UserServiceFactory.java | 21 +- ...onWebTokenAuthCredentialProcessorImpl.java | 5 +- .../AbstractHazelcastCacheTransport.java | 4 +- .../cluster/business/HazelcastUtil.java | 3 +- .../concurrent/DotConcurrentFactory.java | 21 +- .../config/DotInitializationService.java | 13 +- .../business/ESContentFactoryImpl.java | 78 +- .../business/ESContentletAPIHelper.java | 12 +- .../business/ESContentletAPIImpl.java | 11 +- .../elasticsearch/business/ESIndexHelper.java | 15 +- .../business/ESMappingAPIImpl.java | 43 +- .../content/elasticsearch/util/ESUtils.java | 7 +- .../business/ContentTypeFactoryImpl.java | 31 +- .../contenttype/business/FieldAPIImpl.java | 7 +- .../business/FieldFactoryImpl.java | 28 +- .../sql/FixTaskFixStructureTable.java | 6 +- .../contenttype/model/field/ColumnField.java | 37 + .../dotcms/contenttype/model/field/Field.java | 26 +- .../model/field/FieldVariable.java | 14 +- .../model/field/LegacyFieldTypes.java | 4 +- .../contenttype/model/field/RowField.java | 37 + .../model/field/SelectableValuesField.java | 10 +- .../contenttype/model/type/ContentType.java | 25 +- .../transform/field/DbFieldTransformer.java | 16 +- .../field/LegacyFieldTransformer.java | 13 +- .../csspreproc/CSSPreProcessServlet.java | 13 +- ...ltFrontEndLoginRequiredWebInterceptor.java | 9 +- .../AbstractIntegrityChecker.java | 21 +- .../RoleIntegrityChecker.java | 6 +- .../dotcms/keyvalue/business/KeyValueAPI.java | 14 +- .../com/dotcms/listeners/SessionMonitor.java | 17 +- .../notifications/NotificationConverter.java | 9 +- .../business/NotificationAPIImpl.java | 19 +- .../java/com/dotcms/osgi/OSGIConstants.java | 11 + .../business/PublishAuditHistory.java | 9 +- .../publisher/business/PublisherAPIImpl.java | 34 +- .../publisher/business/PublisherQueueJob.java | 14 +- .../publisher/pusher/PushPublisher.java | 10 +- .../dotcms/publisher/pusher/PushUtils.java | 16 +- .../publisher/receiver/BundlePublisher.java | 6 +- .../publisher/util/DependencyManager.java | 2 +- .../dotcms/publisher/util/DependencySet.java | 15 +- .../publisher/util/PushCategoryUtil.java | 4 +- .../com/dotcms/publishing/BundlerUtil.java | 7 +- .../publishing/DotPrettyPrintWriter.java | 7 +- .../java/com/dotcms/publishing/Publisher.java | 2 +- .../velocity/directive/DotDirective.java | 3 + .../velocity/directive/DotParse.java | 4 +- .../velocity/services/ContainerLoader.java | 41 +- .../velocity/services/ContentTypeLoader.java | 7 +- .../velocity/services/ContentletLoader.java | 437 +- .../velocity/services/DotLoader.java | 2 +- .../velocity/services/DotResourceCache.java | 103 +- .../velocity/services/DotResourceLoader.java | 54 +- .../velocity/services/FieldLoader.java | 19 +- .../velocity/services/PageContextBuilder.java | 11 +- .../velocity/services/PageLoader.java | 66 +- .../velocity/services/SiteLoader.java | 8 +- .../velocity/services/StringifyObject.java | 3 +- .../velocity/services/TemplateLoader.java | 43 +- .../velocity/services/VTLLoader.java | 8 +- .../services/VelocityResourceKey.java | 101 + .../velocity/servlet/VelocityEditMode.java | 14 +- .../velocity/servlet/VelocityLiveMode.java | 46 +- .../velocity/servlet/VelocityModeHandler.java | 41 +- .../velocity/servlet/VelocityPreviewMode.java | 11 +- .../rendering/velocity/util/VelocityUtil.java | 35 +- .../velocity/viewtools/ContentsWebAPI.java | 30 +- .../velocity/viewtools/DotTemplateTool.java | 7 +- .../velocity/viewtools/MessagesTools.java | 4 +- .../velocity/viewtools/VelocityWebUtil.java | 77 +- .../rendering/velocity/viewtools/XmlTool.java | 22 +- .../velocity/viewtools/XsltTool.java | 16 +- .../viewtools/cache/XmlToolCache.java | 7 +- .../velocity/viewtools/content/BinaryMap.java | 5 +- .../viewtools/content/CheckboxMap.java | 8 +- .../viewtools/content/ContentMap.java | 27 +- .../viewtools/content/FileAssetMap.java | 5 +- .../viewtools/content/MultiSelectMap.java | 8 +- .../content/PaginatedContentList.java | 2 +- .../velocity/viewtools/content/RadioMap.java | 7 +- .../velocity/viewtools/content/SelectMap.java | 8 +- .../java/com/dotcms/rest/BundleResource.java | 2 +- .../java/com/dotcms/rest/ContentResource.java | 17 +- .../com/dotcms/rest/EnvironmentResource.java | 3 +- .../java/com/dotcms/rest/OSGIResource.java | 25 +- .../java/com/dotcms/rest/TestResource.java | 4 +- .../java/com/dotcms/rest/WebResource.java | 11 +- .../dotcms/rest/annotation/HeaderFilter.java | 7 +- .../dotcms/rest/annotation/RequestFilter.java | 15 +- .../AuthenticationResource.java | 15 +- .../ResetPasswordTokenUtil.java | 4 +- .../rest/api/v1/folder/FolderHelper.java | 4 - .../dotcms/rest/api/v1/menu/MenuResource.java | 15 +- .../dotcms/rest/api/v1/page/PageResource.java | 91 +- .../rest/api/v1/page/PageResourceHelper.java | 153 +- .../dotcms/rest/api/v1/site/SiteHelper.java | 13 +- .../dotcms/rest/api/v1/site/SiteResource.java | 19 +- .../sites/ruleengine/rules/RuleTransform.java | 15 +- .../actions/RuleActionParameterTransform.java | 5 +- .../rules/actions/RuleActionTransform.java | 7 +- .../conditions/ConditionGroupTransform.java | 5 +- .../rules/conditions/ConditionTransform.java | 3 +- .../conditions/ParameterModelTransform.java | 2 +- .../rest/api/v1/system/i18n/I18NResource.java | 3 +- .../rest/api/v1/user/UpdateUserForm.java | 2 +- .../rest/api/v1/user/UserResourceHelper.java | 23 +- .../api/v1/workflow/WorkflowResource.java | 34 +- .../dotcms/rest/validation/Preconditions.java | 2 +- .../com/dotcms/tika/TikaProxyService.java | 271 + .../com/dotcms/tika/TikaServiceBuilder.java | 20 + .../main/java/com/dotcms/tika/TikaUtils.java | 252 +- .../translate/GoogleTranslationService.java | 5 +- .../java/com/dotcms/util/AnnotationUtils.java | 9 +- .../util/ConfigurationInterpolator.java | 3 +- .../java/com/dotcms/util/ContentTypeUtil.java | 12 +- .../com/dotcms/util/DotPreconditions.java | 2 +- .../com/dotcms/util/HttpRequestDataUtil.java | 10 +- .../java/com/dotcms/util/LogTimeUtil.java | 3 +- .../java/com/dotcms/util/PaginationUtil.java | 18 +- ...mEnvironmentConfigurationInterpolator.java | 9 +- .../java/com/dotcms/util/UrlStrategyUtil.java | 5 +- .../pagination/ContentTypesPaginator.java | 6 +- .../dotcms/util/pagination/SitePaginator.java | 4 +- .../vanityurl/action/ViewVanityURLAction.java | 6 +- .../vanityurl/business/VanityUrlAPIImpl.java | 23 +- .../vanityurl/model/CacheVanityKey.java | 3 +- .../model/SecondaryCacheVanityKey.java | 3 +- .../com/dotcms/webdav/FsFileResource.java | 26 +- .../workflow/helper/WorkflowHelper.java | 7 +- .../com/dotcms/xmlsitemap/XMLSitemapJob.java | 16 +- .../com/dotmarketing/beans/MultiTree.java | 34 +- .../com/dotmarketing/beans/Permission.java | 10 +- .../dotmarketing/beans/PermissionAsset.java | 5 +- .../beans/PermissionReference.java | 7 +- .../java/com/dotmarketing/beans/Tree.java | 9 +- .../business/BaseWebAssetAPI.java | 2 +- .../dotmarketing/business/BlockPageCache.java | 2 +- .../business/DotCacheAdministrator.java | 15 +- .../com/dotmarketing/business/LayoutAPI.java | 10 +- .../dotmarketing/business/LayoutAPIImpl.java | 4 + .../business/RoleFactoryImpl.java | 23 +- .../dotmarketing/business/UserAPIImpl.java | 11 +- .../business/UserFactoryLiferayImpl.java | 2 - .../business/UserProxyFactoryImpl.java | 10 +- .../business/VersionableFactoryImpl.java | 11 +- .../business/cache/provider/h22/H22Cache.java | 28 +- .../cache/provider/redis/RedisProvider.java | 29 +- .../jgroups/JGroupsCacheTransport.java | 17 +- .../business/query/QueryUtil.java | 22 +- .../com/dotmarketing/cms/SecureAction.java | 2 +- .../cms/comment/action/CommentsAction.java | 36 +- .../cms/comment/struts/CommentsForm.java | 18 +- .../submit/action/SubmitContentAction.java | 32 +- .../action/CreateAccountAction.java | 27 +- .../struts/CreateAccountForm.java | 19 +- .../action/ForgotPasswordAction.java | 27 +- .../struts/ForgotPasswordForm.java | 14 +- .../cms/login/action/LoginAction.java | 26 +- .../cms/login/action/LogoutAction.java | 19 +- .../cms/login/struts/LoginForm.java | 10 +- .../action/AccountActivationAction.java | 26 +- .../cms/myaccount/action/AddressAction.java | 1 - .../cms/myaccount/action/MyAccountAction.java | 24 +- .../myaccount/action/MyInterestsAction.java | 25 +- .../cms/myaccount/struts/MyAccountForm.java | 11 +- .../webforms/action/SubmitWebFormAction.java | 35 +- .../dotmarketing/common/db/DotConnect.java | 38 +- .../com/dotmarketing/common/util/SQLUtil.java | 4 +- .../comparators/ContentComparator.java | 6 +- .../com/dotmarketing/config/ConfigLoader.java | 17 +- .../dotmarketing/db/DotSQLGeneratorTask.java | 5 +- .../com/dotmarketing/db/HibernateUtil.java | 24 +- .../dotmarketing/factories/EmailFactory.java | 2 +- .../dotmarketing/factories/InodeFactory.java | 12 +- .../factories/MultiTreeAPIImpl.java | 48 +- .../factories/MultiTreeFactory.java | 4 +- .../factories/PermissionGenerator.java | 1 - .../filters/CharsetEncodingFilter.java | 26 +- .../filters/DotUrlRewriteFilter.java | 11 +- .../filters/ThreadNameFilter.java | 14 +- ...ask00001CheckAssetsMissingIdentifiers.java | 6 +- ...sk00003CheckContainersInconsistencies.java | 4 +- ...FixTask00006CheckLinksInconsistencies.java | 4 +- ...ask00007CheckTemplatesInconsistencies.java | 4 +- .../FixTask00008CheckTreeInconsistencies.java | 4 +- ...00009CheckContentletsInexistentInodes.java | 4 +- ...ask00011RenameHostInFieldVariableName.java | 4 +- .../tasks/FixTask00012UpdateAssetsHosts.java | 4 +- ...FixTask00020DeleteOrphanedIdentifiers.java | 4 +- .../FixTask00030DeleteOrphanedAssets.java | 4 +- ...xTask00050FixInodesWithoutContentlets.java | 4 +- .../tasks/FixTask00060FixAssetType.java | 4 +- ...k00080DeleteOrphanedContentTypeFields.java | 4 +- ...090RecreateMissingFoldersInParentPath.java | 4 +- ...FixTask00095DeleteOrphanRelationships.java | 31 +- .../business/ConsoleLogFactoryImpl.java | 3 +- .../logConsole/form/ConsoleLogForm.java | 2 +- .../logConsole/model/LogMapperRow.java | 3 +- .../com/dotmarketing/osgi/ActivatorUtil.java | 6 +- .../osgi/GenericBundleActivator.java | 14 +- .../plugin/model/PluginProperty.java | 5 +- .../portal/struts/DotPortletAction.java | 31 +- .../struts/DotPortletActionInterface.java | 4 +- .../browser/action/ViewBrowserAction.java | 15 +- .../calendar/action/EditEventAction.java | 25 +- .../calendar/action/SendVCalendarDetail.java | 21 +- .../calendar/action/ViewCalendarAction.java | 10 +- .../cms/action/CalendarReminderAction.java | 14 +- .../calendar/cms/struts/EventForm.java | 17 +- .../calendar/struts/CalendarReminderForm.java | 2 +- .../portlets/calendar/struts/EventForm.java | 9 +- .../categories/action/EditCategoryAction.java | 12 +- .../action/ViewCategoriesAction.java | 8 +- .../categories/action/ViewCategoryAction.java | 16 +- .../business/CategoryFactoryImpl.java | 4 +- .../portlets/categories/model/Category.java | 19 +- .../categories/struts/CategoryForm.java | 20 +- .../action/ViewCMSMaintenanceAction.java | 14 +- .../ajax/CMSMaintenanceAjax.java | 8 +- .../struts/CmsMaintenanceForm.java | 6 +- .../util/CleanAssetsThread.java | 10 +- .../action/EditContainerAction.java | 27 +- .../action/PublishContainersAction.java | 9 +- .../action/ViewContainersAction.java | 21 +- .../containers/business/ContainerAPI.java | 3 + .../containers/business/ContainerAPIImpl.java | 41 +- .../containers/business/ContainerCache.java | 8 +- .../business/ContainerCacheImpl.java | 17 +- .../business/ContainerFactoryImpl.java | 12 +- .../portlets/containers/model/Container.java | 10 +- .../containers/struts/ContainerForm.java | 15 +- .../action/EditContentletAction.java | 62 +- .../contentlet/action/ImportAuditUtil.java | 15 +- .../action/ImportContentletsAction.java | 6 +- .../action/ViewContentletAction.java | 16 +- .../contentlet/ajax/ContentletAjax.java | 48 +- .../contentlet/business/Contentlet.java | 29 +- .../business/ContentletAPIInterceptor.java | 6 + .../contentlet/business/ContentletCache.java | 9 +- .../business/ContentletCacheImpl.java | 32 +- .../contentlet/business/HostAPIImpl.java | 5 +- .../business/hook/HTMLPageHook.java | 74 + .../business/web/ContentletWebAPIImpl.java | 29 +- .../portlets/contentlet/model/Contentlet.java | 28 +- .../contentlet/struts/ContentletForm.java | 28 +- .../struts/ImportContentletsForm.java | 7 +- .../dashboard/action/ViewDashboardAction.java | 33 +- .../dashboard/model/DashboardSummary.java | 5 +- .../portlets/dashboard/model/HostWrapper.java | 9 +- .../director/action/DirectorAction.java | 18 +- .../portlets/fileUpload/model/FileUpload.java | 10 +- .../fileassets/business/FileAssetAPIImpl.java | 5 +- .../action/UploadMultipleFilesAction.java | 10 +- .../portlets/files/struts/FileForm.java | 22 +- .../folders/action/EditFolderAction.java | 17 +- .../folders/action/OrderMenuAction.java | 27 +- .../folders/action/PublishFolderAction.java | 11 +- .../folders/business/FolderAPIImpl.java | 29 +- .../folders/business/FolderFactoryImpl.java | 9 +- .../portlets/folders/model/Folder.java | 14 +- .../portlets/folders/struts/FolderForm.java | 10 +- .../portlets/folders/struts/HostForm.java | 3 +- .../form/action/ViewFormHandlerAction.java | 19 +- .../hostadmin/action/ViewHostsAction.java | 9 +- .../bussiness/HostVariableFactoryImpl.java | 11 +- .../business/HTMLPageAssetAPI.java | 2 + .../business/HTMLPageAssetAPIImpl.java | 19 +- .../action/PreviewHTMLPageAction.java | 9 +- .../action/PublishHTMLPagesAction.java | 12 +- .../action/HTMLPageReportAction.java | 24 +- .../action/ViewHTMLPageViewsAction.java | 9 +- .../action/EditLanguageAction.java | 12 +- .../action/EditLanguageKeysAction.java | 21 +- .../action/ViewLanguageAction.java | 13 +- .../business/LanguageAPIImpl.java | 12 +- .../business/LanguageFactoryImpl.java | 13 +- .../languagesmanager/model/Language.java | 5 +- .../languagesmanager/struts/LanguageForm.java | 10 +- .../portlets/links/action/EditLinkAction.java | 18 +- .../links/action/PublishLinksAction.java | 9 +- .../links/action/ViewLinksAction.java | 12 +- .../portlets/links/struts/LinkForm.java | 12 +- .../report/action/EditReportAction.java | 15 +- .../report/action/RunReportAction.java | 49 +- .../report/action/ViewReportsAction.java | 23 +- .../portlets/report/struts/ReportForm.java | 16 +- .../roleadmin/action/ViewRolesAction.java | 8 +- .../rules/actionlet/PersonaActionlet.java | 2 +- .../SetRequestAttributeActionlet.java | 2 +- .../actionlet/SetResponseHeaderActionlet.java | 2 +- .../SetSessionAttributeActionlet.java | 2 +- .../conditionlet/PersonaConditionlet.java | 26 +- .../conditionlet/VisitedUrlConditionlet.java | 2 +- .../rules/parameter/ParameterDefinition.java | 2 +- .../parameter/comparison/Comparison.java | 6 +- .../parameter/display/DropdownInput.java | 2 - .../rules/parameter/type/DataType.java | 2 +- .../rules/parameter/type/NumericType.java | 2 +- .../StandardConstraintFunctions.java | 2 +- .../scheduler/action/EditSchedulerAction.java | 21 +- .../action/ViewSchedulersAction.java | 18 +- .../scheduler/struts/SchedulerForm.java | 11 +- .../structure/action/EditFieldAction.java | 20 +- .../action/EditRelationshipAction.java | 14 +- .../structure/action/EditStructureAction.java | 20 +- .../action/ViewRelationshipsAction.java | 11 +- .../structure/action/ViewStructureAction.java | 17 +- .../portlets/structure/model/Field.java | 14 +- .../portlets/structure/model/Structure.java | 13 +- .../portlets/structure/struts/FieldForm.java | 21 +- .../structure/struts/RelationshipForm.java | 14 +- .../structure/struts/StructureForm.java | 14 +- .../templates/action/EditTemplateAction.java | 24 +- .../action/PublishTemplatesAction.java | 9 +- .../templates/action/ViewTemplatesAction.java | 15 +- .../portlets/templates/ajax/TemplateAjax.java | 4 +- .../templates/business/TemplateAPI.java | 4 + .../templates/business/TemplateAPIImpl.java | 160 +- .../business/TemplateFactoryImpl.java | 39 +- .../portlets/templates/design/bean/Body.java | 19 +- .../design/bean/ContainerHolder.java | 13 +- .../templates/design/bean/ContainerUUID.java | 14 +- .../design/bean/PreviewFileAsset.java | 15 +- .../templates/design/bean/Sidebar.java | 32 +- .../design/bean/SidebarWidthValue.java | 32 + .../templates/design/bean/TemplateLayout.java | 49 +- .../design/bean/TemplateLayoutColumn.java | 24 +- .../design/bean/TemplateLayoutRow.java | 38 +- .../portlets/templates/model/Template.java | 17 +- .../templates/model/TemplateWrapper.java | 6 +- .../templates/struts/TemplateForm.java | 15 +- .../action/EditUserAdditionalInfoAction.java | 6 +- .../user/action/EditUserCategoriesAction.java | 9 +- .../user/action/EditUserCommentAction.java | 13 +- .../user/action/EditUserPreferenceAction.java | 9 +- .../user/action/EditUserProxyAction.java | 11 +- .../user/action/ViewUserCommentsAction.java | 15 +- .../user/struts/UserAdditionalInfoForm.java | 3 +- .../user/struts/UserCategoriesForm.java | 2 +- .../user/struts/UserCommentsForm.java | 6 +- .../useradmin/action/ViewUsersAction.java | 8 +- .../action/ViewUserClicksAction.java | 19 +- .../action/EditUserManagerAction.java | 30 +- .../UserManagerPropertiesFactory.java | 2 +- .../usermanager/struts/UserManagerForm.java | 15 +- .../struts/UserManagerListSearchForm.java | 17 +- .../action/GenerateWebFormsReportAction.java | 19 +- .../webforms/action/ViewWebFormsAction.java | 8 +- .../struts/WorkflowMessageForm.java | 15 +- .../action/EditWorkflowTaskAction.java | 19 +- .../action/ViewWorkflowTasksAction.java | 14 +- .../actionlet/UnarchiveContentActionlet.java | 6 +- .../workflows/ajax/WfRoleStoreAjax.java | 12 +- .../portlets/workflows/ajax/WfSchemeAjax.java | 13 +- .../business/WorkflowFactoryImpl.java | 37 +- .../workflows/model/WorkflowComment.java | 6 +- .../workflows/model/WorkflowHistory.java | 6 +- .../workflows/model/WorkflowTask.java | 6 +- .../workflows/struts/WorkflowCommentForm.java | 13 +- .../workflows/struts/WorkflowHistoryForm.java | 13 +- .../workflows/struts/WorkflowTaskForm.java | 13 +- .../servlets/BinaryExporterServlet.java | 37 +- .../dotmarketing/servlets/InitServlet.java | 51 +- .../servlets/JSONCategoriesServlet.java | 32 +- .../servlets/JSONTagsServlet.java | 29 +- .../startup/AbstractJDBCStartupTask.java | 19 +- ...8CreateTagStorageFieldOnHostStructure.java | 2 +- .../Task03540UpdateTagInodesReferences.java | 3 +- ...RemoveDeleteInactiveClusterServersJob.java | 5 +- .../Task04305UpdateWorkflowActionTable.java | 3 +- .../Task04330CreateSystemWorkflow.java | 215 + .../struts/PortalRequestProcessor.java | 2 +- .../java/com/dotmarketing/util/Config.java | 6 +- .../java/com/dotmarketing/util/DateUtil.java | 9 +- .../util/HibernateCollectionConverter.java | 4 +- .../util/HibernateMapConverter.java | 4 +- .../dotmarketing/util/ImportExportUtil.java | 51 +- .../dotmarketing/util/MaintenanceUtil.java | 20 +- .../java/com/dotmarketing/util/MenuItem.java | 2 +- .../java/com/dotmarketing/util/OSGIUtil.java | 69 + .../java/com/dotmarketing/util/RegEX.java | 22 +- .../com/dotmarketing/util/StringUtils.java | 17 +- .../com/dotmarketing/util/UUIDGenerator.java | 4 +- .../com/dotmarketing/util/UtilMethods.java | 13 +- .../java/com/dotmarketing/util/Validator.java | 14 +- .../java/com/dotmarketing/util/XMLUtils.java | 2 +- .../com/dotmarketing/util/diff/DaisyDiff.java | 17 +- .../dotmarketing/util/diff/HtmlCleaner.java | 9 +- .../com/dotmarketing/util/diff/XslFilter.java | 23 +- .../helper/MergeCharacterEventsHandler.java | 8 +- .../util/diff/helper/NekoHtmlParser.java | 15 +- .../util/diff/helper/SaxBuffer.java | 23 +- .../util/diff/html/HTMLDiffer.java | 7 +- .../util/diff/html/HtmlSaxDiffOutput.java | 6 +- .../ancestor/tagtostring/AnchorToString.java | 7 +- .../ancestor/tagtostring/TagToString.java | 7 +- .../util/diff/html/dom/BodyNode.java | 3 +- .../util/diff/html/dom/DomTreeBuilder.java | 6 +- .../util/diff/html/dom/ImageNode.java | 4 +- .../util/diff/html/dom/TagNode.java | 9 +- .../diff/html/dom/helper/AttributesMap.java | 2 +- .../util/diff/output/DiffOutput.java | 2 +- .../dotmarketing/util/diff/output/Differ.java | 2 +- .../util/diff/tag/TagSaxDiffOutput.java | 6 +- .../dotmarketing/util/json/JSONObject.java | 11 +- .../dotmarketing/webdav/DotWebdavHelper.java | 26 +- .../com/liferay/portal/PortalException.java | 2 +- .../com/liferay/portal/SystemException.java | 2 +- .../portal/action/ChangePasswordAction.java | 18 +- .../liferay/portal/action/LayoutAction.java | 24 +- .../liferay/portal/action/LoginAction.java | 23 +- .../liferay/portal/action/LoginAsAction.java | 16 +- .../liferay/portal/action/LogoutAction.java | 13 +- .../liferay/portal/action/LogoutAsAction.java | 14 +- .../portal/ejb/AddressPersistence.java | 10 +- .../liferay/portal/ejb/BasePersistence.java | 5 +- .../portal/ejb/CompanyPersistence.java | 8 +- .../liferay/portal/ejb/ImageLocalUtil.java | 13 +- .../liferay/portal/ejb/ImagePersistence.java | 8 +- .../ejb/PasswordTrackerPersistence.java | 10 +- .../liferay/portal/ejb/PortletManager.java | 4 +- .../portal/ejb/PortletManagerImpl.java | 45 +- .../portal/ejb/PortletPersistence.java | 10 +- .../ejb/PortletPreferencesPersistence.java | 10 +- .../portal/ejb/ReleasePersistence.java | 8 +- .../liferay/portal/ejb/UserPersistence.java | 20 +- .../ejb/UserTrackerPathPersistence.java | 10 +- .../portal/ejb/UserTrackerPersistence.java | 10 +- .../com/liferay/portal/events/InitAction.java | 15 +- .../portal/events/LoginPostAction.java | 17 +- .../portal/events/ServicePreAction.java | 17 +- .../com/liferay/portal/form/LayoutForm.java | 6 +- .../liferay/portal/language/LanguageUtil.java | 8 +- .../liferay/portal/model/AddressModel.java | 10 +- .../com/liferay/portal/pwd/RegExpToolkit.java | 9 +- .../liferay/portal/servlet/MainServlet.java | 39 +- .../com/liferay/portal/struts/Handler.java | 9 +- .../struts/InitializableActionForm.java | 3 +- .../portal/struts/MultiMessageResources.java | 17 +- .../struts/MultiMessageResourcesFactory.java | 4 +- .../portal/struts/PortalRequestProcessor.java | 42 +- .../liferay/portal/struts/PortletAction.java | 16 +- .../portal/struts/PortletActionServlet.java | 10 +- .../struts/PortletRequestProcessor.java | 35 +- .../portal/struts/StrutsURLEncoder.java | 11 +- .../com/liferay/portal/struts/StxxPlugin.java | 7 +- .../liferay/portal/tools/EARXMLBuilder.java | 16 +- .../liferay/portal/tools/EJBXMLBuilder.java | 14 +- .../liferay/portal/tools/WebSiteBuilder.java | 8 +- .../liferay/portal/util/EntityResolver.java | 8 +- .../portal/util/HibernateConfiguration.java | 8 +- .../portal/util/HibernateConfiguration2.java | 6 +- .../liferay/portal/util/HibernateUtil.java | 7 +- .../com/liferay/portal/util/PortalUtil.java | 41 +- .../portlet/PortletPreferencesSerializer.java | 29 +- .../portlet/PortletRequestDispatcherImpl.java | 19 +- .../liferay/portlet/RenderRequestImpl.java | 27 +- .../com/liferay/portlet/StrutsPortlet.java | 25 +- .../admin/action/CustomEditPortletAction.java | 6 +- .../admin/action/DeleteUserAction.java | 11 +- .../admin/action/EditPortletAction.java | 13 +- .../admin/action/EditUserProfileAction.java | 8 +- .../admin/action/KillSessionAction.java | 18 +- .../admin/action/NotifyNewUsersAction.java | 10 +- .../portlet/admin/action/ServerAction.java | 7 +- .../admin/action/UpdateUserConfigAction.java | 10 +- .../admin/ejb/AdminConfigPersistence.java | 12 +- .../portlet/admin/model/AdminConfig.java | 3 +- .../main/java/com/liferay/util/FileUtil.java | 2 +- dotCMS/src/main/java/com/liferay/util/JS.java | 3 +- .../java/com/liferay/util/LocaleUtil.java | 10 +- .../com/liferay/util/PropertyComparator.java | 6 +- .../java/com/liferay/util/PwdGenerator.java | 2 +- .../src/main/java/com/liferay/util/Xss.java | 8 +- .../util/dao/hibernate/BooleanType.java | 1 - .../dao/hibernate/DSConnectionProvider.java | 5 +- .../util/dao/hibernate/DoubleType.java | 1 - .../util/dao/hibernate/DynamicDialect.java | 11 +- .../liferay/util/dao/hibernate/FloatType.java | 1 - .../util/dao/hibernate/IntegerType.java | 1 - .../liferay/util/dao/hibernate/LongType.java | 1 - .../dao/hibernate/SessionConfiguration.java | 1 - .../liferay/util/dao/hibernate/ShortType.java | 1 - .../util/mail/MailEngineException.java | 2 +- .../com/liferay/util/poi/XLSTextStripper.java | 8 +- .../liferay/util/xml/AttributeComparator.java | 3 +- .../liferay/util/xml/ElementComparator.java | 5 +- .../java/com/liferay/util/xml/Serializer.java | 43 +- .../util/xml/XMLElementComparator.java | 3 +- .../com/liferay/util/xml/XMLFormatter.java | 14 +- .../java/com/liferay/util/xml/XMLMerger.java | 8 +- .../com/liferay/util/xml/XMLMergerRunner.java | 20 +- .../com/liferay/util/xml/XMLTypeDetector.java | 3 +- .../xml/descriptor/FacesXMLDescriptor.java | 3 +- .../xml/descriptor/PortletAppDescriptor.java | 3 +- .../xml/descriptor/SimpleXMLDescriptor.java | 5 +- .../xml/descriptor/StrictXMLDescriptor.java | 12 +- .../descriptor/StrutsConfigDescriptor.java | 3 +- .../xml/descriptor/TilesDefsDescriptor.java | 3 +- .../util/xml/descriptor/WebXMLDescriptor.java | 3 +- .../util/xml/descriptor/XMLDescriptor.java | 4 +- .../apache/velocity/anakia/AnakiaElement.java | 14 +- .../velocity/anakia/AnakiaJDOMFactory.java | 14 +- .../apache/velocity/anakia/AnakiaTask.java | 12 +- .../org/apache/velocity/anakia/NodeList.java | 21 +- .../apache/velocity/anakia/OutputWrapper.java | 7 +- .../apache/velocity/anakia/TreeWalker.java | 3 +- .../apache/velocity/anakia/XPathCache.java | 2 +- .../org/apache/velocity/anakia/XPathTool.java | 9 +- .../org/apache/velocity/app/Velocity.java | 6 +- .../apache/velocity/app/VelocityEngine.java | 6 +- .../event/implement/EscapeHtmlReference.java | 2 +- .../implement/EscapeJavaScriptReference.java | 2 +- .../app/event/implement/EscapeReference.java | 7 +- .../event/implement/EscapeSqlReference.java | 2 +- .../event/implement/EscapeXmlReference.java | 2 +- .../org/apache/velocity/convert/WebMacro.java | 5 +- .../org/apache/velocity/runtime/Runtime.java | 16 +- .../velocity/runtime/RuntimeInstance.java | 10 +- .../velocity/runtime/RuntimeServices.java | 3 +- .../velocity/runtime/RuntimeSingleton.java | 3 +- .../velocity/runtime/VelocimacroFactory.java | 11 +- .../velocity/runtime/directive/Block.java | 6 +- .../runtime/directive/RuntimeMacro.java | 10 +- .../velocity/runtime/parser/Parser.java | 59 +- .../runtime/parser/ParserTokenManager.java | 14 +- .../runtime/parser/node/ASTDirective.java | 8 +- .../runtime/parser/node/ASTMethod.java | 10 +- .../runtime/parser/node/ASTStringLiteral.java | 8 +- .../runtime/parser/node/NodeUtils.java | 2 +- .../runtime/parser/node/PropertyExecutor.java | 6 +- .../parser/node/SetPropertyExecutor.java | 8 +- .../runtime/resource/ResourceCacheImpl.java | 6 +- .../runtime/resource/ResourceManagerImpl.java | 22 +- .../loader/ClasspathResourceLoader.java | 8 +- .../loader/DataSourceResourceLoader.java | 9 +- .../resource/loader/FileResourceLoader.java | 6 +- .../resource/loader/JarResourceLoader.java | 17 +- .../resource/loader/ResourceLoader.java | 10 +- .../resource/loader/StringResourceLoader.java | 15 +- .../resource/loader/URLResourceLoader.java | 13 +- .../apache/velocity/texen/ant/TexenTask.java | 2 +- .../velocity/tools/generic/EscapeTool.java | 2 +- .../velocity/tools/generic/MathTool.java | 2 +- .../velocity/tools/generic/SortTool.java | 8 +- .../tools/struts/ActionMessagesTool.java | 7 +- .../velocity/tools/struts/ErrorsTool.java | 4 +- .../velocity/tools/struts/FormTool.java | 11 +- .../tools/struts/MessageResourcesTool.java | 4 +- .../velocity/tools/struts/MessageTool.java | 2 +- .../velocity/tools/struts/SecureLinkTool.java | 10 +- .../velocity/tools/struts/StrutsUtils.java | 29 +- .../velocity/tools/struts/TilesTool.java | 29 +- .../velocity/tools/struts/ValidatorTool.java | 32 +- .../velocity/tools/view/ToolboxRuleSet.java | 10 +- .../tools/view/XMLToolboxManager.java | 5 +- .../view/servlet/ServletToolboxManager.java | 19 +- .../view/servlet/ServletToolboxRuleSet.java | 6 +- .../velocity/tools/view/tools/LinkTool.java | 6 +- .../velocity/util/introspection/ClassMap.java | 5 +- .../main/resources/META-INF/portal-log4j.xml | 2 +- dotCMS/src/main/resources/stxx.properties | 28 +- dotCMS/src/main/webapp/META-INF/context.xml | 4 +- .../main/webapp/WEB-INF/jsp/rules/include.jsp | 2 +- .../main/webapp/WEB-INF/jsp/rules/render.jsp | 2 +- .../WEB-INF/jsp/tag_manager/tag_manager.jsp | 4 +- .../WEB-INF/messages/Language.properties | 11 + .../src/main/webapp/WEB-INF/struts-config.xml | 4 +- .../webapp/WEB-INF/tld/old/struts-html.tld | 58 +- .../webapp/WEB-INF/tld/old/struts-logic.tld | 36 +- .../webapp/WEB-INF/tld/old/struts-nested.tld | 90 +- .../main/webapp/WEB-INF/tld/struts-html.tld | 58 +- .../main/webapp/WEB-INF/tld/struts-logic.tld | 36 +- .../main/webapp/WEB-INF/tld/struts-nested.tld | 90 +- .../main/webapp/WEB-INF/tld/struts-tiles.tld | 22 +- .../main/webapp/WEB-INF/validator-rules.xml | 156 +- .../comments/comments_email_template.html | 72 - .../static/comments/listcomments.html | 298 - ...nt_change_notification_email_template.html | 74 - .../static/events/calendar_month.html | 86 - .../velocity/static/events/detail_list.html | 49 - .../event_change_notification_email.html | 89 - .../velocity/static/events/event_detail.html | 47 - .../events/event_reg_confimation_email.vtl | 22 - .../events/event_reg_notification_email.vtl | 22 - .../static/events/event_registration_form.vtl | 108 - .../events/event_registration_successful.vtl | 9 - .../events/event_submit_info_email.html | 77 - .../events/events_calendar_detail_view.vtl | 143 - .../events/events_calendar_list_view.vtl | 149 - .../events/events_calendar_monthly_view.vtl | 173 - .../static/events/events_homepage_list.vtl | 11 - .../velocity/static/events/events_list.vtl | 31 - .../static/events/featured_events.html | 19 - .../htmlpage_assets/template_custom_field.vtl | 10 +- .../static/login_challenge_question.html | 98 - .../WEB-INF/velocity/static/login_form.html | 102 - .../WEB-INF/velocity/static/messages.html | 47 - .../velocity/static/my_groups/my_groups.html | 16 - .../myaccount/activation_link_email.html | 84 - .../static/myaccount/edit_user_address.html | 171 - .../myaccount/edit_user_categories.html | 54 - .../static/myaccount/edit_user_info.html | 158 - .../myaccount/edit_user_organization.html | 340 - .../myaccount/eventRegistrationDetail.html | 281 - .../velocity/static/myaccount/my_account.html | 151 - .../orderAndRegistrationHistory.html | 101 - .../static/myaccount/pending_messages.html | 217 - .../myaccount/product_order_detail.html | 216 - .../static/myaccount/viewed_messages.html | 117 - .../velocity/static/navigation/list_menus.vtl | 69 - .../WEB-INF/velocity/static/subscribe.html | 160 - .../static/user_account/activate_account.html | 5 - .../user_account/activation_link_email.html | 84 - .../user_account/challenge_question.html | 53 - .../static/user_account/create_account.html | 202 - .../user_account/dmu_request_information.html | 282 - .../static/user_account/forgot_password.html | 27 - .../user_account/forgot_password_email.html | 78 - .../static/user_account/login_form.html | 174 - .../static/user_account/my_account.html | 144 - .../static/user_account/reset_password.html | 25 - .../reset_password_link_email.html | 83 - .../workflow/workflow_email_template.html | 94 - .../main/webapp/html/common/init-basic.jsp | 2 +- dotCMS/src/main/webapp/html/common/init.jsp | 6 +- .../main/webapp/html/common/messages_inc.jsp | 14 +- .../main/webapp/html/common/top_js_inc.jsp | 2 +- .../webapp/html/error/custom-error-page.jsp | 2 +- .../js/dotcms/dijit/form/ContentSelector.js | 20 +- .../dijit/form/ContentSelectorContent.jsp | 3 + .../webapp/html/ng-contentlet-selector.jsp | 108 +- dotCMS/src/main/webapp/html/portal/init.jsp | 6 +- .../webapp/html/portal/view_portlet_inc.jsp | 2 +- .../ext/browser/view_browser_js_inc.jsp | 4 +- .../ext/browser/view_browser_menus_js_inc.jsp | 4 +- .../html/portlet/ext/cmsconfig/license.jsp | 2 +- .../ext/contentlet/contentlet_actions_inc.jsp | 17 +- .../contentlet/contentlet_actions_wrapper.jsp | 4 +- .../contentlet/contentlet_versions_inc.jsp | 17 +- .../ext/contentlet/edit_contentlet.jsp | 105 +- .../ext/contentlet/edit_contentlet_js_inc.jsp | 2 +- .../ext/contentlet/field/edit_field.jsp | 4 +- .../html/portlet/ext/contentlet/init.jsp | 1 - .../ext/contentlet/order_contentlets.jsp | 2 +- .../publishing/edit_publish_bundle.jsp | 2 +- .../publishing/view_publish_audit_list.jsp | 2 +- .../publishing/view_publish_content_list.jsp | 2 +- .../publishing/view_publish_queue_list.jsp | 2 +- .../publishing/view_unpushed_bundles.jsp | 2 +- .../html/portlet/ext/contentlet/sub_nav.jsp | 1 + .../ext/dashboard/host_properties_tab_inc.jsp | 2 +- .../rel_content_properties_tab_inc.jsp | 2 +- .../portlet/ext/usermanager/load_users.jsp | 2 +- .../ext/usermanager/search_form_inc.jsp | 2 +- .../ext/workflows/schemes/view_action.jsp | 25 +- .../ext/workflows/schemes/workflow.css | 6 +- .../ext/workflows/schemes/workflow_js.jsp | 16 +- .../portlet/ext/workflows/view_tasks_list.jsp | 2 +- dotCMS/src/main/webapp/html/test.jsp | 10 + .../business/ESIndexHelperTest.java | 12 +- .../java/com/dotcms/rest/RestUtilTest.java | 19 +- .../ForgotPasswordResourceTest.java | 32 +- .../rest/api/v1/site/SiteResourceTest.java | 29 +- .../rest/api/v1/user/UserResourceTest.java | 25 +- .../cache/provider/h22/H22CacheTest.java | 17 +- .../util/BaseMessageResources.java | 10 +- dotcms3.sql | 9801 +++++++++++++++++ 692 files changed, 15500 insertions(+), 10244 deletions(-) create mode 100644 dotCMS/src/main/java/com/dotcms/contenttype/model/field/ColumnField.java create mode 100644 dotCMS/src/main/java/com/dotcms/contenttype/model/field/RowField.java create mode 100644 dotCMS/src/main/java/com/dotcms/osgi/OSGIConstants.java create mode 100644 dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VelocityResourceKey.java create mode 100644 dotCMS/src/main/java/com/dotcms/tika/TikaProxyService.java create mode 100644 dotCMS/src/main/java/com/dotcms/tika/TikaServiceBuilder.java create mode 100644 dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/hook/HTMLPageHook.java create mode 100644 dotCMS/src/main/java/com/dotmarketing/portlets/templates/design/bean/SidebarWidthValue.java create mode 100644 dotCMS/src/main/java/com/dotmarketing/startup/runonce/Task04330CreateSystemWorkflow.java delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/comments/comments_email_template.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/comments/listcomments.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/contents/content_change_notification_email_template.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/calendar_month.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/detail_list.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_change_notification_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_detail.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_reg_confimation_email.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_reg_notification_email.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_registration_form.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_registration_successful.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/event_submit_info_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/events_calendar_detail_view.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/events_calendar_list_view.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/events_calendar_monthly_view.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/events_homepage_list.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/events_list.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/events/featured_events.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/login_challenge_question.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/login_form.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/messages.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/my_groups/my_groups.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/activation_link_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/edit_user_address.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/edit_user_categories.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/edit_user_info.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/edit_user_organization.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/eventRegistrationDetail.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/my_account.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/orderAndRegistrationHistory.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/pending_messages.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/product_order_detail.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/myaccount/viewed_messages.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/navigation/list_menus.vtl delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/subscribe.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/activate_account.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/activation_link_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/challenge_question.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/create_account.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/dmu_request_information.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/forgot_password.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/forgot_password_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/login_form.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/my_account.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/reset_password.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/user_account/reset_password_link_email.html delete mode 100644 dotCMS/src/main/webapp/WEB-INF/velocity/static/workflow/workflow_email_template.html create mode 100644 dotCMS/src/main/webapp/html/test.jsp create mode 100644 dotcms3.sql diff --git a/dotCMS/build.gradle b/dotCMS/build.gradle index dca25ad75864..993b87de4ffa 100644 --- a/dotCMS/build.gradle +++ b/dotCMS/build.gradle @@ -127,11 +127,22 @@ eclipse.project { dependencies { /***** Felix libs need to be placed in the WEB-INF/felix/bundle directory. This was previously handled using a pre-build copy task. *****/ - felix group: 'org.apache.felix', name: 'org.apache.felix.bundlerepository', version:'2.0.8' + felix (group: 'org.apache.felix', name: 'org.apache.felix.bundlerepository', version:'2.0.8') { + exclude(group: 'org.easymock') + } felix group: 'org.apache.felix', name: 'org.apache.felix.fileinstall', version:'3.5.8' felix group: 'org.apache.felix', name: 'org.apache.felix.gogo.command', version:'1.0.2' felix group: 'org.apache.felix', name: 'org.apache.felix.gogo.runtime', version:'1.0.2' felix group: 'org.apache.felix', name: 'org.apache.felix.gogo.shell', version:'1.0.0' + felix (group: 'org.apache.tika', name: 'tika-core', version: '1.17'){ + transitive = false + } + felix (group: 'org.apache.tika', name: 'tika-bundle', version: '1.17'){ + transitive = false + } + felix group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.24' + felix group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.7.25' + felix group: 'com.dotcms.tika', name: 'com.dotcms.tika', version: '0.1' /**** And now the libs we pull in from internal company sources - libs stored in ./plugins, ./bin, ./libs, the starter site, etc. ****/ compile fileTree("src/main/plugins/com.dotcms.config/build/jar").include('plugin-com.dotcms.config.jar') diff --git a/dotCMS/dependencies.gradle b/dotCMS/dependencies.gradle index 7daaba402e89..8c0a8be96a3a 100644 --- a/dotCMS/dependencies.gradle +++ b/dotCMS/dependencies.gradle @@ -24,39 +24,31 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.bsh', version:'2.0b4_3' compile 'net.bytebuddy:byte-buddy:1.6.12' compile 'net.bytebuddy:byte-buddy-agent:1.6.12' - compile group: 'com.dotcms.lib', name: 'dot.cactus.integration.ant', version:'1.8.0_2' + compile group: 'com.dotcms.lib', name: 'dot.cactus.integration.ant', version:'1.8.0_3' compile group: 'com.dotcms.lib', name: 'dot.cargo-ant', version:'0.9_2' compile group: 'com.dotcms.lib', name: 'dot.cargo-core-uberjar', version:'0.9_2' - compile group: 'com.dotcms.lib', name: 'dot.castor', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.cglib-nodep', version:'2.2_2' compile group: 'com.dotcms.lib', name: 'dot.com.dotmarketing.jhlabs.images.filters', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-beanutils', version:'1.6.1_2' compile group: 'com.dotcms.lib', name: 'dot.commons-cli', version:'1.2_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-collections', version:'3.2_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-configuration', version:'1.0_2' compile group: 'com.dotcms.lib', name: 'dot.commons-dbcp', version:'1.3_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-digester', version:'1.7_2' compile group: 'com.dotcms.lib', name: 'dot.commons-fileupload', version:'1.2_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-httpclient', version:'3.1_2' + compile group: 'com.dotcms.lib', name: 'dot.commons-httpclient', version:'3.1_3' compile group: 'com.dotcms.lib', name: 'dot.commons-io', version:'2.0.1_2' compile group: 'com.dotcms.lib', name: 'dot.commons-jci-core', version:'1.0.406301_2' compile group: 'com.dotcms.lib', name: 'dot.commons-jci-eclipse', version:'3.2.0.666_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-lang', version:'2.4_2' compile group: 'com.dotcms.lib', name: 'dot.commons-net', version:'3.3_2' compile group: 'com.dotcms.lib', name: 'dot.commons-pool', version:'1.5.4_2' - compile group: 'com.dotcms.lib', name: 'dot.commons-validator', version:'1.1.3_2' compile group: 'com.dotcms.lib', name: 'dot.compression-filter', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.concurrent', version:'1.3.4_2' compile group: 'com.dotcms.lib', name: 'dot.core-renderer-modified', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.cos', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.counter-ejb', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.daisydiff', version:'ukv_2' + compile group: 'com.dotcms.lib', name: 'dot.daisydiff', version:'ukv_3' compile group: 'com.dotcms.lib', name: 'dot.dnsjava', version:'2.0.8_2' compile group: 'com.dotcms.lib', name: 'dot.drools-compiler', version:'3.0.5_2' compile group: 'com.dotcms.lib', name: 'dot.drools-core', version:'3.0.5_2' compile group: 'com.dotcms.lib', name: 'dot.drools-decisiontables', version:'3.0.5_2' compile group: 'com.dotcms.lib', name: 'dot.drools-jsr94', version:'3.0.5_2' - compile group: 'com.dotcms.lib', name: 'dot.dwr', version:'3rc2modified_2' + compile group: 'com.dotcms.lib', name: 'dot.dwr', version:'3rc2modified_3' compile group: 'com.dotcms.lib', name: 'dot.elasticsearch', version:'1.7.3_1' compile group: 'com.dotcms.lib', name: 'dot.fileupload-ext', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.fop', version:'0.20.1_3' @@ -67,7 +59,7 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.hadoop-dev-core', version:'0.20.3_2' compile group: 'com.dotcms.lib', name: 'dot.hadoop-dev-tools', version:'0.20.3_2' compile group: 'com.hazelcast', name: 'hazelcast-all', version: '3.9.2' - compile group: 'com.dotcms.lib', name: 'dot.hibernate', version:'2.1.7_2' + compile group: 'com.dotcms.lib', name: 'dot.hibernate', version:'2.1.7_3' compile group: 'com.dotcms.lib', name: 'dot.httpbridge', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.httpclient', version:'4.2.2_2' compile group: 'com.dotcms.lib', name: 'dot.httpcore', version:'4.2.2_2' @@ -83,9 +75,9 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.jamm', version:'0.2.5_2' compile group: 'com.dotcms.lib', name: 'dot.jasperreports', version:'3.5.0_1' compile group: 'com.dotcms.lib', name: 'dot.javacsv', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.jaxb-api', version:'2.2.7_3' - compile group: 'com.dotcms.lib', name: 'dot.jaxb-core', version:'2.2.7_3' - compile group: 'com.dotcms.lib', name: 'dot.jaxb-impl', version:'2.2.7_3' + compile group: 'com.dotcms.lib', name: 'dot.jaxb-api', version:'2.2.7_4' + compile group: 'com.dotcms.lib', name: 'dot.jaxb-core', version:'2.2.7_4' + compile group: 'com.dotcms.lib', name: 'dot.jaxb-impl', version:'2.2.7_4' compile group: 'com.dotcms.lib', name: 'dot.jaxen', version:'1.1.3_2' compile group: 'com.dotcms.lib', name: 'dot.jaxws-api', version:'2.2.9_2' compile group: 'com.dotcms.lib', name: 'dot.jaxws-rt', version:'2.2.8_2' @@ -95,19 +87,18 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.jcaptcha-mod', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.jempbox', version:'1.6.0_2' compile group: 'com.dotcms.lib', name: 'dot.jep', version:'2.4.1_2' - compile group: 'com.dotcms.lib', name: 'dot.jersey-client', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-common', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-container-servlet-core', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-container-servlet', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-guava', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-media-jaxb', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-media-multipart', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-media-json-jackson', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-server', version:'2.22.1_1' - compile group: 'com.dotcms.lib', name: 'dot.jersey-entity-filtering', version:'2.22.1_1' + compile group: 'com.dotcms.lib', name: 'dot.jersey-client', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-common', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-container-servlet-core', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-container-servlet', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-guava', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-media-jaxb', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-media-multipart', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-media-json-jackson', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-server', version:'2.22.1_4' + compile group: 'com.dotcms.lib', name: 'dot.jersey-entity-filtering', version:'2.22.1_4' compile group: 'com.dotcms.lib', name: 'dot.jettison', version:'1.1_2' compile group: 'com.dotcms.lib', name: 'dot.jfreechart', version:'1.0.13_2' - compile group: 'com.dotcms.lib', name: 'dot.jgroups', version:'3.6.1.Final_2' compile group: 'com.dotcms.lib', name: 'dot.jid3lib', version:'0.5.4_2' compile group: 'com.dotcms.lib', name: 'dot.JLinkPointTxn', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.json-jspellchecker-dep', version:'ukv_2' @@ -119,11 +110,10 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.jython', version:'2.2.1_2' compile group: 'com.dotcms.lib', name: 'dot.ldap', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.lesscss', version:'1.5.1-SNAPSHOT_3' - compile group: 'com.dotcms.lib', name: 'dot.log4j-1.2-api', version:'2.3_1' - compile group: 'com.dotcms.lib', name: 'dot.log4j-api', version:'2.3_1' - compile group: 'com.dotcms.lib', name: 'dot.log4j-core', version:'2.3_2' - compile group: 'com.dotcms.lib', name: 'dot.log4j-jcl', version:'2.3_1' - compile group: 'com.dotcms.lib', name: 'dot.log4j-web', version:'2.3_2' + compile group: 'com.dotcms.lib', name: 'dot.log4j-api', version:'2.3_2' + compile group: 'com.dotcms.lib', name: 'dot.log4j-core', version:'2.3_3' + compile group: 'com.dotcms.lib', name: 'dot.log4j-jcl', version:'2.3_2' + compile group: 'com.dotcms.lib', name: 'dot.log4j-web', version:'2.3_3' compile group: 'com.dotcms.lib', name: 'dot.lucene-analyzers-common', version:'4.10.4_1' compile group: 'com.dotcms.lib', name: 'dot.lucene-core', version:'4.10.4_1' compile group: 'com.dotcms.lib', name: 'dot.lucene-expressions', version:'4.10.4_1' @@ -135,21 +125,20 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.lucene-sandbox', version:'4.10.4_1' compile group: 'com.dotcms.lib', name: 'dot.lucene-suggest', version:'4.10.4_1' compile group: 'com.dotcms.lib', name: 'dot.mail-ejb', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.milton-api', version:'1.8.1.4_2' - compile group: 'com.dotcms.lib', name: 'dot.milton-servlet', version:'1.8.1.4_2' + compile group: 'com.dotcms.lib', name: 'dot.milton-api', version:'1.8.1.4_3' + compile group: 'com.dotcms.lib', name: 'dot.milton-servlet', version:'1.8.1.4_3' compile group: 'com.dotcms.lib', name: 'dot.mime-util', version:'2.1.3_2' compile group: 'com.dotcms.lib', name: 'dot.mimepull', version:'1.6_2' compile group: 'com.dotcms.lib', name: 'dot.msnm', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.myspell', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.nekohtml', version:'1.9.17_2' - compile group: 'com.dotcms.lib', name: 'dot.odmg', version:'ukv_2' + compile group: 'com.dotcms.lib', name: 'dot.odmg', version:'ukv_3' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.confluence.core', version:'1.8.0.I20120918-1109_2' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.core', version:'1.8.0.I20120918-1109_2' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.mediawiki.core', version:'1.8.0.I20120918-1109_2' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.textile.core', version:'1.8.0.I20120918-1109_2' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.tracwiki.core', version:'1.8.0.I20120918-1109_2' compile group: 'com.dotcms.lib', name: 'dot.org.eclipse.mylyn.wikitext.twiki.core', version:'1.8.0.I20120918-1109_2' - compile group: 'com.dotcms.lib', name: 'dot.oro', version:'2.0.8_2' compile group: 'com.dotcms.lib', name: 'dot.platform', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.portlet', version:'1.0_2' compile group: 'com.dotcms.lib', name: 'dot.quartz-all', version:'1.8.6_2' @@ -157,53 +146,132 @@ dependencies { compile group: 'com.dotcms.lib', name: 'dot.secure-filter', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.simplecaptcha', version:'1.2.1_2' compile group: 'com.dotcms.lib', name: 'dot.snappy-java', version:'1.0.4.1_2' - compile group: 'com.dotcms.lib', name: 'dot.sslext', version:'1.2_2' compile group: 'com.dotcms.lib', name: 'dot.stax2-api', version:'3.1.1_2' - compile group: 'com.dotcms.lib', name: 'dot.struts', version:'1.2.4_2' - compile group: 'com.dotcms.lib', name: 'dot.stxx', version:'1.3_2' - compile group: 'com.dotcms.lib', name: 'dot.tagsoup', version:'1.2_2' compile group: 'com.dotcms.lib', name: 'dot.Tidy', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.trove', version:'1.0.2_2' compile group: 'com.dotcms.lib', name: 'dot.twitter4j-core', version:'3.0.3_2' - compile group: 'com.dotcms.lib', name: 'dot.urlrewritefilter', version:'4.0.3_2' compile group: 'com.dotcms.lib', name: 'dot.util-taglib', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.Verisign', version:'ukv_2' compile group: 'com.dotcms.lib', name: 'dot.wbmp', version:'ukv_2' - compile group: 'com.dotcms.lib', name: 'dot.werken-xpath', version:'0.9.4_2' compile group: 'com.dotcms.lib', name: 'dot.woodstox-core-lgpl', version:'4.2.0_2' compile group: 'com.dotcms.lib', name: 'dot.xalan', version:'2.7.0_2' - compile group: 'com.dotcms.lib', name: 'dot.xmlpull', version:'1.1.3.1_2' compile group: 'com.dotcms.lib', name: 'dot.xpp3-min', version:'1.1.4c_2' - compile group: 'com.dotcms.lib', name: 'dot.xstream', version:'1.4.8_2' compile group: 'com.dotcms.lib', name: 'dot.slf4j-api', version:'1.7.12_2' compile group: 'com.dotcms.lib', name: 'dot.slf4j-jcl', version:'1.7.12_2' - compile group: 'com.dotcms.lib', name: 'dot.tika-app', version:'1.3_3' + compile (group: 'xerces', name: 'xercesImpl', version: '2.11.0'){ + transitive = false + } + compile (group: 'org.apache.commons', name: 'commons-compress', version: '1.15'){ + transitive = false + } + compile (group: 'commons-digester', name: 'commons-digester', version: '2.1'){ + transitive = false + } + compile (group: 'commons-validator', name: 'commons-validator', version: '1.6'){ + transitive = false + } + compile (group: 'commons-collections', name: 'commons-collections', version: '3.2.2'){ + transitive = false + } + compile (group: 'commons-configuration', name: 'commons-configuration', version: '1.10'){ + transitive = false + } + compile (group: 'commons-lang', name: 'commons-lang', version: '2.6'){ + transitive = false + } + compile (group: 'org.apache.commons', name: 'commons-lang3', version: '3.4'){ + transitive = false + } + compile (group: 'commons-beanutils', name: 'commons-beanutils', version: '1.6.1'){ + transitive = false + } + compile (group: 'org.jdom', name: 'jdom', version: '1.1.3'){ + transitive = false + } + compile (group: 'dom4j', name: 'dom4j', version: '1.6.1'){ + transitive = false + } + compile (group: 'org.apache.poi', name: 'poi', version: '3.17'){ + transitive = false + } + compile (group: 'com.googlecode.juniversalchardet', name: 'juniversalchardet', version: '1.0.3'){ + transitive = false + } + compile (group: 'org.ccil.cowan.tagsoup', name: 'tagsoup', version: '1.2.1'){ + transitive = false + } + compile (group: 'org.codehaus.castor', name: 'castor-core', version: '1.4.1'){ + transitive = false + } + compile (group: 'org.codehaus.castor', name: 'castor-xml', version: '1.4.1'){ + transitive = false + } + compile (group: 'werken-xpath', name: 'werken-xpath', version: '0.9.4'){ + transitive = false + } + compile (group: 'org.jgroups', name: 'jgroups', version: '3.6.1.Final'){ + transitive = false + } + compile (group: 'org.tuckey', name: 'urlrewritefilter', version: '4.0.4'){ + transitive = false + } + compile (group: 'struts', name: 'struts', version: '1.2.4'){ + transitive = false + } + compile (group: 'stxx', name: 'stxx', version: '1.3'){ + transitive = false + } + compile (group: 'oro', name: 'oro', version: '2.0.8'){ + transitive = false + } + compile (group: 'sslext', name: 'sslext', version: '1.2-0'){ + transitive = false + } + compile (group: 'cglib', name: 'cglib-nodep', version: '3.2.6'){ + transitive = false + } + compile (group: 'com.thoughtworks.xstream', name: 'xstream', version: '1.4.8'){ + transitive = false + } + compile (group: 'xmlpull', name: 'xmlpull', version: '1.1.3.1'){ + transitive = false + } + compile (group: 'org.glassfish.hk2', name: 'hk2-locator', version: '2.4.0'){ + transitive = false + } + compile (group: 'org.glassfish.hk2', name: 'hk2-utils', version: '2.4.0'){ + transitive = false + } + compile (group: 'org.glassfish.hk2', name: 'hk2-api', version: '2.4.0'){ + transitive = false + } + compile (group: 'org.glassfish.hk2.external', name: 'javax.inject', version: '2.4.0-b10'){ + transitive = false + } + compile (group: 'org.javassist', name: 'javassist', version: '3.22.0-GA'){ + transitive = false + } + compile group: 'redis.clients', name: 'jedis', version:'2.7.3' compile group: 'org.apache.commons', name: 'commons-pool2', version:'2.0' compile group: 'com.dotcms.lib', name: 'dot.maxmind-db', version:'1.0.0_2' - compile group: 'org.openjdk.jmh', name: 'jmh-core', version:'0.1' compile group: 'com.dotcms.lib', name: 'dot.geoip2', version:'2.1.0_2' compile group: 'com.dotcms.lib', name: 'dot.aopalliance-repackaged', version:'2.4.0-b10_2' - compile group: 'com.dotcms.lib', name: 'dot.hk2-api', version:'2.4.0-b10_2' - compile group: 'com.dotcms.lib', name: 'dot.hk2-locator', version:'2.4.0-b10_2' - compile group: 'com.dotcms.lib', name: 'dot.hk2-utils', version:'2.4.0-b10_2' - compile group: 'com.dotcms.lib', name: 'dot.javassist', version:'3.18.1-GA_2' compile group: 'com.dotcms.lib', name: 'dot.javax.annotation-api', version:'1.2_2' - compile group: 'com.dotcms.lib', name: 'dot.javax.inject', version:'2.4.0-b10_2' compile group: 'com.dotcms.lib', name: 'dot.javax.ws.rs-api', version:'2.0.1_2' compile group: 'com.dotcms.lib', name: 'dot.persistence-api', version:'1.0_2' compile group: 'com.dotcms.lib', name: 'dot.validation-api', version:'1.1.0.Final_2' - compile group: 'com.dotcms.lib', name: 'dot.hibernate-validator', version:'4.3.2.Final_2' + compile group: 'com.dotcms.lib', name: 'dot.hibernate-validator', version:'4.3.2.Final_3' compile group: 'com.dotcms.lib', name: 'dot.jboss-logging', version:'3.3.0.Final_2' compile group: 'com.dotcms.lib', name: 'dot.txtmark', version:'0.14-SNAPSHOT_1' compile group: 'com.dotcms.lib', name: 'dot.HikariCP', version:'2.4.6_1' // AWS Libraries - compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-core', version:'1.11.66_1' - compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-kms', version:'1.11.66_1' - compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-s3', version:'1.11.66_1' - compile group: 'com.dotcms.lib', name: 'dot.jmespath-java', version:'1.11.66_1' + compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-core', version:'1.11.66_2' + compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-kms', version:'1.11.66_2' + compile group: 'com.dotcms.lib', name: 'dot.aws-java-sdk-s3', version:'1.11.66_2' + compile group: 'com.dotcms.lib', name: 'dot.jmespath-java', version:'1.11.66_2' compile group: 'org.springframework', name: 'spring-asm', version:'3.1.0.RELEASE' @@ -245,6 +313,7 @@ dependencies { } compile group: 'com.dotcms.lib', name: 'compass-gems', version:'1.0.3_1' compile group: 'org.jruby', name: 'jruby-complete', version:'1.7.19' + compile group: 'com.h2database', name: 'h2', version:'1.3.176' compile group: 'eu.bitwalker', name: 'UserAgentUtils', version:'1.19' @@ -352,4 +421,6 @@ dependencies { compile 'org.immutables:gson:2.3.3' compile group: 'org.aspectj', name: 'aspectjrt', version:'1.8.10' -} + compile group: 'io.bit3', name: 'jsass', version: '5.5.4' + +} \ No newline at end of file diff --git a/dotCMS/src/functional-test/java/com/dotmarketing/listeners/TestXmlRingingListener.java b/dotCMS/src/functional-test/java/com/dotmarketing/listeners/TestXmlRingingListener.java index 985019837544..7d26d28c5611 100644 --- a/dotCMS/src/functional-test/java/com/dotmarketing/listeners/TestXmlRingingListener.java +++ b/dotCMS/src/functional-test/java/com/dotmarketing/listeners/TestXmlRingingListener.java @@ -1,10 +1,5 @@ package com.dotmarketing.listeners; -import com.dotcms.repackage.org.dom4j.Document; -import com.dotcms.repackage.org.dom4j.DocumentHelper; -import com.dotcms.repackage.org.dom4j.Element; -import com.dotcms.repackage.org.dom4j.io.OutputFormat; -import com.dotcms.repackage.org.dom4j.io.XMLWriter; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; @@ -20,6 +15,11 @@ import java.util.Date; import java.util.regex.Pattern; import javax.servlet.http.HttpServletResponse; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.XMLWriter; import org.junit.runner.Description; import org.junit.runner.Result; import org.junit.runner.notification.Failure; diff --git a/dotCMS/src/functional-test/resources/build-tests.xml b/dotCMS/src/functional-test/resources/build-tests.xml index 7e18cc345138..eb463ef461c3 100644 --- a/dotCMS/src/functional-test/resources/build-tests.xml +++ b/dotCMS/src/functional-test/resources/build-tests.xml @@ -6,11 +6,10 @@ - + - diff --git a/dotCMS/src/integration-test/java/com/dotcms/IntegrationTestBase.java b/dotCMS/src/integration-test/java/com/dotcms/IntegrationTestBase.java index 7e83ed7c696b..a4fcfa4f05dc 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/IntegrationTestBase.java +++ b/dotCMS/src/integration-test/java/com/dotcms/IntegrationTestBase.java @@ -1,6 +1,5 @@ package com.dotcms; -import com.dotcms.repackage.net.sf.hibernate.HibernateException; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.Role; @@ -24,6 +23,7 @@ import java.io.UnsupportedEncodingException; import java.sql.SQLException; import java.util.List; +import com.dotcms.repackage.net.sf.hibernate.HibernateException; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.Assert; diff --git a/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/ContentTypeAPIImplTest.java b/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/ContentTypeAPIImplTest.java index c5cd308bc278..3e59fff8588d 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/ContentTypeAPIImplTest.java +++ b/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/ContentTypeAPIImplTest.java @@ -17,7 +17,6 @@ import com.dotcms.contenttype.model.type.ContentTypeBuilder; import com.dotcms.contenttype.model.type.Expireable; import com.dotcms.contenttype.model.type.UrlMapable; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; @@ -31,6 +30,7 @@ import java.util.Date; import java.util.List; import java.util.UUID; +import org.apache.commons.lang.StringUtils; import org.junit.Assert; import org.junit.Test; diff --git a/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/DeleteFieldJobTest.java b/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/DeleteFieldJobTest.java index 46e3991639f2..dfb6da9a9a59 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/DeleteFieldJobTest.java +++ b/dotCMS/src/integration-test/java/com/dotcms/contenttype/test/DeleteFieldJobTest.java @@ -1,15 +1,7 @@ package com.dotcms.contenttype.test; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.junit.Assert; -import org.junit.Test; - import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.field.ImmutableBinaryField; import com.dotcms.contenttype.model.field.ImmutableCategoryField; @@ -39,7 +31,6 @@ import com.dotcms.contenttype.model.type.ContentTypeBuilder; import com.dotcms.contenttype.model.type.SimpleContentType; import com.dotcms.contenttype.transform.field.LegacyFieldTransformer; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.CollectionsUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; @@ -49,6 +40,12 @@ import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.quartz.job.DeleteFieldJob; import com.dotmarketing.quartz.job.TestJobExecutor; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.junit.Assert; +import org.junit.Test; /** * diff --git a/dotCMS/src/integration-test/java/com/dotcms/notification/business/NotificationAPITest.java b/dotCMS/src/integration-test/java/com/dotcms/notification/business/NotificationAPITest.java index b97b513bc5ef..1f218360eb68 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/notification/business/NotificationAPITest.java +++ b/dotCMS/src/integration-test/java/com/dotcms/notification/business/NotificationAPITest.java @@ -1,5 +1,10 @@ package com.dotcms.notification.business; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + import com.dotcms.IntegrationTestBase; import com.dotcms.api.system.event.Visibility; import com.dotcms.concurrent.DotConcurrentFactory; @@ -11,7 +16,6 @@ import com.dotcms.notifications.business.NotificationAPIImpl; import com.dotcms.notifications.business.NotificationFactory; import com.dotcms.notifications.dto.NotificationDTO; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.IntegrationTestInitService; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.FactoryLocator; @@ -22,13 +26,15 @@ import com.dotmarketing.exception.DotHibernateException; import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import org.apache.commons.lang.StringUtils; import org.junit.BeforeClass; import org.junit.Test; -import java.util.*; - -import static org.junit.Assert.*; - /** * * @author Daniel Silva diff --git a/dotCMS/src/integration-test/java/com/dotcms/publisher/endpoint/business/PublishingEndPointFactoryImplTest.java b/dotCMS/src/integration-test/java/com/dotcms/publisher/endpoint/business/PublishingEndPointFactoryImplTest.java index 778309388cfb..09c7695b503c 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/publisher/endpoint/business/PublishingEndPointFactoryImplTest.java +++ b/dotCMS/src/integration-test/java/com/dotcms/publisher/endpoint/business/PublishingEndPointFactoryImplTest.java @@ -1,14 +1,11 @@ package com.dotcms.publisher.endpoint.business; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import com.dotcms.util.IntegrationTestInitService; - -import static com.dotcms.repackage.org.jgroups.util.Util.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import org.junit.BeforeClass; +import org.junit.Test; public class PublishingEndPointFactoryImplTest { diff --git a/dotCMS/src/integration-test/java/com/dotcms/util/IntegrationTestInitService.java b/dotCMS/src/integration-test/java/com/dotcms/util/IntegrationTestInitService.java index b0e5314c2913..a3a5536478e5 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/util/IntegrationTestInitService.java +++ b/dotCMS/src/integration-test/java/com/dotcms/util/IntegrationTestInitService.java @@ -1,17 +1,15 @@ package com.dotcms.util; import com.dotcms.config.DotInitializationService; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.config.ModuleConfig; -import com.dotcms.repackage.org.apache.struts.config.ModuleConfigFactory; -import com.liferay.util.SystemProperties; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.util.Config; - +import com.liferay.util.SystemProperties; import java.util.concurrent.atomic.AtomicBoolean; - +import org.apache.struts.Globals; +import org.apache.struts.config.ModuleConfig; +import org.apache.struts.config.ModuleConfigFactory; import org.mockito.Mockito; /** diff --git a/dotCMS/src/integration-test/java/com/dotcms/uuid/shorty/TestShortyIdApi.java b/dotCMS/src/integration-test/java/com/dotcms/uuid/shorty/TestShortyIdApi.java index c3afc0acd424..10b2d2ca4455 100644 --- a/dotCMS/src/integration-test/java/com/dotcms/uuid/shorty/TestShortyIdApi.java +++ b/dotCMS/src/integration-test/java/com/dotcms/uuid/shorty/TestShortyIdApi.java @@ -1,22 +1,20 @@ package com.dotcms.uuid.shorty; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - import com.dotcms.repackage.com.google.common.collect.ImmutableList; import com.dotcms.repackage.com.google.common.collect.ImmutableList.Builder; -import com.dotcms.repackage.org.apache.commons.lang.RandomStringUtils; import com.dotcms.util.IntegrationTestInitService; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.exception.DotDataException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.apache.commons.lang.RandomStringUtils; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; /** * Integration tests for the Shorty ID API class. diff --git a/dotCMS/src/integration-test/java/com/dotmarketing/business/cache/provider/guava/CachePerformanceTest.java b/dotCMS/src/integration-test/java/com/dotmarketing/business/cache/provider/guava/CachePerformanceTest.java index 7724811d6f13..60de79df7aa7 100644 --- a/dotCMS/src/integration-test/java/com/dotmarketing/business/cache/provider/guava/CachePerformanceTest.java +++ b/dotCMS/src/integration-test/java/com/dotmarketing/business/cache/provider/guava/CachePerformanceTest.java @@ -2,26 +2,22 @@ import static org.hamcrest.MatcherAssert.assertThat; +import com.dotmarketing.business.cache.provider.CacheProvider; +import com.dotmarketing.business.cache.provider.CacheProviderStats; +import com.dotmarketing.business.cache.provider.CacheStats; +import com.dotmarketing.business.cache.provider.hazelcast.HazelcastCacheProviderEmbedded; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UtilMethods; +import com.hazelcast.nio.serialization.HazelcastSerializationException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; - -import com.dotmarketing.business.cache.provider.CacheProviderStats; -import com.dotmarketing.business.cache.provider.CacheStats; -import com.dotmarketing.util.UtilMethods; +import org.apache.commons.lang.RandomStringUtils; import org.junit.Test; -import com.dotcms.repackage.org.apache.commons.lang.RandomStringUtils; -import com.dotcms.repackage.org.apache.log4j.Logger; -import com.dotmarketing.business.cache.provider.CacheProvider; -import com.dotmarketing.business.cache.provider.hazelcast.HazelcastCacheProviderClient; -import com.dotmarketing.business.cache.provider.hazelcast.HazelcastCacheProviderEmbedded; -import com.hazelcast.nio.serialization.HazelcastSerializationException; - - public class CachePerformanceTest { final String[] GROUPNAMES = {"testGroup", "testGroup2", "myBigGroup"}; @@ -35,7 +31,6 @@ public class CachePerformanceTest { final int numberOfThreads = 20; final int numberOfGroups = 10; final int maxCharOfObjects = 50000; - private static final Logger LOGGER = Logger.getLogger("ROOT"); private final long startTime = System.currentTimeMillis(); // Class provider = GuavaCache.class; @@ -44,10 +39,6 @@ public class CachePerformanceTest { @Test public void testInit() throws Exception { - LOGGER.info("INFO TEST"); - LOGGER.debug("DEBUG TEST"); - LOGGER.error("ERROR TEST"); - CacheProvider cache =(CacheProvider) provider.newInstance(); cache.init(); @@ -102,23 +93,31 @@ public void testInit() throws Exception { // test causing an error and recovering - LOGGER.info("Total Memory Available : " + UtilMethods.prettyByteify( Runtime.getRuntime().maxMemory())); - LOGGER.info("Memory Allocated : " + UtilMethods.prettyByteify( Runtime.getRuntime().totalMemory())); - LOGGER.info("Filled Memory : " + UtilMethods.prettyByteify( Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() )); - LOGGER.info("Free Memory : " + UtilMethods.prettyByteify( Runtime.getRuntime().freeMemory() )); + Logger.info(this.getClass(), "Total Memory Available : " + UtilMethods + .prettyByteify(Runtime.getRuntime().maxMemory())); + Logger.info(this.getClass(), + "Memory Allocated : " + UtilMethods.prettyByteify(Runtime.getRuntime().totalMemory())); + Logger.info(this.getClass(), "Filled Memory : " + UtilMethods + .prettyByteify(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())); + Logger.info(this.getClass(), + "Free Memory : " + UtilMethods.prettyByteify(Runtime.getRuntime().freeMemory())); testMultithreaded(cache, numberOfThreads, false, true, false); - LOGGER.info("Total Memory Available : " + UtilMethods.prettyByteify( Runtime.getRuntime().maxMemory())); - LOGGER.info("Memory Allocated : " + UtilMethods.prettyByteify( Runtime.getRuntime().totalMemory())); - LOGGER.info("Filled Memory : " + UtilMethods.prettyByteify( Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() )); - LOGGER.info("Free Memory : " + UtilMethods.prettyByteify( Runtime.getRuntime().freeMemory() )); + Logger.info(this.getClass(), "Total Memory Available : " + UtilMethods + .prettyByteify(Runtime.getRuntime().maxMemory())); + Logger.info(this.getClass(), + "Memory Allocated : " + UtilMethods.prettyByteify(Runtime.getRuntime().totalMemory())); + Logger.info(this.getClass(), "Filled Memory : " + UtilMethods + .prettyByteify(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())); + Logger.info(this.getClass(), + "Free Memory : " + UtilMethods.prettyByteify(Runtime.getRuntime().freeMemory())); CacheProviderStats pStats = cache.getStats(); Set columns = pStats.getStatColumns(); for (CacheStats cs :pStats.getStats()) { for(String col : columns){ - LOGGER.info(col + " : " + cs.getStatValue(col)); + Logger.info(this.getClass(), col + " : " + cs.getStatValue(col)); } } diff --git a/dotCMS/src/integration-test/java/com/dotmarketing/db/HibernateUtilTest.java b/dotCMS/src/integration-test/java/com/dotmarketing/db/HibernateUtilTest.java index 4603e4ce9778..518a5aa3da54 100644 --- a/dotCMS/src/integration-test/java/com/dotmarketing/db/HibernateUtilTest.java +++ b/dotCMS/src/integration-test/java/com/dotmarketing/db/HibernateUtilTest.java @@ -1,16 +1,6 @@ package com.dotmarketing.db; -import java.util.ArrayList; -import java.util.List; - -import junit.framework.Assert; -import com.dotcms.repackage.net.sf.hibernate.Session; import com.dotcms.util.IntegrationTestInitService; - -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Inode; @@ -20,6 +10,14 @@ import com.dotmarketing.portlets.containers.model.Container; import com.dotmarketing.util.UUIDGenerator; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.List; +import junit.framework.Assert; +import com.dotcms.repackage.net.sf.hibernate.Session; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; public class HibernateUtilTest { diff --git a/dotCMS/src/integration-test/java/com/dotmarketing/portlets/containers/business/ContainerAPITest.java b/dotCMS/src/integration-test/java/com/dotmarketing/portlets/containers/business/ContainerAPITest.java index c573301ebe5f..84a75637154b 100644 --- a/dotCMS/src/integration-test/java/com/dotmarketing/portlets/containers/business/ContainerAPITest.java +++ b/dotCMS/src/integration-test/java/com/dotmarketing/portlets/containers/business/ContainerAPITest.java @@ -6,7 +6,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Inode; import com.dotmarketing.db.HibernateUtil; @@ -20,6 +19,7 @@ import com.dotmarketing.util.UtilMethods; import java.util.ArrayList; import java.util.List; +import org.apache.commons.beanutils.BeanUtils; import org.junit.Test; public class ContainerAPITest extends ContentletBaseTest { diff --git a/dotCMS/src/integration-test/java/com/dotmarketing/portlets/contentlet/business/ContentletAPITest.java b/dotCMS/src/integration-test/java/com/dotmarketing/portlets/contentlet/business/ContentletAPITest.java index db300771add8..39b1013b7eb5 100644 --- a/dotCMS/src/integration-test/java/com/dotmarketing/portlets/contentlet/business/ContentletAPITest.java +++ b/dotCMS/src/integration-test/java/com/dotmarketing/portlets/contentlet/business/ContentletAPITest.java @@ -11,7 +11,6 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import com.dotcms.business.WrapInTransaction; import com.dotcms.content.business.DotMappingException; import com.dotcms.content.elasticsearch.business.ESMappingAPIImpl; import com.dotcms.contenttype.business.ContentTypeAPIImpl; @@ -33,8 +32,8 @@ import com.dotcms.mock.request.MockInternalRequest; import com.dotcms.mock.response.BaseResponse; import com.dotcms.rendering.velocity.services.VelocityType; +import com.dotcms.rendering.velocity.util.VelocityUtil; import com.dotcms.repackage.org.apache.commons.io.FileUtils; -import com.dotcms.repackage.org.apache.commons.lang.time.FastDateFormat; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.MultiTree; @@ -78,7 +77,6 @@ import com.dotmarketing.util.PageMode; import com.dotmarketing.util.UUIDGenerator; import com.dotmarketing.util.UtilMethods; -import com.dotcms.rendering.velocity.util.VelocityUtil; import com.dotmarketing.util.WebKeys; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -105,6 +103,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.time.FastDateFormat; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.context.Context; import org.apache.velocity.context.InternalContextAdapterImpl; diff --git a/dotCMS/src/integration-test/java/com/dotmarketing/quartz/job/DeleteFieldJobTest.java b/dotCMS/src/integration-test/java/com/dotmarketing/quartz/job/DeleteFieldJobTest.java index 916997ee55a8..ad0ab92e9670 100644 --- a/dotCMS/src/integration-test/java/com/dotmarketing/quartz/job/DeleteFieldJobTest.java +++ b/dotCMS/src/integration-test/java/com/dotmarketing/quartz/job/DeleteFieldJobTest.java @@ -1,18 +1,9 @@ package com.dotmarketing.quartz.job; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.util.Date; -import java.util.List; - -import org.junit.BeforeClass; -import org.junit.Test; -import org.quartz.JobExecutionException; - import com.dotcms.IntegrationTestBase; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.CollectionsUtils; import com.dotcms.util.IntegrationTestInitService; import com.dotmarketing.beans.Host; @@ -29,6 +20,12 @@ import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.Structure; import com.liferay.portal.model.User; +import java.util.Date; +import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.junit.BeforeClass; +import org.junit.Test; +import org.quartz.JobExecutionException; /** * This class will test routines related to deleting fields from Content Types diff --git a/dotCMS/src/integration-test/java/com/ettrema/httpclient/LockMethod.java b/dotCMS/src/integration-test/java/com/ettrema/httpclient/LockMethod.java index e094706b1be3..7ffb81619eab 100644 --- a/dotCMS/src/integration-test/java/com/ettrema/httpclient/LockMethod.java +++ b/dotCMS/src/integration-test/java/com/ettrema/httpclient/LockMethod.java @@ -1,12 +1,12 @@ package com.ettrema.httpclient; +import com.dotcms.repackage.org.apache.commons.httpclient.methods.EntityEnclosingMethod; import java.io.IOException; import java.io.InputStream; import java.util.List; -import com.dotcms.repackage.org.apache.commons.httpclient.methods.EntityEnclosingMethod; -import com.dotcms.repackage.org.jdom.Document; -import com.dotcms.repackage.org.jdom.Element; -import com.dotcms.repackage.org.jdom.JDOMException; +import org.jdom.Document; +import org.jdom.Element; +import org.jdom.JDOMException; /** * diff --git a/dotCMS/src/integration-test/java/com/ettrema/httpclient/PropFindMethod.java b/dotCMS/src/integration-test/java/com/ettrema/httpclient/PropFindMethod.java index 7ffd5ef8884c..ae39691aa072 100644 --- a/dotCMS/src/integration-test/java/com/ettrema/httpclient/PropFindMethod.java +++ b/dotCMS/src/integration-test/java/com/ettrema/httpclient/PropFindMethod.java @@ -1,18 +1,17 @@ package com.ettrema.httpclient; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; import com.dotcms.repackage.org.apache.commons.httpclient.Header; import com.dotcms.repackage.org.apache.commons.httpclient.methods.EntityEnclosingMethod; -import com.dotcms.repackage.org.jdom.Document; -import com.dotcms.repackage.org.jdom.Element; -import com.dotcms.repackage.org.jdom.JDOMException; -import com.dotcms.repackage.org.jdom.Namespace; - import com.dotcms.repackage.org.slf4j.Logger; import com.dotcms.repackage.org.slf4j.LoggerFactory; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import org.jdom.Document; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.Namespace; /** * diff --git a/dotCMS/src/integration-test/java/com/ettrema/httpclient/ReportMethod.java b/dotCMS/src/integration-test/java/com/ettrema/httpclient/ReportMethod.java index 7f4820473823..6df702dd2bab 100644 --- a/dotCMS/src/integration-test/java/com/ettrema/httpclient/ReportMethod.java +++ b/dotCMS/src/integration-test/java/com/ettrema/httpclient/ReportMethod.java @@ -1,16 +1,16 @@ package com.ettrema.httpclient; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; import com.dotcms.repackage.org.apache.commons.httpclient.methods.EntityEnclosingMethod; import com.dotcms.repackage.org.apache.commons.io.IOUtils; -import com.dotcms.repackage.org.jdom.Document; -import com.dotcms.repackage.org.jdom.JDOMException; import com.dotcms.repackage.org.slf4j.Logger; import com.dotcms.repackage.org.slf4j.LoggerFactory; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import org.jdom.Document; +import org.jdom.JDOMException; /** * diff --git a/dotCMS/src/integration-test/java/com/ettrema/httpclient/Resource.java b/dotCMS/src/integration-test/java/com/ettrema/httpclient/Resource.java index 723b3e2e557c..3e5beb72f618 100644 --- a/dotCMS/src/integration-test/java/com/ettrema/httpclient/Resource.java +++ b/dotCMS/src/integration-test/java/com/ettrema/httpclient/Resource.java @@ -7,6 +7,8 @@ import com.dotcms.repackage.com.bradmcevoy.http.exceptions.ConflictException; import com.dotcms.repackage.com.bradmcevoy.http.exceptions.NotAuthorizedException; import com.dotcms.repackage.com.bradmcevoy.http.exceptions.NotFoundException; +import com.dotcms.repackage.org.slf4j.Logger; +import com.dotcms.repackage.org.slf4j.LoggerFactory; import com.ettrema.cache.Cache; import com.ettrema.httpclient.PropFindMethod.Response; import java.io.FileNotFoundException; @@ -17,9 +19,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.slf4j.Logger; -import com.dotcms.repackage.org.slf4j.LoggerFactory; +import org.apache.commons.lang.StringUtils; /** * diff --git a/dotCMS/src/integration-test/java/com/ettrema/httpclient/RespUtils.java b/dotCMS/src/integration-test/java/com/ettrema/httpclient/RespUtils.java index b09da623fdf9..9239f62768f3 100644 --- a/dotCMS/src/integration-test/java/com/ettrema/httpclient/RespUtils.java +++ b/dotCMS/src/integration-test/java/com/ettrema/httpclient/RespUtils.java @@ -1,5 +1,8 @@ package com.ettrema.httpclient; +import com.dotcms.repackage.org.apache.commons.io.IOUtils; +import com.dotcms.repackage.org.slf4j.Logger; +import com.dotcms.repackage.org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -7,14 +10,11 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import com.dotcms.repackage.org.apache.commons.io.IOUtils; -import com.dotcms.repackage.org.jdom.Element; -import com.dotcms.repackage.org.jdom.JDOMException; -import com.dotcms.repackage.org.jdom.Namespace; -import com.dotcms.repackage.org.jdom.filter.ElementFilter; -import com.dotcms.repackage.org.jdom.input.SAXBuilder; -import com.dotcms.repackage.org.slf4j.Logger; -import com.dotcms.repackage.org.slf4j.LoggerFactory; +import org.jdom.Element; +import org.jdom.JDOMException; +import org.jdom.Namespace; +import org.jdom.filter.ElementFilter; +import org.jdom.input.SAXBuilder; @@ -82,7 +82,7 @@ public static List getElements(Element root, String name) { return list; } - public static com.dotcms.repackage.org.jdom.Document getJDomDocument(InputStream in) throws JDOMException { + public static org.jdom.Document getJDomDocument(InputStream in) throws JDOMException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); try { IOUtils.copy(in, bout); diff --git a/dotCMS/src/integration-test/java/com/liferay/util/LocaleUtilTest.java b/dotCMS/src/integration-test/java/com/liferay/util/LocaleUtilTest.java index 3f95a664ecb5..db2f0f60db05 100644 --- a/dotCMS/src/integration-test/java/com/liferay/util/LocaleUtilTest.java +++ b/dotCMS/src/integration-test/java/com/liferay/util/LocaleUtilTest.java @@ -5,19 +5,16 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import com.dotcms.util.IntegrationTestInitService; +import com.dotmarketing.business.UserAPI; +import com.dotmarketing.business.web.UserWebAPI; import java.util.Locale; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; - +import org.apache.struts.Globals; import org.junit.BeforeClass; import org.junit.Test; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.util.IntegrationTestInitService; -import com.dotmarketing.business.UserAPI; -import com.dotmarketing.business.web.UserWebAPI; - /** * Locale Util test. * diff --git a/dotCMS/src/main/enterprise b/dotCMS/src/main/enterprise index 9988a7cb3e9d..7179d4c4843b 160000 --- a/dotCMS/src/main/enterprise +++ b/dotCMS/src/main/enterprise @@ -1 +1 @@ -Subproject commit 9988a7cb3e9db7092f15cae3afdf4be4146c2fb6 +Subproject commit 7179d4c4843b8037977127b352be87bc31cd4c3f diff --git a/dotCMS/src/main/java/com/dotcms/api/system/user/UserServiceFactory.java b/dotCMS/src/main/java/com/dotcms/api/system/user/UserServiceFactory.java index a43dca2386d4..d86d3f231697 100644 --- a/dotCMS/src/main/java/com/dotcms/api/system/user/UserServiceFactory.java +++ b/dotCMS/src/main/java/com/dotcms/api/system/user/UserServiceFactory.java @@ -1,6 +1,10 @@ package com.dotcms.api.system.user; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import static com.dotcms.util.CollectionsUtils.getMapValue; +import static com.dotcms.util.CollectionsUtils.map; +import static com.dotcms.util.ConversionUtils.toBoolean; +import static com.dotcms.util.ConversionUtils.toInt; + import com.dotcms.rest.api.v1.authentication.ResetPasswordTokenUtil; import com.dotcms.rest.api.v1.authentication.url.UrlStrategy; import com.dotcms.util.MessageAPI; @@ -23,14 +27,15 @@ import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.util.Validator; - import java.io.Serializable; -import java.util.*; - -import static com.dotcms.util.CollectionsUtils.getMapValue; -import static com.dotcms.util.CollectionsUtils.map; -import static com.dotcms.util.ConversionUtils.toBoolean; -import static com.dotcms.util.ConversionUtils.toInt; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import org.apache.commons.lang.StringUtils; /** * This factory creates a singleton instance of the {@link UserService} class. diff --git a/dotCMS/src/main/java/com/dotcms/auth/providers/jwt/services/JsonWebTokenAuthCredentialProcessorImpl.java b/dotCMS/src/main/java/com/dotcms/auth/providers/jwt/services/JsonWebTokenAuthCredentialProcessorImpl.java index 816d71785109..0318492d00e5 100644 --- a/dotCMS/src/main/java/com/dotcms/auth/providers/jwt/services/JsonWebTokenAuthCredentialProcessorImpl.java +++ b/dotCMS/src/main/java/com/dotcms/auth/providers/jwt/services/JsonWebTokenAuthCredentialProcessorImpl.java @@ -2,19 +2,16 @@ import com.dotcms.auth.providers.jwt.JsonWebTokenAuthCredentialProcessor; import com.dotcms.auth.providers.jwt.JsonWebTokenUtils; -import com.dotcms.auth.providers.jwt.factories.JsonWebTokenFactory; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.repackage.org.glassfish.jersey.server.ContainerRequest; import com.dotcms.rest.exception.SecurityException; -import com.dotmarketing.business.ApiProvider; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; /** * Default implementation diff --git a/dotCMS/src/main/java/com/dotcms/cache/transport/AbstractHazelcastCacheTransport.java b/dotCMS/src/main/java/com/dotcms/cache/transport/AbstractHazelcastCacheTransport.java index 994041084016..9f034dfe7f80 100644 --- a/dotCMS/src/main/java/com/dotcms/cache/transport/AbstractHazelcastCacheTransport.java +++ b/dotCMS/src/main/java/com/dotcms/cache/transport/AbstractHazelcastCacheTransport.java @@ -4,7 +4,6 @@ import com.dotcms.cluster.business.HazelcastUtil; import com.dotcms.cluster.business.HazelcastUtil.HazelcastInstanceType; import com.dotcms.enterprise.license.LicenseManager; -import com.dotcms.repackage.org.apache.struts.Globals; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.ChainableCacheAdministratorImpl; @@ -14,17 +13,16 @@ import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; import com.hazelcast.core.HazelcastInstance; -import com.hazelcast.core.ITopic; import com.hazelcast.core.Message; import com.hazelcast.core.MessageListener; import com.liferay.portal.struts.MultiMessageResources; - import java.net.InetSocketAddress; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +import org.apache.struts.Globals; /** * Created by jasontesser on 3/28/17. diff --git a/dotCMS/src/main/java/com/dotcms/cluster/business/HazelcastUtil.java b/dotCMS/src/main/java/com/dotcms/cluster/business/HazelcastUtil.java index b1ea0a4b7e96..b080846854ca 100644 --- a/dotCMS/src/main/java/com/dotcms/cluster/business/HazelcastUtil.java +++ b/dotCMS/src/main/java/com/dotcms/cluster/business/HazelcastUtil.java @@ -1,7 +1,6 @@ package com.dotcms.cluster.business; import com.dotcms.cluster.ClusterUtils; -import com.dotcms.repackage.org.apache.commons.lang.NotImplementedException; import com.dotcms.util.CloseUtils; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; @@ -12,11 +11,11 @@ import com.hazelcast.config.XmlConfigBuilder; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; - import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.apache.commons.lang.NotImplementedException; /** * Created by jasontesser on 4/5/17. diff --git a/dotCMS/src/main/java/com/dotcms/concurrent/DotConcurrentFactory.java b/dotCMS/src/main/java/com/dotcms/concurrent/DotConcurrentFactory.java index fc14f78e9973..2107a9957fd7 100644 --- a/dotCMS/src/main/java/com/dotcms/concurrent/DotConcurrentFactory.java +++ b/dotCMS/src/main/java/com/dotcms/concurrent/DotConcurrentFactory.java @@ -1,18 +1,29 @@ package com.dotcms.concurrent; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import static com.dotcms.util.CollectionsUtils.map; + import com.dotcms.util.ReflectionUtils; import com.dotmarketing.util.Config; import com.dotmarketing.util.DateUtil; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; - -import static com.dotcms.util.CollectionsUtils.*; - import java.io.Serializable; import java.util.List; import java.util.Map; -import java.util.concurrent.*; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; /** * Factory for concurrent {@link Executor} & {@link DotSubmitter} diff --git a/dotCMS/src/main/java/com/dotcms/config/DotInitializationService.java b/dotCMS/src/main/java/com/dotcms/config/DotInitializationService.java index b02121abfc15..0f3fec8f06ea 100644 --- a/dotCMS/src/main/java/com/dotcms/config/DotInitializationService.java +++ b/dotCMS/src/main/java/com/dotcms/config/DotInitializationService.java @@ -1,19 +1,22 @@ package com.dotcms.config; +import static com.dotcms.util.CollectionsUtils.linkSet; + import com.dotcms.api.system.event.PayloadVerifierFactoryInitializer; import com.dotcms.api.system.event.SystemEventProcessorFactoryInitializer; -import com.dotcms.repackage.org.apache.commons.lang.time.StopWatch; import com.dotcms.system.event.local.business.LocalSystemEventSubscribersInitializer; import com.dotcms.util.ReflectionUtils; -import com.dotmarketing.util.*; - +import com.dotmarketing.util.Config; +import com.dotmarketing.util.DateUtil; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.StringUtils; +import com.dotmarketing.util.UtilMethods; import java.io.Serializable; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.ServiceLoader; import java.util.Set; - -import static com.dotcms.util.CollectionsUtils.*; +import org.apache.commons.lang.time.StopWatch; /** * This class is in charge of the Services, Factories or any eager Component to be initialized diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentFactoryImpl.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentFactoryImpl.java index c970a1ffd098..bb5a8fbd3289 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentFactoryImpl.java @@ -1,50 +1,13 @@ package com.dotcms.content.elasticsearch.business; -import com.dotcms.notifications.bean.NotificationLevel; -import com.dotcms.notifications.bean.NotificationType; -import com.dotcms.util.I18NMessage; -import com.dotmarketing.business.IdentifierCache; -import com.dotmarketing.common.model.ContentletSearch; -import java.io.Serializable; -import java.io.StringWriter; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; - -import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.action.count.CountRequestBuilder; -import org.elasticsearch.action.search.SearchPhaseExecutionException; -import org.elasticsearch.action.search.SearchRequestBuilder; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.client.Client; -import org.elasticsearch.index.query.FilterBuilders; -import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.QueryStringQueryBuilder; -import org.elasticsearch.index.query.functionscore.random.RandomScoreFunctionBuilder; -import org.elasticsearch.search.SearchHit; -import org.elasticsearch.search.SearchHits; -import org.elasticsearch.search.internal.InternalSearchHits; -import org.elasticsearch.search.sort.SortBuilders; -import org.elasticsearch.search.sort.SortOrder; -import org.springframework.util.NumberUtils; - import com.dotcms.content.business.DotMappingException; import com.dotcms.content.elasticsearch.business.IndiciesAPI.IndiciesInfo; import com.dotcms.content.elasticsearch.util.ESClient; +import com.dotcms.notifications.bean.NotificationLevel; +import com.dotcms.notifications.bean.NotificationType; import com.dotcms.notifications.business.NotificationAPI; -import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; import com.dotcms.repackage.org.apache.commons.io.FileUtils; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import com.dotcms.util.I18NMessage; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; @@ -52,6 +15,7 @@ import com.dotmarketing.business.DotStateException; import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.business.IdentifierAPI; +import com.dotmarketing.business.IdentifierCache; import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.business.query.ComplexCriteria; import com.dotmarketing.business.query.Criteria; @@ -60,6 +24,7 @@ import com.dotmarketing.business.query.ValidationException; import com.dotmarketing.cache.FieldsCache; import com.dotmarketing.common.db.DotConnect; +import com.dotmarketing.common.model.ContentletSearch; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; @@ -86,6 +51,39 @@ import com.dotmarketing.util.RegExMatch; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.Serializable; +import java.io.StringWriter; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; +import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; +import org.apache.commons.lang.StringUtils; +import org.elasticsearch.ElasticsearchException; +import org.elasticsearch.action.count.CountRequestBuilder; +import org.elasticsearch.action.search.SearchPhaseExecutionException; +import org.elasticsearch.action.search.SearchRequestBuilder; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.client.Client; +import org.elasticsearch.index.query.FilterBuilders; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.QueryStringQueryBuilder; +import org.elasticsearch.index.query.functionscore.random.RandomScoreFunctionBuilder; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; +import org.elasticsearch.search.internal.InternalSearchHits; +import org.elasticsearch.search.sort.SortBuilders; +import org.elasticsearch.search.sort.SortOrder; +import org.springframework.util.NumberUtils; /** * Implementation class for the {@link ContentletFactory} interface. This class diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIHelper.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIHelper.java index 4efe0676754f..202ac4d2b6db 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIHelper.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIHelper.java @@ -6,16 +6,14 @@ import com.dotcms.notifications.bean.NotificationLevel; import com.dotcms.notifications.bean.NotificationType; import com.dotcms.notifications.business.NotificationAPI; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.I18NMessage; -import com.dotmarketing.business.*; -import com.dotmarketing.exception.*; -import com.dotmarketing.util.*; +import com.dotmarketing.business.DotStateException; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.util.Logger; import com.liferay.portal.language.LanguageException; import com.liferay.portal.language.LanguageUtil; - -import java.io.*; -import java.util.*; +import java.io.Serializable; +import java.util.Locale; /** * A helper for {@link ESContentletAPIImpl} diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIImpl.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIImpl.java index 02f25c805510..b2749ce9efd4 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESContentletAPIImpl.java @@ -20,10 +20,7 @@ import com.dotcms.repackage.com.google.common.collect.Lists; import com.dotcms.repackage.com.google.common.collect.Maps; import com.dotcms.repackage.com.google.common.collect.Sets; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.repackage.org.apache.commons.io.FileUtils; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.repackage.org.jboss.util.Strings; import com.dotcms.services.VanityUrlServices; import com.dotcms.system.event.local.type.content.CommitListenerEvent; @@ -125,6 +122,8 @@ import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; import com.liferay.util.FileUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; @@ -149,6 +148,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.apache.commons.lang.StringUtils; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.SearchHit; @@ -3386,6 +3386,11 @@ else if (oldFile.exists()) { .removeFromCacheByIdentifier( contentlet.getIdentifier()); } + + new PageLoader().invalidate(contentlet); + + + } else { isLive = contentlet.isLive(); } diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESIndexHelper.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESIndexHelper.java index 0c6ce4cc2cbe..260fba198864 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESIndexHelper.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESIndexHelper.java @@ -1,5 +1,11 @@ package com.dotcms.content.elasticsearch.business; +import com.dotcms.enterprise.LicenseService; +import com.dotcms.enterprise.license.LicenseLevel; +import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.sitesearch.business.SiteSearchAPI; +import com.dotmarketing.util.UtilMethods; import java.io.File; import java.io.IOException; import java.io.Serializable; @@ -10,14 +16,7 @@ import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.Map; - -import com.dotcms.enterprise.LicenseService; -import com.dotcms.enterprise.license.LicenseLevel; -import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotmarketing.business.APILocator; -import com.dotmarketing.sitesearch.business.SiteSearchAPI; -import com.dotmarketing.util.UtilMethods; +import org.apache.commons.lang.StringUtils; /** * A helper for {@link ESIndexAPI} diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESMappingAPIImpl.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESMappingAPIImpl.java index aa8321c921a1..e70f624cbb39 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESMappingAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/business/ESMappingAPIImpl.java @@ -4,38 +4,16 @@ import static com.dotmarketing.business.PermissionAPI.PERMISSION_READ; import static com.dotmarketing.business.PermissionAPI.PERMISSION_WRITE; -import com.dotcms.content.elasticsearch.constants.ESMappingConstants; -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.stream.Collectors; - import com.dotcms.content.business.ContentMappingAPI; import com.dotcms.content.business.DotMappingException; +import com.dotcms.content.elasticsearch.constants.ESMappingConstants; import com.dotcms.content.elasticsearch.util.ESClient; import com.dotcms.contenttype.model.field.CategoryField; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.enterprise.LicenseUtil; import com.dotcms.enterprise.license.LicenseLevel; import com.dotcms.repackage.com.fasterxml.jackson.databind.ObjectMapper; -import com.dotcms.repackage.org.apache.commons.collections.CollectionUtils; -import com.dotcms.repackage.org.apache.commons.lang.time.FastDateFormat; - import com.dotcms.util.CollectionsUtils; -import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.action.ListenableActionFuture; -import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest; -import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; - import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Permission; import com.dotmarketing.business.APILocator; @@ -55,7 +33,6 @@ import com.dotmarketing.portlets.fileassets.business.FileAssetAPI; import com.dotmarketing.portlets.folders.model.Folder; import com.dotmarketing.portlets.structure.business.FieldAPI; - import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.FieldVariable; import com.dotmarketing.portlets.structure.model.KeyValueFieldUtil; @@ -68,6 +45,24 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.ThreadSafeSimpleDateFormat; import com.dotmarketing.util.UtilMethods; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.time.FastDateFormat; +import org.elasticsearch.ElasticsearchException; +import org.elasticsearch.action.ListenableActionFuture; +import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; public class ESMappingAPIImpl implements ContentMappingAPI { diff --git a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/util/ESUtils.java b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/util/ESUtils.java index 56daaff32362..511f452f8eb1 100644 --- a/dotCMS/src/main/java/com/dotcms/content/elasticsearch/util/ESUtils.java +++ b/dotCMS/src/main/java/com/dotcms/content/elasticsearch/util/ESUtils.java @@ -3,7 +3,7 @@ import com.google.common.base.CharMatcher; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.StringUtils; public class ESUtils { @@ -27,6 +27,5 @@ public static String escape(final String text) { return escapedText; } - - -} + +} \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/business/ContentTypeFactoryImpl.java b/dotCMS/src/main/java/com/dotcms/contenttype/business/ContentTypeFactoryImpl.java index 26c5d8d7b4f1..b38293f9d464 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/business/ContentTypeFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/business/ContentTypeFactoryImpl.java @@ -5,12 +5,20 @@ import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.field.FieldBuilder; import com.dotcms.contenttype.model.field.HostFolderField; -import com.dotcms.contenttype.model.type.*; +import com.dotcms.contenttype.model.type.BaseContentType; +import com.dotcms.contenttype.model.type.ContentType; +import com.dotcms.contenttype.model.type.ContentTypeBuilder; +import com.dotcms.contenttype.model.type.Expireable; +import com.dotcms.contenttype.model.type.FileAssetContentType; +import com.dotcms.contenttype.model.type.UrlMapable; import com.dotcms.contenttype.transform.contenttype.DbContentTypeTransformer; import com.dotcms.contenttype.transform.contenttype.ImplClassContentTypeTransformer; import com.dotcms.repackage.javax.validation.constraints.NotNull; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.CacheLocator; +import com.dotmarketing.business.DotStateException; +import com.dotmarketing.business.DotValidationException; +import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.common.util.SQLUtil; import com.dotmarketing.exception.DotDataException; @@ -20,11 +28,20 @@ import com.dotmarketing.portlets.fileassets.business.FileAssetAPI; import com.dotmarketing.portlets.structure.model.Relationship; import com.dotmarketing.portlets.workflows.business.WorkFlowFactory; -import com.dotmarketing.util.*; -import org.elasticsearch.indices.IndexMissingException; - -import java.util.*; +import com.dotmarketing.util.Config; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UUIDUtil; +import com.dotmarketing.util.UtilMethods; +import com.dotmarketing.util.VelocityUtil; +import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import org.apache.commons.lang.time.DateUtils; +import org.elasticsearch.indices.IndexMissingException; public class ContentTypeFactoryImpl implements ContentTypeFactory { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldAPIImpl.java b/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldAPIImpl.java index c51195adc985..379b691d0404 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldAPIImpl.java @@ -37,8 +37,6 @@ import com.dotcms.rendering.velocity.services.ContentletLoader; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; - import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotStateException; @@ -52,10 +50,9 @@ import com.dotmarketing.quartz.job.DeleteFieldJobHelper; import com.dotmarketing.util.ActivityLogger; import com.dotmarketing.util.UtilMethods; - -import java.util.List; - import com.liferay.portal.model.User; +import java.util.List; +import org.apache.commons.lang.StringUtils; public class FieldAPIImpl implements FieldAPI { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldFactoryImpl.java b/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldFactoryImpl.java index d752c71f7022..761c8557b509 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/business/FieldFactoryImpl.java @@ -4,25 +4,37 @@ import com.dotcms.contenttype.exception.DotDataValidationException; import com.dotcms.contenttype.exception.NotFoundInDbException; import com.dotcms.contenttype.exception.OverFieldLimitException; -import com.dotcms.contenttype.model.field.*; +import com.dotcms.contenttype.model.field.CategoryField; +import com.dotcms.contenttype.model.field.ConstantField; +import com.dotcms.contenttype.model.field.DataTypes; +import com.dotcms.contenttype.model.field.Field; +import com.dotcms.contenttype.model.field.FieldBuilder; +import com.dotcms.contenttype.model.field.FieldVariable; +import com.dotcms.contenttype.model.field.HostFolderField; +import com.dotcms.contenttype.model.field.ImmutableConstantField; +import com.dotcms.contenttype.model.field.ImmutableFieldVariable; import com.dotcms.contenttype.model.field.ImmutableFieldVariable.Builder; +import com.dotcms.contenttype.model.field.LegacyFieldTypes; +import com.dotcms.contenttype.model.field.OnePerContentType; +import com.dotcms.contenttype.model.field.TagField; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.transform.field.DbFieldTransformer; import com.dotcms.contenttype.transform.field.DbFieldVariableTransformer; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; -import com.dotcms.uuid.shorty.ShortyIdAPIImpl; - import com.dotmarketing.business.APILocator; import com.dotmarketing.common.db.DotConnect; -import com.dotmarketing.db.LocalTransaction; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; import com.dotmarketing.util.StringUtils; -import com.dotmarketing.util.UUIDGenerator; import com.dotmarketing.util.UtilMethods; - -import java.util.*; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; +import org.apache.commons.lang.time.DateUtils; public class FieldFactoryImpl implements FieldFactory { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/business/sql/FixTaskFixStructureTable.java b/dotCMS/src/main/java/com/dotcms/contenttype/business/sql/FixTaskFixStructureTable.java index 44c59ee0656f..58cfa9595996 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/business/sql/FixTaskFixStructureTable.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/business/sql/FixTaskFixStructureTable.java @@ -1,9 +1,6 @@ package com.dotcms.contenttype.business.sql; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; -import com.dotcms.repackage.net.sf.hibernate.HibernateException; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -17,6 +14,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; @@ -28,6 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import com.dotcms.repackage.net.sf.hibernate.HibernateException; public class FixTaskFixStructureTable implements FixTask { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/ColumnField.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/ColumnField.java new file mode 100644 index 000000000000..a71c389162fd --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/ColumnField.java @@ -0,0 +1,37 @@ +package com.dotcms.contenttype.model.field; + +import com.dotcms.repackage.com.google.common.collect.ImmutableList; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.immutables.value.Value; + +import java.util.List; + +@JsonSerialize(as = ImmutableColumnField.class) +@JsonDeserialize(as = ImmutableColumnField.class) +@Value.Immutable +public abstract class ColumnField extends Field { + + /** + * + */ + private static final long serialVersionUID = 1L; + @Override + public Class type() { + return ColumnField.class; + } + + @JsonIgnore + @Value.Derived + @Override + public List acceptedDataTypes(){ + return ImmutableList.of(DataTypes.SYSTEM); + } + @Value.Default + @Override + public DataTypes dataType(){ + return DataTypes.SYSTEM; + }; + public abstract static class Builder implements FieldBuilder {} +} diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/Field.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/Field.java index 24e051ccd4ca..77ac6c0538d2 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/Field.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/Field.java @@ -1,27 +1,31 @@ package com.dotcms.contenttype.model.field; -import java.io.Serializable; -import java.util.*; - -import org.elasticsearch.common.Nullable; -import org.immutables.value.Value; -import org.immutables.value.Value.Derived; - import com.dotcms.contenttype.model.component.FieldFormRenderer; import com.dotcms.contenttype.model.component.FieldValueRenderer; import com.dotcms.repackage.com.google.common.base.Preconditions; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; import com.dotmarketing.business.DotStateException; import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.exception.DotDataException; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonSubTypes.Type; +import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import com.google.common.collect.ImmutableMap; +import java.io.Serializable; +import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateUtils; +import org.elasticsearch.common.Nullable; +import org.immutables.value.Value; +import org.immutables.value.Value.Derived; @JsonTypeInfo( @@ -55,6 +59,8 @@ @Type(value = TextField.class), @Type(value = TimeField.class), @Type(value = WysiwygField.class), + @Type(value = RowField.class), + @Type(value = ColumnField.class), }) public abstract class Field implements FieldIf, Serializable { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/FieldVariable.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/FieldVariable.java index 3cd006c2cfdf..a53fdde457da 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/FieldVariable.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/FieldVariable.java @@ -1,20 +1,16 @@ package com.dotcms.contenttype.model.field; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.Serializable; import java.util.Calendar; import java.util.Date; - +import org.apache.commons.lang.time.DateUtils; import org.elasticsearch.common.Nullable; import org.immutables.value.Value; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; -import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - @JsonTypeInfo( use = Id.CLASS, include = JsonTypeInfo.As.PROPERTY, diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/LegacyFieldTypes.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/LegacyFieldTypes.java index 2bd7ed3a62e1..a18507d28916 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/LegacyFieldTypes.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/LegacyFieldTypes.java @@ -44,7 +44,9 @@ public enum LegacyFieldTypes { BINARY("binary",com.dotcms.contenttype.model.field.BinaryField.class), CUSTOM_FIELD("custom_field",com.dotcms.contenttype.model.field.CustomField.class), HOST_OR_FOLDER("host or folder",com.dotcms.contenttype.model.field.HostFolderField.class), - KEY_VALUE("key_value",com.dotcms.contenttype.model.field.KeyValueField.class); + KEY_VALUE("key_value",com.dotcms.contenttype.model.field.KeyValueField.class), + ROW_FIELD("row",com.dotcms.contenttype.model.field.RowField.class), + COLUMN_FIELD("column",com.dotcms.contenttype.model.field.ColumnField.class); final static private Map oldFieldMap; static { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/RowField.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/RowField.java new file mode 100644 index 000000000000..ce244d4ec2b2 --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/RowField.java @@ -0,0 +1,37 @@ +package com.dotcms.contenttype.model.field; + +import com.dotcms.repackage.com.google.common.collect.ImmutableList; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.immutables.value.Value; + +import java.util.List; + +@JsonSerialize(as = ImmutableRowField.class) +@JsonDeserialize(as = ImmutableRowField.class) +@Value.Immutable +public abstract class RowField extends Field { + + /** + * + */ + private static final long serialVersionUID = 1L; + @Override + public Class type() { + return RowField.class; + } + + @JsonIgnore + @Value.Derived + @Override + public List acceptedDataTypes(){ + return ImmutableList.of(DataTypes.SYSTEM); + } + @Value.Default + @Override + public DataTypes dataType(){ + return DataTypes.SYSTEM; + }; + public abstract static class Builder implements FieldBuilder {} +} diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/SelectableValuesField.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/SelectableValuesField.java index dfc0a9c8ad87..2bec25a5881d 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/model/field/SelectableValuesField.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/field/SelectableValuesField.java @@ -1,14 +1,12 @@ package com.dotcms.contenttype.model.field; -import java.util.ArrayList; -import java.util.List; - -import org.immutables.value.Value; - import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.BooleanUtils; import com.dotmarketing.business.DotStateException; import com.liferay.util.StringUtil; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.BooleanUtils; +import org.immutables.value.Value; public abstract class SelectableValuesField extends Field{ diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/model/type/ContentType.java b/dotCMS/src/main/java/com/dotcms/contenttype/model/type/ContentType.java index 9ec4dcc4fa9f..998a8771bc84 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/model/type/ContentType.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/model/type/ContentType.java @@ -1,22 +1,8 @@ package com.dotcms.contenttype.model.type; -import java.io.Serializable; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.elasticsearch.common.Nullable; - -import org.immutables.value.Value; -import org.immutables.value.Value.Default; - import com.dotcms.contenttype.model.field.Field; import com.dotcms.repackage.com.google.common.base.Preconditions; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.PermissionableProxy; import com.dotmarketing.business.APILocator; @@ -36,6 +22,17 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import com.google.common.collect.ImmutableMap; +import java.io.Serializable; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateUtils; +import org.elasticsearch.common.Nullable; +import org.immutables.value.Value; +import org.immutables.value.Value.Default; @JsonTypeInfo( use = Id.CLASS, diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/DbFieldTransformer.java b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/DbFieldTransformer.java index d2b91fa82d90..bf9f501afd38 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/DbFieldTransformer.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/DbFieldTransformer.java @@ -1,21 +1,19 @@ package com.dotcms.contenttype.transform.field; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import org.elasticsearch.common.Nullable; - import com.dotcms.contenttype.model.field.DataTypes; import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.field.LegacyFieldTypes; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; import com.dotmarketing.business.DotStateException; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.util.StringUtils; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.time.DateUtils; +import org.elasticsearch.common.Nullable; public class DbFieldTransformer implements FieldTransformer { diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java index a09fce09ee0e..0527b1517cf3 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java @@ -1,24 +1,19 @@ package com.dotcms.contenttype.transform.field; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import org.elasticsearch.common.Nullable; - import com.dotcms.contenttype.model.field.BinaryField; import com.dotcms.contenttype.model.field.DataTypes; import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.field.FieldBuilder; import com.dotcms.contenttype.model.field.FieldIf; -import com.dotcms.contenttype.model.field.FieldVariable; import com.dotcms.contenttype.model.field.LegacyFieldTypes; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.commons.lang.time.DateUtils; import com.dotmarketing.business.DotStateException; import com.dotmarketing.util.StringUtils; import com.dotmarketing.util.UtilMethods; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.elasticsearch.common.Nullable; public class LegacyFieldTransformer implements FieldTransformer { diff --git a/dotCMS/src/main/java/com/dotcms/csspreproc/CSSPreProcessServlet.java b/dotCMS/src/main/java/com/dotcms/csspreproc/CSSPreProcessServlet.java index e9a77f12c8d4..8b1cac6a8c8a 100644 --- a/dotCMS/src/main/java/com/dotcms/csspreproc/CSSPreProcessServlet.java +++ b/dotCMS/src/main/java/com/dotcms/csspreproc/CSSPreProcessServlet.java @@ -2,6 +2,7 @@ import com.dotcms.csspreproc.CachedCSS.ImportedAsset; import com.dotcms.enterprise.csspreproc.CSSCompiler; +//import com.dotcms.enterprise.csspreproc.DotLibSassCompiler; import com.dotcms.enterprise.csspreproc.LessCompiler; import com.dotcms.enterprise.csspreproc.SassCompiler; import com.dotcms.util.DownloadUtil; @@ -17,6 +18,7 @@ import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.contentlet.model.ContentletVersionInfo; import com.dotmarketing.portlets.fileassets.business.FileAsset; +import com.dotmarketing.util.Config; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; @@ -77,14 +79,15 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws Servl } - if(!reqURI.endsWith(".css")) { - resp.sendError(404); - return; - } - + // choose compiler based on the request URI Class compilerClass = reqURI.startsWith("/DOTSASS/") ? SassCompiler.class : (reqURI.startsWith("/DOTLESS/") ? LessCompiler.class : null); + + if(Config.getBooleanProperty("USE_LIBSASS_FOR_SASS_COMPILATION", true) && reqURI.startsWith("/DOTSASS/")) { + // compilerClass = DotLibSassCompiler.class; + } + CSSCompiler compiler = compilerClass.getConstructor(Host.class,String.class,boolean.class).newInstance(host,uri,live); // check if the asset exists diff --git a/dotCMS/src/main/java/com/dotcms/filters/interceptor/dotcms/DefaultFrontEndLoginRequiredWebInterceptor.java b/dotCMS/src/main/java/com/dotcms/filters/interceptor/dotcms/DefaultFrontEndLoginRequiredWebInterceptor.java index 607016a522bd..d79173928bf6 100644 --- a/dotCMS/src/main/java/com/dotcms/filters/interceptor/dotcms/DefaultFrontEndLoginRequiredWebInterceptor.java +++ b/dotCMS/src/main/java/com/dotcms/filters/interceptor/dotcms/DefaultFrontEndLoginRequiredWebInterceptor.java @@ -2,17 +2,16 @@ import com.dotcms.filters.interceptor.Result; import com.dotcms.filters.interceptor.WebInterceptor; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.WebKeys; - +import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; -import java.io.IOException; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; /** * This interceptor basically checks the user status login on the FRONT-END diff --git a/dotCMS/src/main/java/com/dotcms/integritycheckers/AbstractIntegrityChecker.java b/dotCMS/src/main/java/com/dotcms/integritycheckers/AbstractIntegrityChecker.java index a551778c457d..edb864023117 100644 --- a/dotCMS/src/main/java/com/dotcms/integritycheckers/AbstractIntegrityChecker.java +++ b/dotCMS/src/main/java/com/dotcms/integritycheckers/AbstractIntegrityChecker.java @@ -1,5 +1,14 @@ package com.dotcms.integritycheckers; +import com.dotcms.repackage.com.csvreader.CsvReader; +import com.dotcms.repackage.com.csvreader.CsvWriter; +import com.dotmarketing.common.db.DotConnect; +import com.dotmarketing.db.DbConnectionFactory; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.portlets.structure.model.Structure; +import com.dotmarketing.util.ConfigUtils; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UtilMethods; import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -10,17 +19,7 @@ import java.sql.SQLException; import java.util.List; import java.util.Map; - -import com.dotcms.repackage.com.csvreader.CsvReader; -import com.dotcms.repackage.com.csvreader.CsvWriter; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotmarketing.common.db.DotConnect; -import com.dotmarketing.db.DbConnectionFactory; -import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.portlets.structure.model.Structure; -import com.dotmarketing.util.ConfigUtils; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.UtilMethods; +import org.apache.commons.lang.StringUtils; /** * Base class for all the integrity checkers implementation diff --git a/dotCMS/src/main/java/com/dotcms/integritycheckers/RoleIntegrityChecker.java b/dotCMS/src/main/java/com/dotcms/integritycheckers/RoleIntegrityChecker.java index 3a3736ca6738..ea4767180bc6 100644 --- a/dotCMS/src/main/java/com/dotcms/integritycheckers/RoleIntegrityChecker.java +++ b/dotCMS/src/main/java/com/dotcms/integritycheckers/RoleIntegrityChecker.java @@ -2,8 +2,6 @@ import com.dotcms.repackage.com.csvreader.CsvReader; import com.dotcms.repackage.com.csvreader.CsvWriter; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.commons.lang.mutable.MutableInt; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.PermissionAPI; @@ -18,8 +16,6 @@ import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.workflows.business.WorkflowAPI; import com.dotmarketing.util.ConfigUtils; -import com.liferay.util.StringPool; - import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -32,6 +28,8 @@ import java.util.Map; import java.util.Stack; import java.util.function.Consumer; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.mutable.MutableInt; /** * Role integrity checker implementation diff --git a/dotCMS/src/main/java/com/dotcms/keyvalue/business/KeyValueAPI.java b/dotCMS/src/main/java/com/dotcms/keyvalue/business/KeyValueAPI.java index a3b7787cbdd1..cd82db0bd3bf 100644 --- a/dotCMS/src/main/java/com/dotcms/keyvalue/business/KeyValueAPI.java +++ b/dotCMS/src/main/java/com/dotcms/keyvalue/business/KeyValueAPI.java @@ -40,16 +40,12 @@ public default KeyValue fromContentlet(final Contentlet contentlet) { if (null == contentlet) { throw new DotStateException("The contentlet cannot be null."); } - try { - if (!contentlet.getContentType().baseType().equals(BaseContentType.KEY_VALUE)) { - throw new DotStateException(String.format("The contentlet with ID '%s' is not a KeyValue content.", - contentlet.getIdentifier())); - } - } catch (DotSecurityException | DotDataException e) { - throw new DotStateException( - String.format("The contentlet with ID '%s' could not be identified as a KeyValue content.", - contentlet.getIdentifier()), e); + + if (!contentlet.getContentType().baseType().equals(BaseContentType.KEY_VALUE)) { + throw new DotStateException(String.format("The contentlet with ID '%s' is not a KeyValue content.", + contentlet.getIdentifier())); } + DefaultKeyValue keyValue; final String key = contentlet.getMap().get(KeyValueContentType.KEY_VALUE_KEY_FIELD_VAR).toString(); final long langId = contentlet.getLanguageId(); diff --git a/dotCMS/src/main/java/com/dotcms/listeners/SessionMonitor.java b/dotCMS/src/main/java/com/dotcms/listeners/SessionMonitor.java index 4af66b0ec935..372165fbbbdb 100644 --- a/dotCMS/src/main/java/com/dotcms/listeners/SessionMonitor.java +++ b/dotCMS/src/main/java/com/dotcms/listeners/SessionMonitor.java @@ -1,8 +1,16 @@ package com.dotcms.listeners; +import com.dotcms.api.system.event.Payload; +import com.dotcms.api.system.event.SystemEvent; +import com.dotcms.api.system.event.SystemEventType; +import com.dotcms.api.system.event.SystemEventsAPI; +import com.dotcms.api.system.event.Visibility; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.WebKeys; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; import javax.servlet.http.HttpServletRequest; @@ -12,13 +20,6 @@ import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; -import com.dotcms.api.system.event.*; -import com.dotcms.repackage.org.exolab.castor.types.Date; -import com.dotmarketing.business.APILocator; -import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.WebKeys; - /** * Listener that keeps track of logged in users by monitoring for USER_ID * session attribute addition. diff --git a/dotCMS/src/main/java/com/dotcms/notifications/NotificationConverter.java b/dotCMS/src/main/java/com/dotcms/notifications/NotificationConverter.java index aa6df21d5f82..bf140b610488 100644 --- a/dotCMS/src/main/java/com/dotcms/notifications/NotificationConverter.java +++ b/dotCMS/src/main/java/com/dotcms/notifications/NotificationConverter.java @@ -1,24 +1,23 @@ package com.dotcms.notifications; +import static com.dotcms.util.CollectionsUtils.list; +import static com.dotmarketing.util.DateUtil.prettyDateSince; + import com.dotcms.notifications.bean.Notification; import com.dotcms.notifications.bean.NotificationAction; import com.dotcms.notifications.bean.UserNotificationPair; import com.dotcms.notifications.view.NotificationActionView; import com.dotcms.notifications.view.NotificationDataView; import com.dotcms.notifications.view.NotificationView; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.Converter; import com.dotcms.util.I18NMessage; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.language.LanguageException; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; - import java.util.List; import java.util.Locale; - -import static com.dotcms.util.CollectionsUtils.list; -import static com.dotmarketing.util.DateUtil.prettyDateSince; +import org.apache.commons.lang.StringUtils; /** * This converter basically tooks a {@link UserNotificationPair} and convert to notification but doing i18n support with the user {@link java.util.Locale} info diff --git a/dotCMS/src/main/java/com/dotcms/notifications/business/NotificationAPIImpl.java b/dotCMS/src/main/java/com/dotcms/notifications/business/NotificationAPIImpl.java index 4956af8b804b..c3eb7acf248b 100644 --- a/dotCMS/src/main/java/com/dotcms/notifications/business/NotificationAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/notifications/business/NotificationAPIImpl.java @@ -1,15 +1,21 @@ package com.dotcms.notifications.business; -import com.dotcms.api.system.event.*; +import com.dotcms.api.system.event.Payload; +import com.dotcms.api.system.event.SystemEvent; +import com.dotcms.api.system.event.SystemEventType; +import com.dotcms.api.system.event.SystemEventsAPI; +import com.dotcms.api.system.event.Visibility; import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; import com.dotcms.concurrent.DotConcurrentFactory; import com.dotcms.concurrent.DotSubmitter; -import com.dotcms.notifications.bean.*; +import com.dotcms.notifications.bean.Notification; +import com.dotcms.notifications.bean.NotificationAction; +import com.dotcms.notifications.bean.NotificationData; +import com.dotcms.notifications.bean.NotificationLevel; +import com.dotcms.notifications.bean.NotificationType; import com.dotcms.notifications.dto.NotificationDTO; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.NotImplementedException; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.ConversionUtils; import com.dotcms.util.I18NMessage; import com.dotcms.util.marshal.MarshalFactory; @@ -18,19 +24,18 @@ import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.business.RoleAPI; -import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.exception.DotHibernateException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.util.DateUtil; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Locale; +import org.apache.commons.lang.NotImplementedException; +import org.apache.commons.lang.StringUtils; /** * Concrete implementation of the {@link NotificationAPI} class. diff --git a/dotCMS/src/main/java/com/dotcms/osgi/OSGIConstants.java b/dotCMS/src/main/java/com/dotcms/osgi/OSGIConstants.java new file mode 100644 index 000000000000..7a68aea67ed0 --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/osgi/OSGIConstants.java @@ -0,0 +1,11 @@ +package com.dotcms.osgi; + +/** + * @author Jonathan Gamba + * 1/22/18 + */ +public class OSGIConstants { + + public static final String BUNDLE_NAME_DOTCMS_TIKA = "com.dotcms.tika"; + +} \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/publisher/business/PublishAuditHistory.java b/dotCMS/src/main/java/com/dotcms/publisher/business/PublishAuditHistory.java index 71721a50148c..8636f329c0dc 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/business/PublishAuditHistory.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/business/PublishAuditHistory.java @@ -1,15 +1,14 @@ package com.dotcms.publisher.business; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UtilMethods; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.UtilMethods; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; - public class PublishAuditHistory implements Serializable { private static final long serialVersionUID = 1L; diff --git a/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherAPIImpl.java b/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherAPIImpl.java index 4ad03a2c2069..89f5c0ada500 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherAPIImpl.java @@ -1,22 +1,5 @@ package com.dotcms.publisher.business; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.dotcms.system.event.local.business.LocalSystemEventsAPI; -import com.dotcms.system.event.local.type.publish.AddedToQueueEvent; -import org.quartz.JobDataMap; -import org.quartz.JobDetail; -import org.quartz.ObjectAlreadyExistsException; -import org.quartz.Scheduler; -import org.quartz.SimpleTrigger; -import org.quartz.Trigger; - import com.dotcms.publisher.bundle.bean.Bundle; import com.dotcms.publisher.business.PublishAuditStatus.Status; import com.dotcms.publisher.environment.bean.Environment; @@ -24,7 +7,8 @@ import com.dotcms.publisher.util.PublisherUtil; import com.dotcms.publisher.util.PusheableAsset; import com.dotcms.publishing.PublisherConfig.DeliveryStrategy; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import com.dotcms.system.event.local.business.LocalSystemEventsAPI; +import com.dotcms.system.event.local.type.publish.AddedToQueueEvent; import com.dotcms.util.CollectionsUtils; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; @@ -45,6 +29,20 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.StringUtils; +import org.quartz.JobDataMap; +import org.quartz.JobDetail; +import org.quartz.ObjectAlreadyExistsException; +import org.quartz.Scheduler; +import org.quartz.SimpleTrigger; +import org.quartz.Trigger; /** * Provides utility methods to interact with asset information added to the diff --git a/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherQueueJob.java b/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherQueueJob.java index 43282ef4c440..d31860770b9a 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherQueueJob.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/business/PublisherQueueJob.java @@ -22,7 +22,7 @@ import com.dotcms.repackage.com.google.common.collect.Sets; import com.dotcms.repackage.javax.ws.rs.client.Client; import com.dotcms.repackage.javax.ws.rs.client.WebTarget; -import com.dotcms.repackage.org.apache.log4j.MDC; +import com.dotcms.repackage.org.apache.logging.log4j.ThreadContext; import com.dotcms.rest.RestClientBuilder; import com.dotmarketing.business.APILocator; import com.dotmarketing.db.DbConnectionFactory; @@ -134,7 +134,7 @@ public void execute(JobExecutionContext jobExecutionContext) throws JobExecution + ". Publish Date: " + publishDate); tempBundleId = (String) bundle.get("bundle_id"); - MDC.put(BUNDLE_ID, BUNDLE_ID + "=" + tempBundleId); + ThreadContext.put(BUNDLE_ID, BUNDLE_ID + "=" + tempBundleId); try { PushPublishLogger.log(this.getClass(), "Pre-publish work started."); @@ -195,7 +195,7 @@ public void execute(JobExecutionContext jobExecutionContext) throws JobExecution pubAPI.deleteElementsFromPublishQueueTable(pconf.getId()); } } finally { - MDC.remove(BUNDLE_ID); + ThreadContext.remove(BUNDLE_ID); } } Logger.debug(PublisherQueueJob.class, "Finished PublishQueue Job"); @@ -230,7 +230,7 @@ private void updateAuditStatus() throws DotPublisherException, DotDataException List pendingBundleAudits = pubAuditAPI.getPendingPublishAuditStatus(); // For each bundle audit for ( PublishAuditStatus bundleAudit : pendingBundleAudits ) { - MDC.put(BUNDLE_ID, BUNDLE_ID + "=" + bundleAudit.getBundleId()); + ThreadContext.put(BUNDLE_ID, BUNDLE_ID + "=" + bundleAudit.getBundleId()); try { PublishAuditHistory localHistory = bundleAudit.getStatusPojo(); @@ -248,8 +248,8 @@ private void updateAuditStatus() throws DotPublisherException, DotDataException pubAPI.deleteElementsFromPublishQueueTable(bundleAudit.getBundleId()); } } finally { - MDC.remove(BUNDLE_ID); - MDC.remove(ENDPOINT_NAME); + ThreadContext.remove(BUNDLE_ID); + ThreadContext.remove(ENDPOINT_NAME); } } } @@ -267,7 +267,7 @@ private Map> collectEndpointInfoFromRemote(f PublishingEndPoint targetEndpoint = endpointAPI.findEndPointById(endpointID); if ( targetEndpoint != null && !targetEndpoint.isSending() ) { - MDC.put(ENDPOINT_NAME, ENDPOINT_NAME + "=" + targetEndpoint.getServerName()); + ThreadContext.put(ENDPOINT_NAME, ENDPOINT_NAME + "=" + targetEndpoint.getServerName()); // Don't poll status for static publishing if (!AWSS3Publisher.PROTOCOL_AWS_S3.equalsIgnoreCase(targetEndpoint.getProtocol()) && !StaticPublisher.PROTOCOL_STATIC.equalsIgnoreCase(targetEndpoint.getProtocol())) { diff --git a/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushPublisher.java b/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushPublisher.java index 00ad32a7d09d..0ac2320a3bf7 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushPublisher.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushPublisher.java @@ -46,7 +46,7 @@ import com.dotcms.repackage.javax.ws.rs.core.Response; import com.dotcms.repackage.org.apache.commons.httpclient.HttpStatus; import com.dotcms.repackage.org.apache.commons.io.FileUtils; -import com.dotcms.repackage.org.apache.log4j.MDC; +import com.dotcms.repackage.org.apache.logging.log4j.ThreadContext; import com.dotcms.repackage.org.glassfish.jersey.client.ClientProperties; import com.dotcms.rest.RestClientBuilder; import com.dotcms.system.event.local.business.LocalSystemEventsAPI; @@ -223,8 +223,8 @@ public PublisherConfig process ( final PublishStatus status ) throws DotPublishi Bundle b=APILocator.getBundleAPI().getBundleById(this.config.getId()); //For logging purpose - MDC.put(ENDPOINT_NAME, ENDPOINT_NAME + "=" + endpoint.getServerName()); - MDC.put(BUNDLE_ID, BUNDLE_ID + "=" + b.getName()); + ThreadContext.put(ENDPOINT_NAME, ENDPOINT_NAME + "=" + endpoint.getServerName()); + ThreadContext.put(BUNDLE_ID, BUNDLE_ID + "=" + b.getName()); PushPublishLogger.log(this.getClass(), "Status Update: Sending Bundle"); WebTarget webTarget = client.target(endpoint.toURL()+"/api/bundlePublisher/publish") .queryParam("AUTH_TOKEN", retriveKeyString(PublicEncryptionFactory.decryptString(endpoint.getAuthKey().toString()))) @@ -276,8 +276,8 @@ public PublisherConfig process ( final PublishStatus status ) throws DotPublishi PushPublishLogger.log(this.getClass(), "Status Update: Failed to send bundle. Exception: " + e.getMessage()); } finally { CloseUtils.closeQuietly(bundleStream); - MDC.remove(ENDPOINT_NAME); - MDC.remove(BUNDLE_ID); + ThreadContext.remove(ENDPOINT_NAME); + ThreadContext.remove(BUNDLE_ID); } if (isHistoryEmpty || failedEnvironment) { currentStatusHistory.addOrUpdateEndpoint(environment.getId(), endpoint.getId(), detail); diff --git a/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushUtils.java b/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushUtils.java index 26fbc9617254..0cd428b9aab4 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushUtils.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/pusher/PushUtils.java @@ -1,15 +1,17 @@ package com.dotcms.publisher.pusher; -import java.io.*; +import com.dotcms.repackage.org.apache.commons.io.IOUtils; +import com.dotmarketing.util.Logger; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; import java.nio.file.Files; import java.util.Collection; import java.util.zip.GZIPOutputStream; - -import com.dotcms.repackage.org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import com.dotcms.repackage.org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; -import com.dotcms.repackage.org.apache.commons.io.IOUtils; - -import com.dotmarketing.util.Logger; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; public class PushUtils { diff --git a/dotCMS/src/main/java/com/dotcms/publisher/receiver/BundlePublisher.java b/dotCMS/src/main/java/com/dotcms/publisher/receiver/BundlePublisher.java index ad6e2b8b8677..55171fc50c5d 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/receiver/BundlePublisher.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/receiver/BundlePublisher.java @@ -34,10 +34,7 @@ import com.dotcms.publishing.PublishStatus; import com.dotcms.publishing.Publisher; import com.dotcms.publishing.PublisherConfig; -import com.dotcms.repackage.org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import com.dotcms.repackage.org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import com.dotcms.repackage.org.apache.commons.io.FileUtils; -import com.dotcms.repackage.org.apache.commons.lang.exception.ExceptionUtils; import com.dotcms.rest.BundlePublisherResource; import com.dotcms.util.CloseUtils; import com.dotmarketing.db.DbConnectionFactory; @@ -61,6 +58,9 @@ import java.util.List; import java.util.Map; import java.util.zip.GZIPInputStream; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; +import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.tools.tar.TarBuffer; /** diff --git a/dotCMS/src/main/java/com/dotcms/publisher/util/DependencyManager.java b/dotCMS/src/main/java/com/dotcms/publisher/util/DependencyManager.java index e7289ad4a98a..ace496389cc4 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/util/DependencyManager.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/util/DependencyManager.java @@ -7,7 +7,6 @@ import com.dotcms.publisher.pusher.PushPublisherConfig.AssetTypes; import com.dotcms.publishing.DotBundleException; import com.dotcms.publishing.PublisherConfig.Operation; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -52,6 +51,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.lang.StringUtils; /** * The main purpose of this class is to determine all possible content diff --git a/dotCMS/src/main/java/com/dotcms/publisher/util/DependencySet.java b/dotCMS/src/main/java/com/dotcms/publisher/util/DependencySet.java index 82bfc9684f0d..49362e1b30df 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/util/DependencySet.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/util/DependencySet.java @@ -1,19 +1,11 @@ package com.dotcms.publisher.util; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - import com.dotcms.publisher.assets.bean.PushedAsset; import com.dotcms.publisher.assets.business.PushedAssetsCache; import com.dotcms.publisher.bundle.bean.Bundle; import com.dotcms.publisher.endpoint.bean.PublishingEndPoint; import com.dotcms.publisher.environment.bean.Environment; import com.dotcms.publishing.PublisherConfiguration; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.AnnotationUtils; import com.dotmarketing.beans.VersionInfo; import com.dotmarketing.business.APILocator; @@ -23,6 +15,13 @@ import com.dotmarketing.portlets.languagesmanager.model.Language; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.StringUtils; public class DependencySet extends HashSet { diff --git a/dotCMS/src/main/java/com/dotcms/publisher/util/PushCategoryUtil.java b/dotCMS/src/main/java/com/dotcms/publisher/util/PushCategoryUtil.java index 7477e673fcb4..1cd5e76e9fd4 100644 --- a/dotCMS/src/main/java/com/dotcms/publisher/util/PushCategoryUtil.java +++ b/dotCMS/src/main/java/com/dotcms/publisher/util/PushCategoryUtil.java @@ -2,8 +2,8 @@ import com.dotcms.publisher.pusher.wrapper.CategoryWrapper; import com.dotcms.publishing.DotPublishingException; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/dotCMS/src/main/java/com/dotcms/publishing/BundlerUtil.java b/dotCMS/src/main/java/com/dotcms/publishing/BundlerUtil.java index d0e241fc3f98..392a81656de0 100644 --- a/dotCMS/src/main/java/com/dotcms/publishing/BundlerUtil.java +++ b/dotCMS/src/main/java/com/dotcms/publishing/BundlerUtil.java @@ -1,16 +1,15 @@ package com.dotcms.publishing; import com.dotcms.content.elasticsearch.business.ESMappingAPIImpl; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.HierarchicalStreamWriter; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.Host; import com.dotmarketing.business.DotStateException; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.fasterxml.jackson.databind.ObjectMapper; - +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedInputStream; import java.io.File; import java.io.FileNotFoundException; diff --git a/dotCMS/src/main/java/com/dotcms/publishing/DotPrettyPrintWriter.java b/dotCMS/src/main/java/com/dotcms/publishing/DotPrettyPrintWriter.java index 7eecc4986f4f..8ec4f2dc261b 100644 --- a/dotCMS/src/main/java/com/dotcms/publishing/DotPrettyPrintWriter.java +++ b/dotCMS/src/main/java/com/dotcms/publishing/DotPrettyPrintWriter.java @@ -1,8 +1,7 @@ package com.dotcms.publishing; -import com.dotcms.repackage.com.thoughtworks.xstream.core.util.QuickWriter; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.PrettyPrintWriter; - +import com.thoughtworks.xstream.core.util.QuickWriter; +import com.thoughtworks.xstream.io.xml.PrettyPrintWriter; import java.io.Writer; /** @@ -20,7 +19,7 @@ public DotPrettyPrintWriter(Writer writer) { } /* (non-Javadoc) - * @see com.dotcms.repackage.com.thoughtworks.xstream.io.xml.PrettyPrintWriter#writeText(com.dotcms.repackage.com.thoughtworks.xstream.core.util.QuickWriter, java.lang.String) + * @see com.thoughtworks.xstream.io.xml.PrettyPrintWriter#writeText(com.thoughtworks.xstream.core.util.QuickWriter, java.lang.String) */ protected void writeText(QuickWriter writer, String text) { diff --git a/dotCMS/src/main/java/com/dotcms/publishing/Publisher.java b/dotCMS/src/main/java/com/dotcms/publishing/Publisher.java index fae24070ac8c..8f258d98978e 100644 --- a/dotCMS/src/main/java/com/dotcms/publishing/Publisher.java +++ b/dotCMS/src/main/java/com/dotcms/publishing/Publisher.java @@ -2,7 +2,6 @@ import com.dotcms.publisher.endpoint.bean.PublishingEndPoint; import com.dotcms.publisher.pusher.PushUtils; -import com.dotcms.repackage.org.apache.commons.collections.map.CompositeMap; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.cms.factories.PublicEncryptionFactory; @@ -30,6 +29,7 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.collections.map.CompositeMap; public abstract class Publisher implements IPublisher { diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotDirective.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotDirective.java index ff8af22012c2..86ec87dace8e 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotDirective.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotDirective.java @@ -90,6 +90,9 @@ final public boolean render(InternalContextAdapter context, Writer writer, Node try{ String templatePath = this.resolveTemplatePath(context, writer, params, arguments); + if(null ==templatePath) { + throw new ResourceNotFoundException("null template"); + } Template t = loadTemplate(context, templatePath); return this.renderTemplate(context, writer, t, templatePath); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotParse.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotParse.java index e53b43b85e8e..4ccd94ad5710 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotParse.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/directive/DotParse.java @@ -47,7 +47,7 @@ public final String getName() { @Override String resolveTemplatePath(final Context context, final Writer writer, final RenderParams params,final String[] arguments) { - final String argument = arguments[0]; + final String argument = arguments[0]; String templatePath = argument; Host host = params.currentHost; User user = params.user; @@ -70,7 +70,7 @@ String resolveTemplatePath(final Context context, final Writer writer, final Ren //Verify if we found a resource with the given path if ( null == id || !UtilMethods.isSet(id.getId()) ) { - String errorMessage = String.format("No resource found for [%s]", templatePath); + String errorMessage = String.format("No resource found for [%s]", arguments[0]); /* In Edit mode we are allow to fail and be noisy, but on Preview and Live mode we just want to diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContainerLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContainerLoader.java index 67dd4b27ee53..3f4e6ee5a35d 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContainerLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContainerLoader.java @@ -5,7 +5,6 @@ import com.dotcms.rendering.velocity.util.VelocityUtil; import com.dotmarketing.beans.ContainerStructure; -import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotStateException; @@ -13,6 +12,7 @@ import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.containers.model.Container; +import com.dotmarketing.portlets.languagesmanager.model.Language; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.UtilMethods; @@ -22,6 +22,7 @@ import java.util.Iterator; import java.util.List; +import org.apache.felix.framework.resolver.ResourceNotFoundException; import org.apache.velocity.runtime.resource.ResourceManager; /** @@ -31,34 +32,35 @@ public class ContainerLoader implements DotLoader { public static final String SHOW_PRE_POST_LOOP="SHOW_PRE_POST_LOOP"; @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, final String filePath) + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { VersionableAPI versionableAPI = APILocator.getVersionableAPI(); Container container = null; - if (mode.showLive) { - container = (Container) versionableAPI.findLiveVersion(id1, sysUser(), true); + if (key.mode.showLive) { + container = (Container) versionableAPI.findLiveVersion(key.id1, sysUser(), true); } else { - container = (Container) versionableAPI.findWorkingVersion(id1, sysUser(), true); + container = (Container) versionableAPI.findWorkingVersion(key.id1, sysUser(), true); + } + if(null==container) { + throw new DotStateException("cannot find container for : " + key); } Logger.debug(this, "DotResourceLoader:\tWriting out container inode = " + container.getInode()); - return this.buildVelocity(container, id2, mode, filePath); + return this.buildVelocity(container, key.id2, key.mode, key.path); } @Override public void invalidate(Object obj, PageMode mode) { Container container = (Container) obj; - String folderPath = mode.name() + java.io.File.separator; - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - velocityRootPath += java.io.File.separator; - String filePath = folderPath + container.getIdentifier() + "." + VelocityType.CONTAINER.fileExtension; - java.io.File f = new java.io.File(velocityRootPath + filePath); - f.delete(); - DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); - vc.remove(ResourceManager.RESOURCE_TEMPLATE + filePath); + + + VelocityResourceKey key = new VelocityResourceKey(container, mode); + DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); + vc.remove(key); + } private InputStream buildVelocity(Container container, String uuid, PageMode mode, String filePath) throws DotDataException, DotSecurityException { @@ -154,14 +156,13 @@ private InputStream buildVelocity(Container container, String uuid, PageMode mod try { ContentType t = typeAPI.find(struct.getStructureId()); editWrapperDiv.append(t.variable()); - if(it.hasNext()) { - editWrapperDiv.append(","); - } - editWrapperDiv.append("WIDGET,FORM"); + editWrapperDiv.append(","); } catch (DotDataException | DotSecurityException e) { Logger.warn(this.getClass(), "unable to find content type:" + struct); } } + + editWrapperDiv.append("WIDGET,FORM"); editWrapperDiv.append("\">"); sb.append("#if($" + SHOW_PRE_POST_LOOP + ")"); sb.append(editWrapperDiv); @@ -229,6 +230,10 @@ private InputStream buildVelocity(Container container, String uuid, PageMode mod .append("\"$CONTENT_BASE_TYPE\"") .append(" data-dot-lang=") .append("\"$CONTENT_LANGUAGE\"") + .append(" data-dot-title=") + .append("\"$UtilMethods.javaScriptify($ContentletTitle)\"") + + .append(">"); diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentTypeLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentTypeLoader.java index 04eb02d13bb6..83b6088497ae 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentTypeLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentTypeLoader.java @@ -272,17 +272,16 @@ public void removeContentTypeFile(ContentType contentType) { } @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) - throws DotDataException, DotSecurityException { + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { ContentTypeAPI contentTypeAPI = APILocator.getContentTypeAPI(sysUser()); // Search for the given ContentType inode - ContentType foundContentType = contentTypeAPI.find(id1); + ContentType foundContentType = contentTypeAPI.find(key.id1); - return buildVelocity(foundContentType, filePath, mode); + return buildVelocity(foundContentType, key.path, key.mode); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentletLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentletLoader.java index d30e8302d380..dc1dbe34fd58 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentletLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/ContentletLoader.java @@ -34,6 +34,7 @@ import com.dotmarketing.portlets.contentlet.business.ContentletAPI; import com.dotmarketing.portlets.contentlet.business.DotContentletStateException; import com.dotmarketing.portlets.contentlet.model.Contentlet; +import com.dotmarketing.portlets.contentlet.model.ContentletVersionInfo; import com.dotmarketing.portlets.form.business.FormAPI; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; import com.dotmarketing.portlets.languagesmanager.model.Language; @@ -74,9 +75,10 @@ public void setCategoryAPI(CategoryAPI categoryAPI) { this.categoryAPI = categoryAPI; } + private final long defualtLang = APILocator.getLanguageAPI().getDefaultLanguage().getId(); - public InputStream buildVelocity(Contentlet content, Identifier identifier, PageMode mode, String filePath) + public InputStream buildVelocity(Contentlet content, PageMode mode, String filePath) throws DotDataException, DotSecurityException { StringBuilder sb = new StringBuilder(); @@ -88,45 +90,34 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page - - // CONTENTLET CONTROLS BEGIN sb.append("#if($EDIT_MODE)"); - sb.append("#set( $EDIT_CONTENT_PERMISSION=$EDIT_CONTENT_PERMISSION") - .append(identifier.getId()) - .append(")"); + sb.append("#set( $EDIT_CONTENT_PERMISSION=$EDIT_CONTENT_PERMISSION").append(content.getIdentifier()).append(")"); sb.append("#end"); sb.append("#set($CONTENT_INODE='") .append(content.getInode()) .append("' )") .append("#set($IDENTIFIER_INODE='") - .append(identifier.getId()) - .append("' )"); - - sb.append("#set($CONTENT_TYPE='") - .append(content.getContentType().variable()) + .append(content.getIdentifier()) .append("' )"); - sb.append("#set($CONTENT_BASE_TYPE='") - .append(content.getContentType().baseType()) - .append("' )"); - - sb.append("#set($CONTENT_LANGUAGE='") - .append(content.getLanguageId()) - .append("' )"); - - + sb.append("#set($CONTENT_TYPE='").append(content.getContentType().variable()).append("' )"); + + sb.append("#set($CONTENT_BASE_TYPE='").append(content.getContentType().baseType()).append("' )"); + + sb.append("#set($CONTENT_LANGUAGE='").append(content.getLanguageId()).append("' )"); + + // set all properties from the contentlet sb.append("#set($ContentInode='") .append(content.getInode()) .append("' )") .append("#set($ContentIdentifier='") - .append(identifier.getId()) + .append(content.getIdentifier()) .append("' )") .append("#set($ContentletTitle=\"") - .append(UtilMethods.espaceForVelocity(conAPI.getName(content, APILocator.getUserAPI() - .getSystemUser(), true))) + .append(UtilMethods.espaceForVelocity(conAPI.getName(content, APILocator.getUserAPI().getSystemUser(), true))) .append("\" )"); String modDateStr = UtilMethods.dateToHTMLDate((Date) content.getModDate(), "yyyy-MM-dd H:mm:ss"); sb.append("#set($ContentLastModDate= $date.toDate(\"yyyy-MM-dd H:mm:ss\", \"") @@ -136,9 +127,7 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page .append(content.getModUser()) .append("\")"); if (content.getOwner() != null) - sb.append("#set($ContentOwnerId= \"") - .append(content.getOwner()) - .append("\")"); + sb.append("#set($ContentOwnerId= \"").append(content.getOwner()).append("\")"); // Structure fields @@ -156,12 +145,10 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page Object contFieldValueObject = null; String velPath = mode.name() + "/"; if (field instanceof HiddenField || field instanceof ConstantField) { - if (field.variable() - .equals("widgetPreexecute")) { + if (field.variable().equals("widgetPreexecute")) { continue; } - if (field.variable() - .equals("widgetCode")) { + if (field.variable().equals("widgetCode")) { widgetCode = "#set($" + field.variable() + "=$velutil.mergeTemplate(\"" + velPath + content.getInode() + File.separator + field.inode() + "." + VelocityType.FIELD.fileExtension + "\"))"; continue; @@ -182,8 +169,7 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page sb.append("#set($") .append(field.variable()) .append("= \"") - .append(UtilMethods.espaceForVelocity(fieldValues) - .trim()) + .append(UtilMethods.espaceForVelocity(fieldValues).trim()) .append("\")"); } continue; @@ -214,8 +200,7 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page sb.append("#set($") .append(field.variable()) .append("=\"") - .append(UtilMethods.espaceForVelocity(contFieldValue) - .trim()) + .append(UtilMethods.espaceForVelocity(contFieldValue).trim()) .append("\")"); } } @@ -232,33 +217,21 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page .append("'," + mode.showLive + ",") .append(content.getLanguageId()) .append(" ))"); - + if (field instanceof ImageField) { - sb.append("#set($") - .append(field.variable()) - .append("ImageInode=$!{") - .append(field.variable()) - .append("Object.getInode()} )"); + sb.append("#set($").append(field.variable()).append("ImageInode=$!{").append(field.variable()).append( + "Object.getInode()} )"); sb.append("#set($") .append(field.variable()) .append("ImageIdentifier=$!{") .append(field.variable()) .append("Object.getIdentifier()} )"); - sb.append("#set($") - .append(field.variable()) - .append("ImageWidth=$!{") - .append(field.variable()) - .append("Object.getWidth()} )"); - sb.append("#set($") - .append(field.variable()) - .append("ImageHeight=$!{") - .append(field.variable()) - .append("Object.getHeight()} )"); - sb.append("#set($") - .append(field.variable()) - .append("ImageExtension=$!{") - .append(field.variable()) - .append("Object.getExtension()} )"); + sb.append("#set($").append(field.variable()).append("ImageWidth=$!{").append(field.variable()).append( + "Object.getWidth()} )"); + sb.append("#set($").append(field.variable()).append("ImageHeight=$!{").append(field.variable()).append( + "Object.getHeight()} )"); + sb.append("#set($").append(field.variable()).append("ImageExtension=$!{").append(field.variable()).append( + "Object.getExtension()} )"); sb.append("#set($") .append(field.variable()) .append("ImageURI=$filetool.getURI($!{") @@ -276,34 +249,19 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page .append("ImageFriendlyName=$UtilMethods.espaceForVelocity($!{") .append(field.variable()) .append("Object.getFriendlyName()}) )"); - - sb.append("#set($") - .append(field.variable()) - .append("ImagePath=$!{") - .append(field.variable()) - .append("Object.getPath()})"); - sb.append("#set($") - .append(field.variable()) - .append("ImageName=$!{") - .append(field.variable()) - .append("Object.getFileName()})"); - + + sb.append("#set($").append(field.variable()).append("ImagePath=$!{").append(field.variable()).append( + "Object.getPath()})"); + sb.append("#set($").append(field.variable()).append("ImageName=$!{").append(field.variable()).append( + "Object.getFileName()})"); + } else { - sb.append("#set($") - .append(field.variable()) - .append("FileInode=$!{") - .append(field.variable()) - .append("Object.getInode()} )"); - sb.append("#set($") - .append(field.variable()) - .append("FileIdentifier=$!{") - .append(field.variable()) - .append("Object.getIdentifier()} )"); - sb.append("#set($") - .append(field.variable()) - .append("FileExtension=$!{") - .append(field.variable()) - .append("Object.getExtension()} )"); + sb.append("#set($").append(field.variable()).append("FileInode=$!{").append(field.variable()).append( + "Object.getInode()} )"); + sb.append("#set($").append(field.variable()).append("FileIdentifier=$!{").append(field.variable()).append( + "Object.getIdentifier()} )"); + sb.append("#set($").append(field.variable()).append("FileExtension=$!{").append(field.variable()).append( + "Object.getExtension()} )"); sb.append("#set($") .append(field.variable()) .append("FileURI=$filetool.getURI($!{") @@ -311,17 +269,14 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page .append("Object}, ") .append(content.getLanguageId()) .append(" ))"); - sb.append("#set($") - .append(field.variable()) - .append("FileTitle=$!{") - .append(field.variable()) - .append("Object.getTitle()} )"); + sb.append("#set($").append(field.variable()).append("FileTitle=$!{").append(field.variable()).append( + "Object.getTitle()} )"); sb.append("#set($") .append(field.variable()) .append("FileFriendlyName=$UtilMethods.espaceForVelocity($!{") .append(field.variable()) .append("Object.getFriendlyName()} ))"); - + sb.append("#set($") .append(field.variable()) .append("FilePath=$UtilMethods.espaceForVelocity($!{") @@ -332,12 +287,10 @@ public InputStream buildVelocity(Contentlet content, Identifier identifier, Page .append("FileName=$UtilMethods.espaceForVelocity($!{") .append(field.variable()) .append("Object.getFileName()} ))"); - } + } } else { - sb.append("#set($") - .append(field.variable()) - .append("Object= $filetool.getNewFile())"); + sb.append("#set($").append(field.variable()).append("Object= $filetool.getNewFile())"); } } // http://jira.dotmarketing.net/browse/DOTCMS-2178 else if (field instanceof BinaryField) { @@ -369,34 +322,24 @@ else if (field instanceof BinaryField) { ? UtilMethods.espaceForVelocity("/contentAsset/raw-data/" + content.getIdentifier() + "/" + field.variable() + "/" + content.getInode()) : ""; - sb.append("#set($") - .append(field.variable()) - .append("BinaryFileURI=\"") - .append(binaryFileURI) - .append("\" )"); + sb.append("#set($").append(field.variable()).append("BinaryFileURI=\"").append(binaryFileURI).append("\" )"); } else if (field instanceof SelectField) { sb.append("#set($") .append(field.variable()) .append("SelectLabelsValues=\"") - .append(field.values() - .replaceAll("\\r\\n", " ") - .replaceAll("\\n", " ")) + .append(field.values().replaceAll("\\r\\n", " ").replaceAll("\\n", " ")) .append("\")"); } else if (field instanceof RadioField) { sb.append("#set($") .append(field.variable()) .append("RadioLabelsValues=\"") - .append(field.values() - .replaceAll("\\r\\n", " ") - .replaceAll("\\n", " ")) + .append(field.values().replaceAll("\\r\\n", " ").replaceAll("\\n", " ")) .append("\" )"); } else if (field instanceof CheckboxField) { sb.append("#set($") .append(field.variable()) .append("CheckboxLabelsValues=\"") - .append(field.values() - .replaceAll("\\r\\n", " ") - .replaceAll("\\n", " ")) + .append(field.values().replaceAll("\\r\\n", " ").replaceAll("\\n", " ")) .append("\" )"); } else if (field instanceof DateField) { String shortFormat = ""; @@ -405,36 +348,18 @@ else if (field instanceof BinaryField) { shortFormat = UtilMethods.dateToHTMLDate((Date) contFieldValueObject, "MM/dd/yyyy"); dbFormat = UtilMethods.dateToHTMLDate((Date) contFieldValueObject, "yyyy-MM-dd"); } - sb.append("#set($") - .append(field.variable()) - .append("=$date.toDate(\"yyyy-MM-dd\", \"") - .append(dbFormat) - .append("\"))"); - sb.append("#set($") - .append(field.variable()) - .append("ShortFormat=\"") - .append(shortFormat) - .append("\" )"); - sb.append("#set($") - .append(field.variable()) - .append("DBFormat=\"") - .append(dbFormat) - .append("\" )"); + sb.append("#set($").append(field.variable()).append("=$date.toDate(\"yyyy-MM-dd\", \"").append(dbFormat).append( + "\"))"); + sb.append("#set($").append(field.variable()).append("ShortFormat=\"").append(shortFormat).append("\" )"); + sb.append("#set($").append(field.variable()).append("DBFormat=\"").append(dbFormat).append("\" )"); } else if (field instanceof TimeField) { String shortFormat = ""; if (contFieldValueObject != null && contFieldValueObject instanceof Date) { shortFormat = UtilMethods.dateToHTMLDate((Date) contFieldValueObject, "H:mm:ss"); } - sb.append("#set( $") - .append(field.variable()) - .append("ShortFormat=\"") - .append(shortFormat) - .append("\" )"); - sb.append("#set( $") - .append(field.variable()) - .append("= $date.toDate(\"H:mm:ss\", \"") - .append(shortFormat) - .append("\"))"); + sb.append("#set( $").append(field.variable()).append("ShortFormat=\"").append(shortFormat).append("\" )"); + sb.append("#set( $").append(field.variable()).append("= $date.toDate(\"H:mm:ss\", \"").append(shortFormat).append( + "\"))"); } else if (field instanceof DateTimeField) { String shortFormat = ""; String longFormat = ""; @@ -449,21 +374,9 @@ else if (field instanceof BinaryField) { .append("= $date.toDate(\"yyyy-MM-dd H:mm:ss\", \"") .append(dbFormat) .append("\"))"); - sb.append("#set( $") - .append(field.variable()) - .append("ShortFormat=\"") - .append(shortFormat) - .append("\" )"); - sb.append("#set( $") - .append(field.variable()) - .append("LongFormat=\"") - .append(longFormat) - .append("\" )"); - sb.append("#set( $") - .append(field.variable()) - .append("DBFormat=\"") - .append(dbFormat) - .append("\" )"); + sb.append("#set( $").append(field.variable()).append("ShortFormat=\"").append(shortFormat).append("\" )"); + sb.append("#set( $").append(field.variable()).append("LongFormat=\"").append(longFormat).append("\" )"); + sb.append("#set( $").append(field.variable()).append("DBFormat=\"").append(dbFormat).append("\" )"); } // http://jira.dotmarketing.net/browse/DOTCMS-2869 // else if (field.getFieldType().equals(Field.FieldType.CUSTOM_FIELD.toString())){ // sb.append("#set( $" + field.variable() + "Code=\"" + @@ -471,13 +384,9 @@ else if (field instanceof BinaryField) { // }//http://jira.dotmarketing.net/browse/DOTCMS-3232 else if (field instanceof HostFolderField) { if (InodeUtils.isSet(content.getFolder())) { - sb.append("#set( $ConHostFolder='") - .append(content.getFolder()) - .append("' )"); + sb.append("#set( $ConHostFolder='").append(content.getFolder()).append("' )"); } else { - sb.append("#set( $ConHostFolder='") - .append(content.getHost()) - .append("' )"); + sb.append("#set( $ConHostFolder='").append(content.getHost()).append("' )"); } } @@ -497,8 +406,7 @@ else if (field instanceof CategoryField) { for (int k = 0; k < categoryTree.size(); k++) { Category cat = (Category) categoryTree.get(k); for (Category categ : selectedCategories) { - if (categ.getInode() - .equalsIgnoreCase(cat.getInode())) { + if (categ.getInode().equalsIgnoreCase(cat.getInode())) { categoryList.add(cat); } } @@ -510,9 +418,7 @@ else if (field instanceof CategoryField) { Iterator it = categoryList.iterator(); while (it.hasNext()) { Category cat = (Category) it.next(); - catbuilder.append("\"") - .append(cat.getInode()) - .append("\""); + catbuilder.append("\"").append(cat.getInode()).append("\""); if (it.hasNext()) { catbuilder.append(","); } @@ -534,32 +440,18 @@ else if (field instanceof CategoryField) { .append("CategoriesNames=$categories.fetchCategoriesNames($") .append(field.variable()) .append("FilteredCategories))"); - sb.append("#set( $") - .append(field.variable()) - .append("=$") - .append(field.variable()) - .append("Categories)"); + sb.append("#set( $").append(field.variable()).append("=$").append(field.variable()).append("Categories)"); sb.append("#set( $") .append(field.variable()) .append("CategoriesKeys=$categories.fetchCategoriesKeys($") .append(field.variable()) .append("FilteredCategories))"); } else { - sb.append("#set( $") - .append(field.variable()) - .append("FilteredCategories=$contents.getEmptyList())"); - sb.append("#set( $") - .append(field.variable()) - .append("Categories=$contents.getEmptyList())"); - sb.append("#set( $") - .append(field.variable()) - .append("CategoriesNames=$contents.getEmptyList())"); - sb.append("#set( $") - .append(field.variable()) - .append("=$contents.getEmptyList())"); - sb.append("#set( $") - .append(field.variable()) - .append("CategoriesKeys=$contents.getEmptyList())"); + sb.append("#set( $").append(field.variable()).append("FilteredCategories=$contents.getEmptyList())"); + sb.append("#set( $").append(field.variable()).append("Categories=$contents.getEmptyList())"); + sb.append("#set( $").append(field.variable()).append("CategoriesNames=$contents.getEmptyList())"); + sb.append("#set( $").append(field.variable()).append("=$contents.getEmptyList())"); + sb.append("#set( $").append(field.variable()).append("CategoriesKeys=$contents.getEmptyList())"); } } else if (field instanceof TagField) { content.setTags(); @@ -567,8 +459,7 @@ else if (field instanceof CategoryField) { sb.append("#set($") .append(field.variable()) .append("=\"") - .append(UtilMethods.espaceForVelocity(value) - .trim()) + .append(UtilMethods.espaceForVelocity(value).trim()) .append("\")"); } } @@ -582,9 +473,7 @@ else if (field instanceof CategoryField) { Iterator it = categoryList.iterator(); while (it.hasNext()) { Category category = (Category) it.next(); - catbuilder.append("\"") - .append(category.getInode()) - .append("\""); + catbuilder.append("\"").append(category.getInode()).append("\""); if (it.hasNext()) { catbuilder.append(","); } @@ -618,52 +507,28 @@ else if (field instanceof CategoryField) { // WEB-INF/velocity/static/preview/content_controls.vtl if (PageMode.EDIT_MODE == mode) { - sb.append("#set( $EDIT_CONTENT_PERMISSION=$EDIT_CONTENT_PERMISSION") - .append(identifier.getId()) - .append(" )"); + sb.append("#set( $EDIT_CONTENT_PERMISSION=$EDIT_CONTENT_PERMISSION").append(content.getIdentifier()).append(" )"); } - sb.append("#set( $CONTENT_INODE=\"") - .append(content.getInode()) - .append("\" )"); - sb.append("#set( $IDENTIFIER_INODE=\"") - .append(identifier.getId()) - .append("\" )"); + sb.append("#set( $CONTENT_INODE=\"").append(content.getInode()).append("\" )"); + sb.append("#set( $IDENTIFIER_INODE=\"").append(content.getIdentifier()).append("\" )"); - sb.append("#set( $ContentInode=\"") - .append(content.getInode()) - .append("\" )"); - sb.append("#set( $ContentIdentifier=\"") - .append(identifier.getId()) - .append("\" )"); + sb.append("#set( $ContentInode=\"").append(content.getInode()).append("\" )"); + sb.append("#set( $ContentIdentifier=\"").append(content.getIdentifier()).append("\" )"); sb.append("#set( $ContentletTitle=\"") - .append(UtilMethods.espaceForVelocity(conAPI.getName(content, APILocator.getUserAPI() - .getSystemUser(), true))) - .append("\" )"); - sb.append("#set( $ContentletStructure=\"") - .append(content.getContentTypeId()) - .append("\" )"); - sb.append("#set( $ContentletContentType=\"") - .append(content.getContentTypeId()) + .append(UtilMethods.espaceForVelocity(conAPI.getName(content, APILocator.getUserAPI().getSystemUser(), true))) .append("\" )"); + sb.append("#set( $ContentletStructure=\"").append(content.getContentTypeId()).append("\" )"); + sb.append("#set( $ContentletContentType=\"").append(content.getContentTypeId()).append("\" )"); if (type.baseType() == BaseContentType.WIDGET) { - sb.append("#set( $isWidget= \"") - .append(true) - .append("\")"); - if (type.name() - .equals(FormAPI.FORM_WIDGET_STRUCTURE_NAME_FIELD_NAME)) { - sb.append("#set($isFormWidget= \"") - .append(true) - .append("\")"); + sb.append("#set( $isWidget= \"").append(true).append("\")"); + if (type.name().equals(FormAPI.FORM_WIDGET_STRUCTURE_NAME_FIELD_NAME)) { + sb.append("#set($isFormWidget= \"").append(true).append("\")"); } else { - sb.append("#set($isFormWidget= \"") - .append(false) - .append("\")"); + sb.append("#set($isFormWidget= \"").append(false).append("\")"); } } else { - sb.append("#set($isWidget= \"") - .append(false) - .append("\")"); + sb.append("#set($isWidget= \"").append(false).append("\")"); } return writeOutVelocity(filePath, sb.toString()); @@ -696,16 +561,15 @@ public void invalidate(Structure structure) throws DotDataException, DotSecurity ContentletAPI conAPI = APILocator.getContentletAPI(); int limit = 500; int offset = 0; - List contentlets = conAPI.findByStructure(structure, APILocator.getUserAPI() - .getSystemUser(), false, limit, offset); + List contentlets = + conAPI.findByStructure(structure, APILocator.getUserAPI().getSystemUser(), false, limit, offset); int size = contentlets.size(); while (size > 0) { for (Contentlet contentlet : contentlets) { invalidate(contentlet); } offset += limit; - contentlets = conAPI.findByStructure(structure, APILocator.getUserAPI() - .getSystemUser(), false, limit, offset); + contentlets = conAPI.findByStructure(structure, APILocator.getUserAPI().getSystemUser(), false, limit, offset); size = contentlets.size(); } } @@ -713,118 +577,53 @@ public void invalidate(Structure structure) throws DotDataException, DotSecurity @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) { - try { - - Identifier identifier = APILocator.getIdentifierAPI() - .find(id1); - Contentlet contentlet = null; - if (CacheLocator.getVeloctyResourceCache() - .isMiss(filePath)) { - if (LanguageWebAPI.canDefaultContentToDefaultLanguage()) { - LanguageAPI langAPI = APILocator.getLanguageAPI(); - language = Long.toString(langAPI.getDefaultLanguage() - .getId()); - } else { - throw new ResourceNotFoundException("Contentlet is a miss in the cache"); - } - } - - try { - contentlet = APILocator.getContentletAPI() - .findContentletByIdentifier(identifier.getId(), mode.showLive, new Long(language), APILocator.getUserAPI() - .getSystemUser(), true); - } catch (DotContentletStateException e) { - contentlet = null; - } + public InputStream writeObject(final VelocityResourceKey key) + throws DotStateException, DotDataException, DotSecurityException { - if (contentlet == null || !InodeUtils.isSet(contentlet.getInode()) || contentlet.isArchived()) { - - LanguageAPI langAPI = APILocator.getLanguageAPI(); - long lid = langAPI.getDefaultLanguage() - .getId(); - if (lid != Long.parseLong(language)) { - Contentlet cc = APILocator.getContentletAPI() - .findContentletByIdentifier(identifier.getId(), mode.showLive, lid, APILocator.getUserAPI() - .getSystemUser(), true); - if (cc != null && UtilMethods.isSet(cc.getInode()) && !cc.isArchived() - && LanguageWebAPI.canApplyToAllLanguages(cc)) { - contentlet = cc; - } else { - CacheLocator.getVeloctyResourceCache() - .addMiss(filePath); - throw new ResourceNotFoundException("Contentlet Velocity file not found:" + filePath); - } - } - } + long language = new Long(key.language); + ContentletVersionInfo info = APILocator.getVersionableAPI().getContentletVersionInfo(key.id1, language); + if (info == null && language != defualtLang && LanguageWebAPI.canDefaultContentToDefaultLanguage()) { + info = APILocator.getVersionableAPI().getContentletVersionInfo(key.id1, defualtLang); + } - Logger.debug(this, "DotResourceLoader:\tWriting out contentlet inode = " + contentlet.getInode()); - return buildVelocity(contentlet, identifier, mode, filePath); + if (info == null || key.mode.showLive && info.getLiveInode() == null) { + throw new ResourceNotFoundException("cannot find content for: " + key); + } + Contentlet contentlet = + (key.mode.showLive) ? APILocator.getContentletAPI().find(info.getLiveInode(), APILocator.systemUser(), false) + : APILocator.getContentletAPI().find(info.getWorkingInode(), APILocator.systemUser(), false); - } catch (Exception e) { - throw new ResourceNotFoundException("Contentlet Velocity file not found:" + filePath); + Logger.debug(this, "DotResourceLoader:\tWriting out contentlet inode = " + contentlet.getInode()); + if (null == contentlet) { + throw new ResourceNotFoundException("cannot find content for: " + key); } - } + return buildVelocity(contentlet, key.mode, key.path); + } + @Override public void invalidate(Object obj, PageMode mode) { Contentlet asset = (Contentlet) obj; - CacheLocator.getContentletCache() - .remove(asset.getInode()); - - String folderPath = mode.name() + java.io.File.separator; - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - velocityRootPath += java.io.File.separator; - - Set langs = new HashSet(); - langs.add(asset.getLanguageId()); - if (LanguageWebAPI.canApplyToAllLanguages(asset)) { - for (Language ll : APILocator.getLanguageAPI() - .getLanguages()) { - langs.add(ll.getId()); - } - } - for (Long langId : langs) { - String filePath = folderPath + asset.getIdentifier() + "_" + langId + "." + VelocityType.CONTENT.fileExtension; - java.io.File f = new java.io.File(velocityRootPath + filePath); - f.delete(); - DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); - vc.remove(ResourceManager.RESOURCE_TEMPLATE + filePath); - } + + VelocityResourceKey key = new VelocityResourceKey(asset, mode, asset.getLanguageId()); + DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); + vc.remove(key); + List fields; - try { - fields = asset.getContentType() - .fields(); - for (Field field : fields) { - new FieldLoader().invalidate(field, asset, mode); - } - } catch (DotDataException | DotSecurityException e) { - throw new DotStateException(e); - } + fields = asset.getContentType().fields(); + for (Field field : fields) { + new FieldLoader().invalidate(field, asset); + } - try { - if (asset.getContentType() - .baseType() == BaseContentType.HTMLPAGE) { - new PageLoader().invalidate(asset, mode); - } - if (asset != null && asset.isVanityUrl()) { - // remove from cache - VanityUrlServices.getInstance() - .invalidateVanityUrl(asset); - } - if (asset != null && asset.isKeyValue()) { - // remove from cache - CacheLocator.getKeyValueCache() - .remove(asset); - } - } catch (DotDataException | DotSecurityException e) { - throw new DotStateException(e); + if (asset.getContentType().baseType() == BaseContentType.HTMLPAGE) { + new PageLoader().invalidate(asset, mode); } + } } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotLoader.java index ec52a6df6609..19d040036b27 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotLoader.java @@ -37,7 +37,7 @@ default User sysUser() { } } - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) + public InputStream writeObject(VelocityResourceKey key) throws DotDataException, DotSecurityException; default void invalidate(Object obj) { diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceCache.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceCache.java index 50d955db968e..11ba01b779db 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceCache.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceCache.java @@ -3,27 +3,24 @@ */ package com.dotcms.rendering.velocity.services; -import java.io.File; -import java.util.HashSet; - -import java.util.Set; - -import org.apache.velocity.runtime.RuntimeConstants; -import org.apache.velocity.runtime.RuntimeServices; -import org.apache.velocity.runtime.resource.Resource; -import org.apache.velocity.runtime.resource.ResourceCache; -import org.apache.velocity.runtime.resource.ResourceManager; - -import com.dotcms.contenttype.model.type.ContentType; -import com.dotcms.rendering.velocity.util.VelocityUtil; import com.dotcms.repackage.com.google.common.collect.ImmutableSet; + import com.dotmarketing.business.Cachable; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotCacheAdministrator; import com.dotmarketing.business.DotCacheException; +import com.dotmarketing.portlets.containers.model.Container; import com.dotmarketing.util.Logger; -import com.liferay.util.StringUtil; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import org.apache.velocity.runtime.RuntimeConstants; +import org.apache.velocity.runtime.RuntimeServices; +import org.apache.velocity.runtime.resource.Resource; +import org.apache.velocity.runtime.resource.ResourceCache; /** * @author Jason Tesser @@ -64,12 +61,8 @@ public DotResourceCache() { public String[] getMacro(String name) { - String[] rw = null; - try { - rw = (String[]) cache.get(MACRO_PREFIX + name, macroCacheGroup); - } catch (DotCacheException e) { - Logger.debug(this, "Cache Entry not found", e); - } + String[] rw = (String[]) cache.getNoThrow(MACRO_PREFIX + name, macroCacheGroup); + return rw; } @@ -91,14 +84,20 @@ public void putMacro(String name, String content) { @Override public Resource get(final Object resourceKey) { - final String key = cleanKey(resourceKey.toString()); + final VelocityResourceKey key = new VelocityResourceKey(resourceKey); - try { - return (Resource) cache.get(key, primaryGroup); - } catch (DotCacheException e) { - Logger.debug(this, "Cache Entry not found", e); + if(key.type == VelocityType.CONTAINER) { + Map map= (Map) cache.getNoThrow(key.cacheKey, primaryGroup); + if(map==null) { + return null; + }else { + return map.get(key.path); + } } - return null; + else { + return (Resource) cache.getNoThrow(key.cacheKey, primaryGroup); + } + } @Override @@ -107,7 +106,8 @@ public void initialize(RuntimeServices rs) { } public void addMiss(Object resourceKey) { - Logger.info(this.getClass(), "velocityMiss:" + resourceKey); + final VelocityResourceKey key = new VelocityResourceKey(resourceKey); + Logger.info(this.getClass(), "velocityMiss:" + key); } public boolean isMiss(Object resourceKey) { @@ -116,26 +116,34 @@ public boolean isMiss(Object resourceKey) { @Override public Resource put(final Object resourceKey, final Resource resource) { + final VelocityResourceKey key = new VelocityResourceKey(resourceKey); if (resource != null && ignoreGlobalVM.contains(resource.getName())) { return resource; } - String key = cleanKey(resourceKey.toString()); - - // Add the key to the cache - cache.put(key, resource, primaryGroup); - + if(key.type == VelocityType.CONTAINER) { + Map map= (Map) cache.getNoThrow(key.cacheKey, primaryGroup); + if(null==map) { + map=new ConcurrentHashMap<>(); + } + map.put(key.path, resource); + cache.put(key.cacheKey, map, primaryGroup); + }else { + + // Add the key to the cache + cache.put(key.cacheKey, resource, primaryGroup); + } return resource; } @Override public Resource remove(final Object resourceKey) { - - final String key = cleanKey(resourceKey.toString()); + + final VelocityResourceKey key = (resourceKey instanceof VelocityResourceKey) ? (VelocityResourceKey)resourceKey : new VelocityResourceKey(resourceKey); try { - cache.remove(key, primaryGroup); + cache.remove(key.cacheKey, primaryGroup); } catch (Exception e) { Logger.debug(this, e.getMessage(), e); } @@ -159,31 +167,6 @@ public String getPrimaryGroup() { return primaryGroup; } - private String cleanKey(String key) { - if (key.startsWith(ResourceManager.RESOURCE_TEMPLATE + "")) - key = key.substring((ResourceManager.RESOURCE_TEMPLATE + "").length()); - - if (key.startsWith(File.separatorChar + "")) { - key = key.substring(1); - } - if (key.startsWith("/")) { - key = key.substring(1); - } - key = StringUtil.replace(key, '\\', '/'); - return key; - } - - public void removeContentTypeFile(ContentType contentType) { - String folderPath = "working/"; - String filePath = folderPath + contentType.inode() + "." + VelocityType.CONTENT_TYPE.fileExtension; - - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - String absolutPath = velocityRootPath + File.separator + filePath; - java.io.File f = new java.io.File(absolutPath); - f.delete(); - remove(ResourceManager.RESOURCE_TEMPLATE + filePath); - } - } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceLoader.java index 31846f322673..b98158c40fdd 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/DotResourceLoader.java @@ -1,17 +1,14 @@ package com.dotcms.rendering.velocity.services; -import com.dotcms.repackage.org.apache.commons.collections.ExtendedProperties; - import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.UtilMethods; - import java.io.InputStream; - +import org.apache.commons.collections.ExtendedProperties; import org.apache.velocity.exception.ResourceNotFoundException; import org.apache.velocity.runtime.resource.Resource; import org.apache.velocity.runtime.resource.loader.ResourceLoader; @@ -34,68 +31,57 @@ public InputStream getResourceStream(final String filePath) throws ResourceNotFo } - final VelocityType type = VelocityType.resolveVelocityType(filePath); - synchronized (filePath.intern()) { - + synchronized (filePath.intern()) { - String paths = (filePath.charAt(0) == '/') ? filePath.substring(1, filePath.length()) : filePath; - - final String[] path = paths.split("[/\\.]", -1); - final PageMode mode = PageMode.get(path[0]); - final String id1 = path[1].indexOf("_") > -1 ? path[1].substring(0, path[1].indexOf("_")) : path[1]; - final String language = path[1].indexOf("_") > -1 ? path[1].substring(path[1].indexOf("_") + 1, path[1].length()) - : String.valueOf(APILocator.getLanguageAPI().getDefaultLanguage().getId()); - - final String id2 = path.length > 3 ? path[2] : null; - + VelocityResourceKey key = new VelocityResourceKey(filePath); - Logger.debug(this, "DotResourceLoader:\tInode: " + id1); + Logger.debug(this, "DotResourceLoader:\t: " + key); try { - switch (type) { + switch (key.type) { case NOT_VELOCITY: { - CacheLocator.getVeloctyResourceCache().addMiss(path); - throw new ResourceNotFoundException("Cannot find velocity file : " + path); + CacheLocator.getVeloctyResourceCache().addMiss(key.path); + throw new ResourceNotFoundException("Cannot find velocity file : " + key.path); } case CONTAINER: { - return new ContainerLoader().writeObject(id1, id2, mode, language, filePath); + return new ContainerLoader().writeObject(key); } case TEMPLATE: { - return new TemplateLoader().writeObject(id1, id2, mode, language, filePath); + return new TemplateLoader().writeObject(key); } case CONTENT: { - return new ContentletLoader().writeObject(id1, id2, mode, language, filePath); + return new ContentletLoader().writeObject(key); } case FIELD: { - return new FieldLoader().writeObject(id1, id2, mode, language, filePath); + return new FieldLoader().writeObject(key); } case CONTENT_TYPE: { - return new ContentTypeLoader().writeObject(id1, id2, mode, language, filePath); + return new ContentTypeLoader().writeObject(key); } case SITE: { - return new SiteLoader().writeObject(id1, id2, mode, language, filePath); + return new SiteLoader().writeObject(key); } case HTMLPAGE: { - return new PageLoader().writeObject(id1, id2, mode, language, filePath); + return new PageLoader().writeObject(key); } case VELOCITY_MACROS: { - return VTLLoader.instance().writeObject(id1, id2, mode, language, filePath); + return VTLLoader.instance().writeObject(key); } case VTL: { - return VTLLoader.instance().writeObject(id1, id2, mode, language, filePath); + return VTLLoader.instance().writeObject(key); } case VELOCITY_LEGACY_VL: { - return VTLLoader.instance().writeObject(id1, id2, mode, language, filePath); + return VTLLoader.instance().writeObject(key); } default: { - CacheLocator.getVeloctyResourceCache().addMiss(path); - throw new ResourceNotFoundException("Cannot find velocity file : " + path); + CacheLocator.getVeloctyResourceCache().addMiss(key.path); + throw new ResourceNotFoundException("Cannot find velocity file : " + key.path); } } } catch (Exception e) { - throw new ResourceNotFoundException("Cannot parse velocity file : " + path, e); + throw new ResourceNotFoundException("Cannot parse velocity file : " + key.path, e); } } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/FieldLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/FieldLoader.java index 6009b51d442c..e7b1eaf8a646 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/FieldLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/FieldLoader.java @@ -72,23 +72,18 @@ public void removeFieldFile (String fieldInode, String contentInode, PageMode mo } @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) - throws DotDataException, DotSecurityException { + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { - return this.buildVelocity(id2, id1, mode, filePath); + return this.buildVelocity(key.id2, key.id1, key.mode, key.path); } - public void invalidate(Field field, Contentlet content, PageMode mode) { - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - velocityRootPath += java.io.File.separator; - String folderPath = mode.name() + java.io.File.separator; - String filePath=folderPath + content.getInode() + "_" + field.id() + "." + VelocityType.FIELD.fileExtension; - java.io.File f = new java.io.File(velocityRootPath + filePath); - f.delete(); - DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); - vc.remove(ResourceManager.RESOURCE_TEMPLATE + filePath ); + public void invalidate(Field field, Contentlet content) { + for(PageMode mode : PageMode.values()) { + VelocityResourceKey key = new VelocityResourceKey(field, content, mode); + CacheLocator.getVeloctyResourceCache().remove(key ); + } } @Override diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageContextBuilder.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageContextBuilder.java index 269e54f0d556..1e9dc8c8680b 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageContextBuilder.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageContextBuilder.java @@ -233,11 +233,16 @@ private void populateContainers() throws DotDataException, DotSecurityException } } + + + + String[] contentlist = contentlets.stream() + .map(con -> con.getIdentifier()) + .toArray(size -> new String[size]); // sets contentletlist with all the files to load per // container - ctxMap.put("contentletList" + c.getIdentifier() + uniqueId, contentlets.stream() - .map(con -> con.getIdentifier()) - .toArray(size -> new String[size])); + ctxMap.put("contentletList" + c.getIdentifier() + uniqueId, contentlist); + ctxMap.put("totalSize" + c.getIdentifier() + uniqueId, new Integer(contentlets.size())); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageLoader.java index 244657549cdf..e4f13af17d27 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/PageLoader.java @@ -1,25 +1,19 @@ package com.dotcms.rendering.velocity.services; -import com.dotcms.rendering.velocity.util.VelocityUtil; -import com.dotcms.repackage.bsh.This; - import com.dotmarketing.beans.Host; -import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotStateException; import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; -import com.dotmarketing.portlets.contentlet.business.ContentletAPI; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import com.dotmarketing.portlets.languagesmanager.model.Language; import com.dotmarketing.portlets.templates.model.Template; import com.dotmarketing.tag.model.Tag; import com.dotmarketing.util.Config; import com.dotmarketing.util.InodeUtils; -import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.TagUtil; @@ -45,16 +39,18 @@ public class PageLoader implements DotLoader { @Override public void invalidate(Object obj) { - IHTMLPage htmlPage = (IHTMLPage) obj; + + + for (PageMode mode : PageMode.values()) { - invalidate(htmlPage, mode); + invalidate(obj, mode); } } @Override - public void invalidate(Object obj, PageMode mode) { + public void invalidate(final Object obj, final PageMode mode) { HTMLPageAsset htmlPage =null; if(obj instanceof IHTMLPage) { htmlPage = (HTMLPageAsset) obj; @@ -67,34 +63,19 @@ public void invalidate(Object obj, PageMode mode) { - String folderPath = mode.name() + File.separator; - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - String languageStr = htmlPage.getLanguageId() +""; - String filePath = folderPath + htmlPage.getIdentifier() + languageStr + "." + VelocityType.HTMLPAGE.fileExtension; - velocityRootPath += java.io.File.separator; - java.io.File f = new java.io.File(velocityRootPath + filePath); - f.delete(); - DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); - vc.remove(ResourceManager.RESOURCE_TEMPLATE + filePath); + for(Language lang : APILocator.getLanguageAPI().getLanguages()) { + VelocityResourceKey key = new VelocityResourceKey(htmlPage, mode, lang.getId()); + DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); + vc.remove(key); + } } - public InputStream buildStream(IHTMLPage htmlPage, PageMode mode, final String filePath) - throws DotStateException, DotDataException { - Identifier identifier = APILocator.getIdentifierAPI() - .find(htmlPage); - try { - return buildStream(htmlPage, identifier, mode, filePath); - } catch (Exception e) { - Logger.error(this.getClass(), e.getMessage(), e); - throw new DotRuntimeException(e.getMessage(),e); - } - } - public InputStream buildStream(IHTMLPage htmlPage, Identifier identifier, PageMode mode, final String filePath) + public InputStream buildStream(IHTMLPage htmlPage, PageMode mode, final String filePath) throws DotDataException, DotSecurityException { String folderPath = mode.name() + File.separator; @@ -102,15 +83,15 @@ public InputStream buildStream(IHTMLPage htmlPage, Identifier identifier, PageMo Template cmsTemplate = APILocator.getHTMLPageAssetAPI() - .getTemplate(htmlPage, mode.showLive); + .getTemplate(htmlPage, !mode.showLive); User sys = APILocator.systemUser(); if (cmsTemplate == null || !InodeUtils.isSet(cmsTemplate.getInode())) { - Logger.error(This.class, "PAGE DOES NOT HAVE A VALID TEMPLATE (template unpublished?) : page id " - + htmlPage.getIdentifier() + ":" + identifier.getURI()); + throw new DotStateException("PAGE DOES NOT HAVE A VALID TEMPLATE (template unpublished?) : page id " + + htmlPage.getIdentifier() + " template id" + htmlPage.getTemplateId()); } @@ -173,7 +154,14 @@ public InputStream buildStream(IHTMLPage htmlPage, Identifier identifier, PageMo sb.append("#if(!$doNotParseTemplate)"); - if (cmsTemplate.isDrawed()) {// We have a designed template + if (cmsTemplate.isDrawed()) { + + if(null == cmsTemplate.getTheme()) { + throw new DotStateException("Drawed template has no theme. Template id: " + cmsTemplate.getIdentifier() + " template name:" + cmsTemplate.getName()); + } + + + // We have a designed template // Setting some theme variables sb.append("#set ($dotTheme = $templatetool.theme(\"") .append(cmsTemplate.getTheme()) @@ -202,15 +190,15 @@ public InputStream buildStream(IHTMLPage htmlPage, Identifier identifier, PageMo @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, final String filePath) - throws DotDataException, DotSecurityException { + + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { HTMLPageAsset page = APILocator.getHTMLPageAssetAPI() .fromContentlet(APILocator.getContentletAPI() - .findContentletByIdentifier(id1, mode.showLive, Long.parseLong(language), sysUser(), true)); + .findContentletByIdentifier(key.id1, key.mode.showLive, Long.parseLong(key.language), sysUser(), true)); - return buildStream(page, mode, filePath); + return buildStream(page, key.mode, key.path); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/SiteLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/SiteLoader.java index a995176981a3..f8818b25c7cf 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/SiteLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/SiteLoader.java @@ -74,13 +74,13 @@ public void removeHostFile(Host host, boolean EDIT_MODE) { } @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) - throws DotDataException, DotSecurityException { + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { + Host host = APILocator.getHostAPI() - .find(id1, sysUser(), false); + .find(key.id1, sysUser(), false); - return buildStream(host, mode, filePath); + return buildStream(host, key.mode, key.path); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/StringifyObject.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/StringifyObject.java index 7b7005990e72..77365c1d280b 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/StringifyObject.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/StringifyObject.java @@ -1,8 +1,9 @@ package com.dotcms.rendering.velocity.services; -import com.dotcms.repackage.com.ibm.icu.text.SimpleDateFormat; + import java.io.StringWriter; +import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.Iterator; diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/TemplateLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/TemplateLoader.java index 1953dc408e8b..8b0798890438 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/TemplateLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/TemplateLoader.java @@ -30,28 +30,18 @@ public class TemplateLoader implements DotLoader { - public InputStream buildVelocity(Template template, PageMode mode, String filePath) - throws DotStateException, DotDataException { - Identifier identifier = APILocator.getIdentifierAPI() - .find(template); - return buildVelocity(template, identifier, mode, filePath); - } - - public InputStream buildVelocity(Template template, Identifier identifier, PageMode mode, String filePath) { + public InputStream buildVelocity(Template template, PageMode mode, String filePath) { StringBuilder templateBody = new StringBuilder(); - - templateBody.append(template.getBody()); - if (mode == PageMode.EDIT_MODE) { - templateBody.append(""); - + if(template.isDrawed()){ + templateBody.append(template.getDrawedBody()); + } + else { + templateBody.append(template.getBody()); } - - - return writeOutVelocity(filePath, templateBody.toString()); @@ -60,14 +50,13 @@ public InputStream buildVelocity(Template template, Identifier identifier, PageM @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) - throws DotDataException, DotSecurityException { + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { Identifier identifier = APILocator.getIdentifierAPI() - .find(id1); + .find(key.id1); VersionableAPI versionableAPI = APILocator.getVersionableAPI(); Template template = null; - if (mode.showLive) { + if (key.mode.showLive) { template = (Template) versionableAPI.findLiveVersion(identifier, sysUser(), true); } else { @@ -76,7 +65,7 @@ public InputStream writeObject(String id1, String id2, PageMode mode, String lan Logger.debug(this, "DotResourceLoader:\tWriting out Template inode = " + template.getInode()); - return buildVelocity(template, mode, filePath); + return buildVelocity(template, key.mode, key.path); } @@ -86,21 +75,17 @@ public void invalidate(Object obj) { for (PageMode mode : PageMode.values()) { invalidate(obj, mode); } - } @Override public void invalidate(Object obj, PageMode mode) { Template template = (Template) obj; - String velocityRootPath = VelocityUtil.getVelocityRootPath(); - velocityRootPath += java.io.File.separator; + + VelocityResourceKey key = new VelocityResourceKey(template, mode); + - String folderPath = mode.name() + java.io.File.separator; - String filePath = folderPath + template.getIdentifier() + "." + VelocityType.TEMPLATE.fileExtension; - java.io.File f = new java.io.File(velocityRootPath + filePath); - f.delete(); // todo: check if the file exists before remove? DotResourceCache vc = CacheLocator.getVeloctyResourceCache(); - vc.remove(ResourceManager.RESOURCE_TEMPLATE + filePath); + vc.remove(key); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VTLLoader.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VTLLoader.java index 0e25444b5844..0ac61a9464da 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VTLLoader.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VTLLoader.java @@ -1,5 +1,7 @@ package com.dotcms.rendering.velocity.services; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.util.Config; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; @@ -123,11 +125,11 @@ InputStream streamFile(String filePath) throws IOException { @Override - public InputStream writeObject(String id1, String id2, PageMode mode, String language, String filePath) { + public InputStream writeObject(final VelocityResourceKey key) throws DotDataException, DotSecurityException { try { - return streamFile(filePath); + return streamFile(key.path); } catch (IOException e) { - throw new ResourceNotFoundException("cannot find resource:" + filePath); + throw new ResourceNotFoundException("cannot find resource:" + key.path); } } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VelocityResourceKey.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VelocityResourceKey.java new file mode 100644 index 000000000000..26093f8b231a --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/services/VelocityResourceKey.java @@ -0,0 +1,101 @@ +package com.dotcms.rendering.velocity.services; + +import com.dotcms.contenttype.model.field.Field; + +import com.dotmarketing.business.APILocator; +import com.dotmarketing.portlets.containers.model.Container; +import com.dotmarketing.portlets.contentlet.model.Contentlet; +import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; +import com.dotmarketing.portlets.templates.model.Template; +import com.dotmarketing.util.PageMode; +import com.dotmarketing.util.UtilMethods; + +import java.io.Serializable; +import java.io.StringWriter; + +import org.apache.velocity.runtime.resource.ResourceManager; + + + +public class VelocityResourceKey implements Serializable { + + private final static char RESOURCE_TEMPLATE = ResourceManager.RESOURCE_TEMPLATE + '0'; + + private static final long serialVersionUID = 1L; + public final String path, language, id1, id2, cacheKey; + public final VelocityType type; + public final PageMode mode; + + public VelocityResourceKey(final Object obj) { + this((String) obj); + } + + public VelocityResourceKey(final Field asset, Contentlet con, PageMode mode) { + this("/" + mode.name() + "/" + con.getIdentifier() + "/" + asset.id() + "." + VelocityType.FIELD.fileExtension); + } + + public VelocityResourceKey(final Template asset, final PageMode mode) { + this("/" + mode.name() + "/" + asset.getIdentifier() + "." + VelocityType.TEMPLATE.fileExtension); + } + public VelocityResourceKey(final Container asset, final PageMode mode) { + this(asset, Container.LEGACY_RELATION_TYPE, mode); + } + + public VelocityResourceKey(final Container asset, final String uuid, final PageMode mode) { + this("/" + mode.name() + "/" + asset.getIdentifier() + "/" + uuid + "." + VelocityType.CONTAINER.fileExtension); + } + public VelocityResourceKey(final HTMLPageAsset asset, final PageMode mode, final long language) { + this("/" + mode.name() + "/" + asset.getIdentifier() + "_" + language + "." + VelocityType.HTMLPAGE.fileExtension); + } + public VelocityResourceKey(final Contentlet asset, final PageMode mode, final long language) { + this("/" + mode.name() + "/" + asset.getIdentifier() + "_" + language + "." + VelocityType.CONTENT.fileExtension); + } + public VelocityResourceKey(final String filePath) { + path = cleanKey(filePath); + + final String[] pathArry = path.split("[/\\.]", 0); + this.mode = PageMode.get(pathArry[1]); + this.id1 = pathArry[2].indexOf("_") > -1 ? pathArry[2].substring(0, pathArry[2].indexOf("_")) : pathArry[2]; + this.language = pathArry[2].indexOf("_") > -1 ? pathArry[2].substring(pathArry[2].indexOf("_") + 1, pathArry[2].length()) + : String.valueOf(APILocator.getLanguageAPI().getDefaultLanguage().getId()); + + this.id2 = pathArry.length > 4 ? pathArry[3] : null; + this.type = VelocityType.resolveVelocityType(filePath); + this.cacheKey = cacheKey(); + } + + private String cacheKey() { + + if (type == VelocityType.CONTAINER) { + return new StringWriter() + .append(mode.name()) + .append('-') + .append(id1) + .append('-') + .append(language) + .append(".") + .append(type.fileExtension) + .toString(); + } else { + return path; + } + + + } + + private String cleanKey(final String key) { + String newkey = (key.charAt(0) == RESOURCE_TEMPLATE) ? key.substring(1) : key; + newkey = (newkey.charAt(0) != '/') ? "/" + newkey : newkey; + return (newkey.contains("\\")) ? UtilMethods.replace(newkey, "\\", "/") : newkey; + + } + + @Override + public String toString() { + return "VelocityResourceKey [path=" + path + ", language=" + language + ", id1=" + id1 + ", id2=" + id2 + ", type=" + type + + ", mode=" + mode + "]"; + } + + + +} diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityEditMode.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityEditMode.java index 58f73f215f93..c2d9d3e77eff 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityEditMode.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityEditMode.java @@ -14,7 +14,10 @@ import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import com.dotmarketing.util.PageMode; +import java.io.BufferedWriter; import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.Writer; import javax.servlet.http.HttpServletRequest; @@ -44,7 +47,7 @@ public VelocityEditMode(HttpServletRequest request, HttpServletResponse response } - public void serve(Writer out) throws DotDataException, IOException, DotSecurityException { + public void serve(final OutputStream out) throws DotDataException, IOException, DotSecurityException { // Getting the user to check the permissions User user = WebAPILocator.getUserWebAPI().getUser(request); @@ -65,17 +68,16 @@ public void serve(Writer out) throws DotDataException, IOException, DotSecurityE context.put("dotPageContent", new ContentMap(((Contentlet) htmlPage), user, mode, host, context)); - - this.getTemplate(htmlPage, mode).merge(context, out); + try(final Writer outStr = new BufferedWriter(new OutputStreamWriter(out))){ + this.getTemplate(htmlPage, mode).merge(context, outStr); + } } @Override public void serve() throws DotDataException, IOException, DotSecurityException { - serve(response.getWriter()); - - + serve(response.getOutputStream()); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityLiveMode.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityLiveMode.java index 7baabc16aa7c..ad4689698fea 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityLiveMode.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityLiveMode.java @@ -24,7 +24,10 @@ import com.dotmarketing.util.PageMode; import com.dotmarketing.util.WebKeys; +import java.io.BufferedWriter; import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.StringWriter; import java.io.Writer; import java.util.Optional; @@ -48,8 +51,7 @@ public class VelocityLiveMode extends VelocityModeHandler { private final Host host; - - + public VelocityLiveMode(HttpServletRequest request, HttpServletResponse response, String uri, Host host) { this.request = request; this.response = response; @@ -64,12 +66,11 @@ public VelocityLiveMode(HttpServletRequest request, HttpServletResponse response @Override public final void serve() throws DotDataException, IOException, DotSecurityException { - - serve(response.getWriter()); - + serve(response.getOutputStream()); } + @Override - public final void serve(final Writer out) throws DotDataException, IOException, DotSecurityException { + public final void serve(final OutputStream out) throws DotDataException, IOException, DotSecurityException { LicenseUtil.startLiveMode(); try { @@ -148,45 +149,40 @@ public final void serve(final Writer out) throws DotDataException, IOException, if (v.isPresent() && v.get().getPersona() != null) { persona = v.get().getPersona().getKeyTag(); } + final Context context = VelocityUtil.getWebContext(request, response); - - PageCacheParameters cacheParameters = + final PageCacheParameters cacheParameters = new BlockPageCache.PageCacheParameters(userId, language, urlMap, queryString, persona); String key = VelocityUtil.getPageCacheKey(request, htmlPage); if (key != null) { String cachedPage = CacheLocator.getBlockPageCache().get(htmlPage, cacheParameters); - if (cachedPage != null ){ + if (cachedPage != null) { // have cached response and are not refreshing, send it - response.getWriter().write(cachedPage); + out.write(cachedPage.getBytes()); return; } } - Writer tmpOut = (key!=null) ? new StringWriter(4096) : new VelocityFilterWriter(out); - Context context = VelocityUtil.getWebContext(request, response); - - this.getTemplate(htmlPage, mode).merge(context, tmpOut); + try (Writer tmpOut = (key != null) ? new StringWriter(4096) : new BufferedWriter(new OutputStreamWriter(out))) { + this.getTemplate(htmlPage, mode).merge(context, tmpOut); - if (key!=null) { - String trimmedPage = tmpOut.toString().trim(); - out.write(trimmedPage); - out.close(); - synchronized (key.intern()) { - CacheLocator.getBlockPageCache().add(htmlPage, trimmedPage, cacheParameters); + if (key != null) { + String trimmedPage = tmpOut.toString().trim(); + out.write(trimmedPage.getBytes()); + synchronized (key.intern()) { + CacheLocator.getBlockPageCache().add(htmlPage, trimmedPage, cacheParameters); + } } - } else { - out.close(); } + } finally { + LicenseUtil.stopLiveMode(); } - } - - } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityModeHandler.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityModeHandler.java index 009b7d99df3d..ed53163a9f86 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityModeHandler.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityModeHandler.java @@ -2,8 +2,10 @@ import com.dotcms.rendering.velocity.services.VelocityType; import com.dotcms.rendering.velocity.util.VelocityUtil; +import com.dotcms.repackage.jersey.repackaged.com.google.common.collect.ImmutableMap; import com.dotcms.visitor.business.VisitorAPI; +import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.web.HostWebAPI; import com.dotmarketing.business.web.WebAPILocator; @@ -14,10 +16,13 @@ import com.dotmarketing.util.Config; import com.dotmarketing.util.PageMode; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.io.StringWriter; import java.io.Writer; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -30,35 +35,39 @@ public abstract class VelocityModeHandler { protected static final HostWebAPI hostWebAPI = WebAPILocator.getHostWebAPI(); protected static final VisitorAPI visitorAPI = APILocator.getVisitorAPI(); + private static final Map pageModeVelocityMap =ImmutableMap.builder() + .put(PageMode.PREVIEW_MODE, VelocityPreviewMode::new) + .put(PageMode.EDIT_MODE, VelocityEditMode::new) + .put(PageMode.LIVE, VelocityLiveMode::new) + .put(PageMode.ADMIN_MODE, VelocityLiveMode::new) + .build(); + + @FunctionalInterface + private interface Function { + VelocityModeHandler apply(HttpServletRequest request, HttpServletResponse response, String uri, Host host); + } abstract void serve() throws DotDataException, IOException, DotSecurityException; - abstract void serve(Writer out) throws DotDataException, IOException, DotSecurityException; + abstract void serve(OutputStream out) throws DotDataException, IOException, DotSecurityException; public final String eval() { - StringWriter out = new StringWriter(4096); - - try { + try(ByteArrayOutputStream out = new ByteArrayOutputStream(4096)) { serve(out); + return new String(out.toByteArray()); } catch (DotDataException | IOException | DotSecurityException e) { throw new DotRuntimeException(e); } - - return out.toString(); } - + + public static final VelocityModeHandler modeHandler(PageMode mode, HttpServletRequest request, HttpServletResponse response, String uri, Host host) { + return pageModeVelocityMap.get(mode).apply(request, response, uri, host); + } + public static final VelocityModeHandler modeHandler(PageMode mode, HttpServletRequest request, HttpServletResponse response) { - switch (mode) { - case PREVIEW_MODE: - return new VelocityPreviewMode(request, response); - case EDIT_MODE: - return new VelocityEditMode(request, response); - default: - return new VelocityLiveMode(request, response); - - } + return pageModeVelocityMap.get(mode).apply(request, response, request.getRequestURI(), hostWebAPI.getCurrentHostNoThrow(request)); } public final Template getTemplate(IHTMLPage page, PageMode mode) { diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityPreviewMode.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityPreviewMode.java index 4521b3e4f639..0d917cdcbf4d 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityPreviewMode.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/servlet/VelocityPreviewMode.java @@ -14,7 +14,10 @@ import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import com.dotmarketing.util.PageMode; +import java.io.BufferedWriter; import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.Writer; import javax.servlet.http.HttpServletRequest; @@ -50,12 +53,12 @@ public VelocityPreviewMode(HttpServletRequest request, HttpServletResponse respo @Override public void serve() throws DotDataException, IOException, DotSecurityException { - serve(response.getWriter()); + serve(response.getOutputStream()); } @Override - public void serve(Writer out) throws DotDataException, IOException, DotSecurityException { + public void serve(final OutputStream out) throws DotDataException, IOException, DotSecurityException { // Getting the user to check the permissions @@ -78,8 +81,10 @@ public void serve(Writer out) throws DotDataException, IOException, DotSecurityE context.put("dotPageContent", new ContentMap(((Contentlet) htmlPage), user, mode, host, context)); request.setAttribute("velocityContext", context); + try(final Writer outStr = new BufferedWriter(new OutputStreamWriter(out))){ + this.getTemplate(htmlPage, mode).merge(context, outStr); + } - this.getTemplate(htmlPage, mode).merge(context, out); } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/util/VelocityUtil.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/util/VelocityUtil.java index be93619b5362..8421cff41313 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/util/VelocityUtil.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/util/VelocityUtil.java @@ -2,10 +2,6 @@ import com.dotcms.enterprise.LicenseUtil; import com.dotcms.enterprise.license.LicenseLevel; -import com.dotcms.rendering.velocity.servlet.VelocityEditMode; -import com.dotcms.rendering.velocity.servlet.VelocityLiveMode; -import com.dotcms.rendering.velocity.servlet.VelocityModeHandler; -import com.dotcms.rendering.velocity.servlet.VelocityPreviewMode; import com.dotcms.rendering.velocity.viewtools.LanguageWebAPI; import com.dotcms.rendering.velocity.viewtools.RequestWrapper; import com.dotcms.visitor.domain.Visitor; @@ -36,7 +32,7 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ConcurrentHashMap; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -53,7 +49,6 @@ import com.liferay.portal.model.User; import com.liferay.util.SystemProperties; -import java.util.Map; public class VelocityUtil { public final static String REFRESH="refresh"; @@ -62,19 +57,7 @@ public class VelocityUtil { private static VelocityEngine ve = null; private static boolean DEFAULT_PAGE_TO_DEFAULT_LANGUAGE = LanguageWebAPI.canDefaultPageToDefaultLanguage(); - private static final Map pageModeVelocityMap = new ConcurrentHashMap<>(); - - static { - pageModeVelocityMap.put(PageMode.PREVIEW_MODE, VelocityPreviewMode::new); - pageModeVelocityMap.put(PageMode.EDIT_MODE, VelocityEditMode::new); - pageModeVelocityMap.put(PageMode.LIVE, VelocityLiveMode::new); - pageModeVelocityMap.put(PageMode.ADMIN_MODE, VelocityLiveMode::new); - } - @FunctionalInterface - private interface Function { - VelocityModeHandler apply(HttpServletRequest request, HttpServletResponse response, String uri, Host host); - } private synchronized static void init(){ if(ve != null) @@ -453,19 +436,5 @@ public static String getVelocityRootPath() { return velocityRootPath; } - /** - * Render a page in the specific {@link PageMode} - * - * @param pageMode - * @param request - * @param response - * @param uri - * @param host - * @return - */ - public static String eval(final PageMode pageMode, final HttpServletRequest request, - final HttpServletResponse response, final String uri, - final Host host) { - return pageModeVelocityMap.get(pageMode).apply(request, response, uri, host).eval(); - } + } \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/ContentsWebAPI.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/ContentsWebAPI.java index 12f1d60de22e..45e8865a47af 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/ContentsWebAPI.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/ContentsWebAPI.java @@ -1,24 +1,7 @@ package com.dotcms.rendering.velocity.viewtools; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.velocity.tools.view.context.ViewContext; -import org.apache.velocity.tools.view.tools.ViewTool; - import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.contenttype.transform.contenttype.StructureTransformer; -import com.dotcms.repackage.org.apache.commons.beanutils.PropertyUtils; - -import org.elasticsearch.search.SearchHits; - import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.DotStateException; @@ -37,7 +20,6 @@ import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; import com.dotmarketing.portlets.languagesmanager.model.Language; - import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.Relationship; import com.dotmarketing.portlets.structure.model.Structure; @@ -48,6 +30,18 @@ import com.dotmarketing.util.LuceneHits; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.velocity.tools.view.context.ViewContext; +import org.apache.velocity.tools.view.tools.ViewTool; +import org.elasticsearch.search.SearchHits; public class ContentsWebAPI implements ViewTool { diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/DotTemplateTool.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/DotTemplateTool.java index 1bc7b22d1a42..274f45b45c35 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/DotTemplateTool.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/DotTemplateTool.java @@ -114,7 +114,7 @@ public static TemplateLayout themeLayout (final String themeInode, throws DotDataException, DotSecurityException { final String key = themeInode + isPreview; if (!UtilMethods.isSet(themeInode)) { - throw new IllegalArgumentException("the themeInode is null"); + return null; } TemplateLayout layout = layoutCache.getIfPresent(key); @@ -131,7 +131,7 @@ private static DrawedBody getDrawedBody(String themeInode, User user) throws Dot final Template template = APILocator.getTemplateAPI().findWorkingTemplate(ident.getId(), user, false); if (!template.isDrawed()){ - throw new DotDataException("Template with inode: " + themeInode + " is not drawed"); + throw new RuntimeException("Template with inode: " + themeInode + " is not drawed"); } return new DrawedBody(template.getTitle(), template.getDrawedBody()); @@ -183,7 +183,7 @@ private static TemplateLayout getLayout ( final String themeInode, final Boolean final String drawedBodyAsString = drawedBody.getDrawedBody(); if (!UtilMethods.isSet(drawedBodyAsString)){ - throw new DotDataException("Template with inode: " + themeInode + " has not drawedBody"); + throw new RuntimeException("Template with inode: " + themeInode + " has not drawedBody"); } try { @@ -324,6 +324,7 @@ private static Map setThemeData ( Folder themeFolder, String hos themeMap.put( "path", themePath ); themeMap.put( "templatePath", themeTemplatePath ); themeMap.put( "htmlHead", haveHtmlHead ); + themeMap.put( "title", themeFolder.getName()); cache.put(key, themeMap); } return themeMap; diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/MessagesTools.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/MessagesTools.java index cca6721f8a11..70b1efc9dae1 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/MessagesTools.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/MessagesTools.java @@ -1,8 +1,8 @@ package com.dotcms.rendering.velocity.viewtools; + import java.util.List; import java.util.Locale; - -import com.dotcms.repackage.org.apache.struts.util.MessageResources; +import org.apache.struts.util.MessageResources; import org.apache.velocity.tools.struts.MessageResourcesTool; /** diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/VelocityWebUtil.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/VelocityWebUtil.java index 6433d4fd473f..39a3d8decd61 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/VelocityWebUtil.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/VelocityWebUtil.java @@ -1,6 +1,15 @@ package com.dotcms.rendering.velocity.viewtools; -import com.dotmarketing.util.*; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.PageMode; +import com.dotmarketing.util.UtilMethods; +import com.dotmarketing.util.VelocityUtil; +import com.dotmarketing.util.WebKeys; + +import java.io.StringWriter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.velocity.Template; import org.apache.velocity.app.VelocityEngine; @@ -10,10 +19,6 @@ import org.apache.velocity.tools.view.context.ViewContext; import org.apache.velocity.tools.view.tools.ViewTool; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.StringWriter; - /** * @author Jason Tesser * @since 1.6.5 @@ -21,45 +26,16 @@ */ public class VelocityWebUtil implements ViewTool { - static final String _logVariable = "LOG_VELOCITY_TEMPLATES"; + private Context ctx; - private HttpServletRequest req; - boolean debug = false; + // private HttpServletRequest request; public void init(Object obj) { ViewContext context = (ViewContext) obj; - this.req = context.getRequest(); this.ctx = context.getVelocityContext(); - this.debug = Config.getBooleanProperty(_logVariable, false); - - if (!this.debug) { - try { - if (ctx.get("request") != null) { - if (((HttpServletRequest) ctx.get("request")).getParameter(_logVariable) != null - || (req.getSession(false) != null && req.getSession(false) - .getAttribute(_logVariable) != null)) { - this.debug = true; - if ("false".equals(req.getParameter(_logVariable))) { - this.debug = true; - req.getSession() - .removeAttribute(_logVariable); - } else { - req.getSession() - .setAttribute(_logVariable, "true"); - } - - - - } - } - } catch (Exception e) { - Logger.debug(VelocityWebUtil.class, e.getMessage(), e); - } - } - } public String mergeTemplate(String templatePath) throws ResourceNotFoundException, ParseErrorException, Exception { @@ -67,16 +43,11 @@ public String mergeTemplate(String templatePath) throws ResourceNotFoundExceptio VelocityEngine ve = VelocityUtil.getEngine(); Template template = null; StringWriter sw = new StringWriter(); - String threadName = Thread.currentThread() - .getName(); - if (this.debug) { - Logger.info(VelocityWebUtil.class, _logVariable + ": " + templatePath); - } + + + final String threadName = Thread.currentThread().getName(); try { - String newThreadName = (threadName.contains("{")) ? threadName.replaceAll("\\{[^\\}]*\\}", "{" + templatePath + "}") - : threadName + " {" + templatePath + "}"; - Thread.currentThread() - .setName(newThreadName); + Thread.currentThread().setName(threadName + " >" + templatePath); template = ve.getTemplate(templatePath); template.merge(ctx, sw); @@ -98,8 +69,7 @@ public String mergeTemplate(String templatePath) throws ResourceNotFoundExceptio throw e; } finally { - Thread.currentThread() - .setName(threadName); + Thread.currentThread().setName(threadName); } @@ -110,20 +80,15 @@ public void mergeTemplate(String templatePath, HttpServletResponse response) throws ResourceNotFoundException, ParseErrorException, Exception { VelocityEngine ve = VelocityUtil.getEngine(); Template template = null; - String threadName = Thread.currentThread() - .getName(); + final String threadName = Thread.currentThread().getName(); try { - Thread.currentThread() - .setName(threadName + " >" + templatePath); - if (this.debug) { - Logger.info(VelocityWebUtil.class, _logVariable + ": " + templatePath); - } + Thread.currentThread().setName(threadName + " >" + templatePath); + template = ve.getTemplate(templatePath); template.merge(ctx, response.getWriter()); } finally { - Thread.currentThread() - .setName(threadName); + Thread.currentThread().setName(threadName); } } diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XmlTool.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XmlTool.java index 9c39b7db3c7e..14f278d15a88 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XmlTool.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XmlTool.java @@ -19,6 +19,9 @@ * under the License. */ +import com.dotcms.rendering.velocity.viewtools.bean.XmlToolDoc; +import com.dotcms.rendering.velocity.viewtools.cache.XmlToolCache; +import com.dotcms.rendering.velocity.viewtools.util.ConversionUtils; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -27,21 +30,14 @@ import java.util.Iterator; import java.util.List; import java.util.Map; - import org.apache.velocity.tools.generic.ValueParser; import org.apache.velocity.tools.view.tools.ViewTool; - -import com.dotcms.rendering.velocity.viewtools.bean.XmlToolDoc; -import com.dotcms.rendering.velocity.viewtools.cache.XmlToolCache; -import com.dotcms.rendering.velocity.viewtools.util.ConversionUtils; -import com.dotcms.repackage.org.dom4j.Attribute; -import com.dotcms.repackage.org.dom4j.Document; -import com.dotcms.repackage.org.dom4j.DocumentHelper; -import com.dotcms.repackage.org.dom4j.Element; -import com.dotcms.repackage.org.dom4j.Node; -import com.dotcms.repackage.org.dom4j.io.SAXReader; - -import com.dotmarketing.util.Logger; +import org.dom4j.Attribute; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.io.SAXReader; /** diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XsltTool.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XsltTool.java index d7e8f8f0dc33..55ab06ce81ea 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XsltTool.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/XsltTool.java @@ -1,11 +1,7 @@ package com.dotcms.rendering.velocity.viewtools; -import com.dotcms.repackage.javax.xml.transform.Source; -import com.dotcms.repackage.javax.xml.transform.Transformer; -import com.dotcms.repackage.javax.xml.transform.TransformerConfigurationException; -import com.dotcms.repackage.javax.xml.transform.TransformerFactory; -import com.dotcms.repackage.javax.xml.transform.stream.StreamResult; -import com.dotcms.repackage.javax.xml.transform.stream.StreamSource; +import com.dotcms.rendering.velocity.viewtools.bean.XSLTranformationDoc; +import com.dotcms.rendering.velocity.viewtools.cache.XSLTransformationCache; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; @@ -21,8 +17,6 @@ import com.dotmarketing.util.Config; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; -import com.dotcms.rendering.velocity.viewtools.bean.XSLTranformationDoc; -import com.dotcms.rendering.velocity.viewtools.cache.XSLTransformationCache; import com.liferay.portal.PortalException; import com.liferay.portal.SystemException; import com.liferay.portal.model.User; @@ -31,6 +25,12 @@ import java.nio.file.Files; import java.util.Date; import javax.servlet.http.HttpServletRequest; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; import org.apache.velocity.context.Context; import org.apache.velocity.context.InternalContextAdapterImpl; import org.apache.velocity.tools.view.context.ViewContext; diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/cache/XmlToolCache.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/cache/XmlToolCache.java index 1835b0d2727c..5400f021c525 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/cache/XmlToolCache.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/cache/XmlToolCache.java @@ -1,14 +1,13 @@ package com.dotcms.rendering.velocity.viewtools.cache; -import java.util.Date; import com.dotcms.rendering.velocity.viewtools.bean.XmlToolDoc; -import com.dotcms.repackage.org.bouncycastle.crypto.digests.SHA1Digest; -import com.dotcms.repackage.org.bouncycastle.util.encoders.Base64; - import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotCacheAdministrator; import com.dotmarketing.business.DotCacheException; import com.dotmarketing.util.Logger; +import java.util.Date; +import org.bouncycastle.crypto.digests.SHA1Digest; +import org.bouncycastle.util.encoders.Base64; diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/BinaryMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/BinaryMap.java index 5ff9df98e233..1847daa8e1a0 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/BinaryMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/BinaryMap.java @@ -1,6 +1,5 @@ package com.dotcms.rendering.velocity.viewtools.content; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.structure.model.Field; @@ -8,10 +7,10 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.util.FileUtil; - -import java.awt.*; +import java.awt.Dimension; import java.io.File; import java.io.IOException; +import org.apache.commons.lang.builder.ToStringBuilder; /** * A helper class to provide an object to return to the dotCMS when a content has a binary field diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/CheckboxMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/CheckboxMap.java index 66220b2e90df..caabc3a46a8e 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/CheckboxMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/CheckboxMap.java @@ -1,13 +1,11 @@ package com.dotcms.rendering.velocity.viewtools.content; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.structure.model.Field; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; /** * The class helps get at the values and options of a Checkbox Field belonging to a piece of content. diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/ContentMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/ContentMap.java index 6d7d8882da53..73fd4919c4a2 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/ContentMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/ContentMap.java @@ -3,20 +3,10 @@ */ package com.dotcms.rendering.velocity.viewtools.content; -import java.io.File; -import java.io.IOException; -import java.io.StringWriter; -import java.util.*; - -import com.dotmarketing.tag.model.Tag; -import org.apache.velocity.Template; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.context.Context; - import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.rendering.velocity.services.VelocityType; import com.dotcms.rendering.velocity.util.VelocityUtil; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; +import com.dotcms.rendering.velocity.viewtools.ContentsWebAPI; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; @@ -30,13 +20,26 @@ import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.KeyValueFieldUtil; import com.dotmarketing.portlets.structure.model.Structure; +import com.dotmarketing.tag.model.Tag; import com.dotmarketing.util.Config; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.UtilMethods; -import com.dotcms.rendering.velocity.viewtools.ContentsWebAPI; import com.liferay.portal.model.User; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.velocity.Template; +import org.apache.velocity.app.VelocityEngine; +import org.apache.velocity.context.Context; /** * The purpose of this object is to provide an easy way on the frontend of dotCMS diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/FileAssetMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/FileAssetMap.java index 419f373373dc..71bc886394ee 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/FileAssetMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/FileAssetMap.java @@ -1,11 +1,12 @@ package com.dotcms.rendering.velocity.viewtools.content; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; + import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.fileassets.business.FileAsset; import com.dotmarketing.portlets.fileassets.business.FileAssetAPI; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.lang.builder.ToStringBuilder; public class FileAssetMap extends FileAsset { private static final long serialVersionUID = -3798679965316360641L; diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/MultiSelectMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/MultiSelectMap.java index c6c4c7d92e32..61f426ccffd4 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/MultiSelectMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/MultiSelectMap.java @@ -1,13 +1,11 @@ package com.dotcms.rendering.velocity.viewtools.content; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.structure.model.Field; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; /** * The class helps get at the values and options of a MultiSelect Field belonging to a piece of content. diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/PaginatedContentList.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/PaginatedContentList.java index 06829a7b56aa..061a79125390 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/PaginatedContentList.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/PaginatedContentList.java @@ -1,7 +1,7 @@ package com.dotcms.rendering.velocity.viewtools.content; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.util.PaginatedArrayList; +import org.apache.commons.lang.builder.ToStringBuilder; public class PaginatedContentList extends PaginatedArrayList { diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/RadioMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/RadioMap.java index b405079161f4..4e0b91cc5407 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/RadioMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/RadioMap.java @@ -1,12 +1,11 @@ package com.dotcms.rendering.velocity.viewtools.content; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.structure.model.Field; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; /** * The class helps get at the values and options of a Select Field belonging to a piece of content. diff --git a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/SelectMap.java b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/SelectMap.java index 7823b364cf00..973eaf40a026 100644 --- a/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/SelectMap.java +++ b/dotCMS/src/main/java/com/dotcms/rendering/velocity/viewtools/content/SelectMap.java @@ -1,13 +1,11 @@ package com.dotcms.rendering.velocity.viewtools.content; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.structure.model.Field; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; /** * The class helps get at the values and options of a Select Field belonging to a piece of content. diff --git a/dotCMS/src/main/java/com/dotcms/rest/BundleResource.java b/dotCMS/src/main/java/com/dotcms/rest/BundleResource.java index 595fdcf2c7a0..a9c635b3b3a0 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/BundleResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/BundleResource.java @@ -8,7 +8,6 @@ import com.dotcms.repackage.javax.ws.rs.core.CacheControl; import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringEscapeUtils; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.DotStateException; import com.dotmarketing.exception.DotDataException; @@ -21,6 +20,7 @@ import java.net.URLDecoder; import java.util.List; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringEscapeUtils; @Path("/bundle") diff --git a/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java b/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java index 663b2335ee2e..744f04c97488 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java @@ -17,13 +17,7 @@ import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.transform.field.LegacyFieldTransformer; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.converters.Converter; -import com.dotcms.repackage.com.thoughtworks.xstream.converters.MarshallingContext; -import com.dotcms.repackage.com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.dotcms.repackage.com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.dotcms.repackage.com.thoughtworks.xstream.io.HierarchicalStreamWriter; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; + import com.dotcms.repackage.javax.ws.rs.Consumes; import com.dotcms.repackage.javax.ws.rs.GET; import com.dotcms.repackage.javax.ws.rs.POST; @@ -69,6 +63,13 @@ import com.dotmarketing.util.*; import com.dotcms.rendering.velocity.viewtools.content.util.ContentUtils; import com.liferay.portal.model.User; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.Converter; +import com.thoughtworks.xstream.converters.MarshallingContext; +import com.thoughtworks.xstream.converters.UnmarshallingContext; +import com.thoughtworks.xstream.io.HierarchicalStreamReader; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import com.thoughtworks.xstream.io.xml.DomDriver; import static com.dotmarketing.util.NumberUtil.*; @@ -693,6 +694,8 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co return map; } + + } @PUT diff --git a/dotCMS/src/main/java/com/dotcms/rest/EnvironmentResource.java b/dotCMS/src/main/java/com/dotcms/rest/EnvironmentResource.java index 5c3459cedbb4..1b099c3787bd 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/EnvironmentResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/EnvironmentResource.java @@ -9,8 +9,8 @@ import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringEscapeUtils; import com.dotcms.rest.exception.ForbiddenException; + import com.dotmarketing.business.APILocator; import com.dotmarketing.business.Role; import com.dotmarketing.exception.DotDataException; @@ -23,6 +23,7 @@ import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringEscapeUtils; @Path("/environment") diff --git a/dotCMS/src/main/java/com/dotcms/rest/OSGIResource.java b/dotCMS/src/main/java/com/dotcms/rest/OSGIResource.java index dc6da3c812ac..ef4cb3d11c1b 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/OSGIResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/OSGIResource.java @@ -1,7 +1,5 @@ package com.dotcms.rest; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.repackage.javax.ws.rs.GET; import com.dotcms.repackage.javax.ws.rs.Path; import com.dotcms.repackage.javax.ws.rs.PathParam; @@ -10,7 +8,7 @@ import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; import com.dotcms.rest.exception.ForbiddenException; -import org.osgi.framework.Bundle; + import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.util.Logger; @@ -19,15 +17,22 @@ import com.dotmarketing.util.json.JSONArray; import com.dotmarketing.util.json.JSONException; import com.dotmarketing.util.json.JSONObject; -import com.liferay.portal.model.User; + import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.servlet.http.HttpServletRequest; +import org.osgi.framework.Bundle; + +import com.liferay.portal.model.User; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; + /** * @author Jonathan Gamba * Date: 28/05/14 @@ -38,15 +43,19 @@ public class OSGIResource { List systemBundles = Arrays.asList( "org.apache.felix.http.bundle", "org.apache.felix.gogo.shell", - "org.apache.felix.framework", "org.apache.felix.bundlerepository", + "org.apache.felix.framework", "org.apache.felix.fileinstall", "org.apache.felix.gogo.command", "org.apache.felix.gogo.runtime", - "org.easymock", - "org.objenesis", "osgi.cmpn", - "osgi.core" + "osgi.core", + "org.apache.tika.core", + "org.apache.tika.bundle", + "slf4j.simple", + "slf4j.api", + "jcl.over.slf4j", + "com.dotcms.tika" ); private final WebResource webResource = new WebResource(); diff --git a/dotCMS/src/main/java/com/dotcms/rest/TestResource.java b/dotCMS/src/main/java/com/dotcms/rest/TestResource.java index ad933d165942..8c513c4f23ed 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/TestResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/TestResource.java @@ -1,7 +1,5 @@ package com.dotcms.rest; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.repackage.javax.ws.rs.Consumes; import com.dotcms.repackage.javax.ws.rs.FormParam; import com.dotcms.repackage.javax.ws.rs.GET; @@ -17,6 +15,8 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.json.JSONException; import com.dotmarketing.util.json.JSONObject; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.IOException; import java.util.HashMap; import java.util.Map; diff --git a/dotCMS/src/main/java/com/dotcms/rest/WebResource.java b/dotCMS/src/main/java/com/dotcms/rest/WebResource.java index aec8244dc84e..f339853e957f 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/WebResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/WebResource.java @@ -1,13 +1,11 @@ package com.dotcms.rest; import com.dotcms.auth.providers.jwt.JsonWebTokenAuthCredentialProcessor; -import com.dotcms.auth.providers.jwt.JsonWebTokenUtils; import com.dotcms.auth.providers.jwt.services.JsonWebTokenAuthCredentialProcessorImpl; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.base.Optional; import com.dotcms.repackage.javax.ws.rs.core.Response; import com.dotcms.repackage.org.apache.commons.io.IOUtils; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.repackage.org.codehaus.jettison.json.JSONException; import com.dotcms.repackage.org.codehaus.jettison.json.JSONObject; import com.dotcms.repackage.org.glassfish.jersey.internal.util.Base64; @@ -25,12 +23,12 @@ import com.dotmarketing.cms.login.factories.LoginFactory; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; -import com.dotmarketing.util.*; -import com.dotmarketing.util.WebKeys; +import com.dotmarketing.util.Config; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.SecurityLogger; +import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; -import com.liferay.portal.util.*; - import java.io.IOException; import java.io.InputStream; import java.util.HashMap; @@ -38,6 +36,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; public class WebResource { diff --git a/dotCMS/src/main/java/com/dotcms/rest/annotation/HeaderFilter.java b/dotCMS/src/main/java/com/dotcms/rest/annotation/HeaderFilter.java index d7ec1b9e54da..d042bc4cc617 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/annotation/HeaderFilter.java +++ b/dotCMS/src/main/java/com/dotcms/rest/annotation/HeaderFilter.java @@ -1,18 +1,17 @@ package com.dotcms.rest.annotation; +import static com.dotcms.util.CollectionsUtils.map; + import com.dotcms.repackage.javax.annotation.Priority; -import com.dotcms.repackage.javax.inject.Singleton; import com.dotcms.repackage.javax.ws.rs.Priorities; import com.dotcms.repackage.javax.ws.rs.container.ContainerRequestContext; import com.dotcms.repackage.javax.ws.rs.container.ContainerResponseContext; import com.dotcms.repackage.javax.ws.rs.container.ContainerResponseFilter; import com.dotcms.repackage.javax.ws.rs.core.MultivaluedMap; - import java.io.IOException; import java.lang.annotation.Annotation; import java.util.Map; - -import static com.dotcms.util.CollectionsUtils.map; +import javax.inject.Singleton; /** * This decorator reads the annotations on the resources and includes header based on it based on them. diff --git a/dotCMS/src/main/java/com/dotcms/rest/annotation/RequestFilter.java b/dotCMS/src/main/java/com/dotcms/rest/annotation/RequestFilter.java index 33f545952a9f..7ebdb7b50b7c 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/annotation/RequestFilter.java +++ b/dotCMS/src/main/java/com/dotcms/rest/annotation/RequestFilter.java @@ -1,13 +1,13 @@ package com.dotcms.rest.annotation; +import static com.dotcms.util.CollectionsUtils.map; + import com.dotcms.api.web.HttpServletRequestThreadLocal; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.javax.inject.Singleton; import com.dotcms.repackage.javax.ws.rs.container.ContainerRequestContext; import com.dotcms.repackage.javax.ws.rs.container.ContainerRequestFilter; import com.dotcms.repackage.javax.ws.rs.container.ResourceInfo; import com.dotcms.repackage.javax.ws.rs.ext.Provider; -import com.dotcms.repackage.org.apache.struts.Globals; import com.dotcms.repackage.org.glassfish.jersey.server.ContainerRequest; import com.dotcms.repackage.org.glassfish.jersey.server.internal.routing.UriRoutingContext; import com.dotmarketing.cms.factories.PublicCompanyFactory; @@ -17,16 +17,15 @@ import com.liferay.portal.util.PropsUtil; import com.liferay.portal.util.WebAppPool; import com.liferay.portal.util.WebKeys; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import java.io.IOException; import java.lang.annotation.Annotation; import java.lang.reflect.Proxy; import java.util.Map; - -import static com.dotcms.util.CollectionsUtils.map; +import javax.inject.Singleton; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.struts.Globals; /** * This filter decorates the headers in addition to apply Request Commander associated to the annotations. diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/AuthenticationResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/AuthenticationResource.java index 03c7e90db284..788313530c0c 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/AuthenticationResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/AuthenticationResource.java @@ -9,7 +9,6 @@ import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.struts.Globals; import com.dotcms.repackage.org.glassfish.jersey.server.JSONP; import com.dotcms.rest.ErrorEntity; import com.dotcms.rest.ResponseEntityView; @@ -19,7 +18,11 @@ import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.util.SecurityLogger; -import com.liferay.portal.*; +import com.liferay.portal.NoSuchUserException; +import com.liferay.portal.RequiredLayoutException; +import com.liferay.portal.UserActiveException; +import com.liferay.portal.UserEmailAddressException; +import com.liferay.portal.UserPasswordException; import com.liferay.portal.auth.AuthException; import com.liferay.portal.ejb.UserLocalManager; import com.liferay.portal.ejb.UserLocalManagerFactory; @@ -29,15 +32,15 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.WebKeys; import com.liferay.util.LocaleUtil; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import java.io.Serializable; import java.util.Arrays; import java.util.Date; import java.util.Locale; import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.apache.struts.Globals; /** * This resource does the authentication, if the authentication is successfully diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ResetPasswordTokenUtil.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ResetPasswordTokenUtil.java index 15da6166a4ac..69aa5b6e0c6c 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ResetPasswordTokenUtil.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/authentication/ResetPasswordTokenUtil.java @@ -1,13 +1,11 @@ package com.dotcms.rest.api.v1.authentication; -import com.dotcms.repackage.org.apache.commons.lang.RandomStringUtils; -import com.dotmarketing.business.APILocator; import com.dotmarketing.util.Config; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - import java.util.Calendar; import java.util.Date; +import org.apache.commons.lang.RandomStringUtils; /** * Util to manage the token that is used in the user reset password proccess. diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/folder/FolderHelper.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/folder/FolderHelper.java index 0ecfc58ccb81..25478848acde 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/folder/FolderHelper.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/folder/FolderHelper.java @@ -1,12 +1,9 @@ package com.dotcms.rest.api.v1.folder; -import com.dotcms.repackage.net.sf.hibernate.expression.Example; -import com.dotcms.repackage.org.apache.commons.collections.map.HashedMap; import com.dotcms.rest.ErrorEntity; import com.dotcms.util.TreeableNameComparator; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.Treeable; import com.dotmarketing.business.UserAPI; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; @@ -15,7 +12,6 @@ import com.dotmarketing.portlets.folders.model.Folder; import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/menu/MenuResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/menu/MenuResource.java index 988b3800c658..7cebe39db69f 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/menu/MenuResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/menu/MenuResource.java @@ -7,7 +7,6 @@ import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringEscapeUtils; import com.dotcms.repackage.org.glassfish.jersey.server.JSONP; import com.dotcms.rest.ResponseEntityView; import com.dotcms.rest.WebResource; @@ -16,20 +15,25 @@ import com.dotcms.rest.annotation.NoCache; import com.dotcms.rest.exception.ForbiddenException; import com.dotcms.rest.exception.mapper.ExceptionMapperUtil; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.ApiProvider; +import com.dotmarketing.business.Layout; +import com.dotmarketing.business.LayoutAPI; +import com.dotmarketing.business.NoSuchUserException; +import com.dotmarketing.business.UserAPI; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.liferay.portal.language.LanguageException; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; import com.liferay.portal.util.WebKeys; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringEscapeUtils; /** * Encapsulates the Menu Resource @@ -93,7 +97,6 @@ public Response getMenus(@Context final HttpServletRequest httpServletRequest) t final User user = this.userAPI .loadUserById((String) session.getAttribute(WebKeys.USER_ID)); final List layouts = this.layoutAPI.loadLayoutsForUser(user); - final MenuContext menuContext = new MenuContext(httpServletRequest, user); for (int layoutIndex = 0; layoutIndex < layouts.size(); layoutIndex++) { diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResource.java index d80a57e4d699..839612156a4e 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResource.java @@ -1,8 +1,16 @@ package com.dotcms.rest.api.v1.page; +import com.dotcms.business.WrapInTransaction; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.javax.ws.rs.*; +import com.dotcms.repackage.javax.ws.rs.Consumes; +import com.dotcms.repackage.javax.ws.rs.DefaultValue; +import com.dotcms.repackage.javax.ws.rs.GET; +import com.dotcms.repackage.javax.ws.rs.POST; +import com.dotcms.repackage.javax.ws.rs.Path; +import com.dotcms.repackage.javax.ws.rs.PathParam; +import com.dotcms.repackage.javax.ws.rs.Produces; +import com.dotcms.repackage.javax.ws.rs.QueryParam; import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; @@ -11,31 +19,40 @@ import com.dotcms.rest.ResponseEntityView; import com.dotcms.rest.WebResource; import com.dotcms.rest.annotation.NoCache; +import com.dotcms.rest.api.v1.page.PageContainerForm.ContainerEntry; import com.dotcms.rest.exception.BadRequestException; import com.dotcms.rest.exception.NotFoundException; import com.dotcms.rest.exception.mapper.ExceptionMapperUtil; + +import com.dotmarketing.beans.Host; import com.dotmarketing.beans.MultiTree; -import com.dotmarketing.business.web.WebAPILocator; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.PermissionLevel; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; -import com.dotmarketing.portlets.containers.model.Container; +import com.dotmarketing.factories.MultiTreeFactory; import com.dotmarketing.portlets.contentlet.model.Contentlet; +import com.dotmarketing.portlets.contentlet.model.ContentletVersionInfo; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; -import com.dotmarketing.portlets.languagesmanager.model.Language; +import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import com.dotmarketing.portlets.templates.model.Template; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; +import com.dotmarketing.util.UUIDUtil; +import com.dotmarketing.util.WebKeys; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.google.common.collect.ImmutableMap; -import com.liferay.portal.model.User; -import org.apache.velocity.exception.MethodInvocationException; -import org.apache.velocity.exception.ParseErrorException; -import org.apache.velocity.exception.ResourceNotFoundException; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectWriter; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMap.Builder; +import com.liferay.portal.model.User; /** * Provides different methods to access information about HTML Pages in dotCMS. For example, @@ -208,10 +225,39 @@ public Response renderHTMLOnly(@Context final HttpServletRequest request, PageMode.setPageMode(request, mode); try { - final HTMLPageAsset page = this.pageResourceHelper.getPage(request, user, uri, mode); + + final HTMLPageAsset page = (UUIDUtil.isUUID(uri)) ? (HTMLPageAsset) APILocator.getHTMLPageAssetAPI().findPage(uri, user, mode.respectAnonPerms) : this.pageResourceHelper.getPage(request, user, uri, mode); + + + final ContentletVersionInfo info = APILocator.getVersionableAPI().getContentletVersionInfo(page.getIdentifier(), page.getLanguageId()); + final Builder pageMapBuilder = ImmutableMap.builder(); + final boolean canLock = APILocator.getContentletAPI().canLock(page, user); + final String lockedBy= (info.getLockedBy()!=null) ? info.getLockedBy() : null; + final String lockedUserName = (info.getLockedBy()!=null) ? APILocator.getUserAPI().loadUserById(info.getLockedBy()).getFullName() : null; + + + Host host = APILocator.getHostAPI().find(page.getHost(), user, mode.respectAnonPerms); + + request.setAttribute(WebKeys.CURRENT_HOST, host); + request.getSession().setAttribute(WebKeys.CURRENT_HOST, host); + final ObjectWriter objectWriter = JsonMapper.mapper.writer().withDefaultPrettyPrinter(); final String html = this.pageResourceHelper.getPageRendered(page, request, response, user, mode); - final Response.ResponseBuilder responseBuilder = Response.ok(ImmutableMap.of("render",html, "identifier", - page.getIdentifier(), "inode", page.getInode())); + pageMapBuilder.put("render",html ) + .put("canLock", canLock) + .put("workingInode", info.getWorkingInode()) + .put("shortyWorking", APILocator.getShortyAPI().shortify(info.getWorkingInode())); + pageMapBuilder.putAll(page.getMap()); + + if(lockedBy!=null) { + pageMapBuilder.put("lockedOn", info.getLockedOn()) + .put("lockedBy", lockedBy) + .put("lockedByName", lockedUserName); + } + if(info.getLiveInode()!=null) { + pageMapBuilder.put("liveInode", info.getLiveInode()) + .put("shortyLive", APILocator.getShortyAPI().shortify(info.getLiveInode())); + } + final Response.ResponseBuilder responseBuilder = Response.ok(pageMapBuilder.build()); responseBuilder.header("Access-Control-Expose-Headers", "Authorization"); responseBuilder.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, " + "Content-Type, " + "Accept, Authorization"); @@ -251,7 +297,9 @@ public Response renderHTMLOnly(@Context final HttpServletRequest request, @POST @Produces({MediaType.APPLICATION_JSON, "application/javascript"}) @Path("/{pageId}/layout") - public Response saveLayout(@Context final HttpServletRequest request, @PathParam("pageId") final String pageId, + public Response saveLayout(@Context final HttpServletRequest request, + @Context final HttpServletResponse response, + @PathParam("pageId") final String pageId, final PageForm form) { final InitDataObject auth = webResource.init(false, request, true); @@ -260,9 +308,14 @@ public Response saveLayout(@Context final HttpServletRequest request, @PathParam Response res = null; try { + IHTMLPage page = this.pageResourceHelper.getPage(user, pageId); + this.pageResourceHelper.saveTemplate(user, page, form); - final Template templateSaved = this.pageResourceHelper.saveTemplate(user, pageId, form); - res = Response.ok(new ResponseEntityView(templateSaved)).build(); + final PageView pageView = this.pageResourceHelper.getPageMetadataRendered(request, response, user, + page.getURI(), false); + final String json = this.pageResourceHelper.asJson(pageView); + + res = Response.ok(new ResponseEntityView(json)).build(); } catch (DotSecurityException e) { final String errorMsg = String.format("DotSecurityException on PageResource.saveLayout, parameters: %s, %s %s: ", @@ -369,12 +422,12 @@ public final Response addContent(@Context final HttpServletRequest req, @PathPar Response res = null; try { - final Contentlet page = pageResourceHelper.getPage(user, pageId); + final IHTMLPage page = pageResourceHelper.getPage(user, pageId); if (page == null) { return ExceptionMapperUtil.createResponse(Response.Status.BAD_REQUEST); } - pageResourceHelper.checkPagePermission(user, page); + APILocator.getPermissionAPI().checkPermission(page, PermissionLevel.EDIT, user); pageResourceHelper.saveContent(pageId, pageContainerForm.getContainerEntries()); res = Response.ok(new ResponseEntityView("ok")).build(); diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResourceHelper.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResourceHelper.java index 085cb3fb9562..5c8922bc5d1b 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResourceHelper.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/page/PageResourceHelper.java @@ -2,10 +2,12 @@ import com.dotcms.api.web.HttpServletRequestThreadLocal; import com.dotcms.business.CloseDB; +import com.dotcms.business.WrapInTransaction; +import com.dotcms.rendering.velocity.services.VelocityResourceKey; +import com.dotcms.rendering.velocity.servlet.VelocityModeHandler; import com.dotcms.rendering.velocity.viewtools.DotTemplateTool; import com.dotcms.rest.exception.BadRequestException; import com.dotcms.rest.exception.NotFoundException; - import com.dotcms.uuid.shorty.ShortyId; import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Host; @@ -19,6 +21,7 @@ import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.factories.MultiTreeAPI; +import com.dotmarketing.factories.MultiTreeFactory; import com.dotmarketing.portlets.containers.business.ContainerAPI; import com.dotmarketing.portlets.containers.model.Container; import com.dotmarketing.portlets.contentlet.business.ContentletAPI; @@ -26,6 +29,7 @@ import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.htmlpageasset.business.HTMLPageAssetAPI; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; +import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; import com.dotmarketing.portlets.languagesmanager.model.Language; import com.dotmarketing.portlets.templates.business.TemplateAPI; @@ -33,9 +37,14 @@ import com.dotmarketing.portlets.templates.model.Template; import com.dotmarketing.util.PageMode; import com.dotmarketing.util.URLUtils; +import com.dotmarketing.util.UUIDUtil; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.VelocityUtil; - +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectWriter; +import com.liferay.portal.PortalException; +import com.liferay.portal.SystemException; +import com.liferay.portal.model.User; import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; @@ -46,12 +55,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.velocity.context.Context; import org.apache.velocity.exception.ResourceNotFoundException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectWriter; -import com.liferay.portal.PortalException; -import com.liferay.portal.SystemException; -import com.liferay.portal.model.User; - +import org.jetbrains.annotations.NotNull; /** * Provides the utility methods that interact with HTML Pages in dotCMS. These methods are used by @@ -77,7 +81,7 @@ public class PageResourceHelper implements Serializable { private final LanguageAPI langAPI = APILocator.getLanguageAPI(); private final MultiTreeAPI multiTreeAPI = APILocator.getMultiTreeAPI(); - private static final boolean RESPECT_FE_ROLES = Boolean.TRUE; + /** * Private constructor @@ -86,7 +90,11 @@ private PageResourceHelper() { } + @WrapInTransaction public void saveContent(final String pageId, final List containerEntries) throws DotDataException { + + MultiTreeFactory.deleteMultiTreeByParent(pageId); + final List multiTres = new ArrayList<>(); for (final PageContainerForm.ContainerEntry containerEntry : containerEntries) { @@ -189,9 +197,8 @@ public String getPageRendered(final HttpServletRequest request, final HttpServle public String getPageRendered(final HTMLPageAsset page, final HttpServletRequest request, final HttpServletResponse response, final User user, final PageMode mode) throws Exception { - final String siteName = null == request.getParameter(Host.HOST_VELOCITY_VAR_NAME) ? - request.getServerName() : request.getParameter(Host.HOST_VELOCITY_VAR_NAME); - final Host site = this.hostWebAPI.resolveHostName(siteName, user, RESPECT_FE_ROLES); + + final Host site =resolveSite(request, user); if(null==page) { response.sendError(HttpServletResponse.SC_NOT_FOUND); @@ -201,16 +208,13 @@ public String getPageRendered(final HTMLPageAsset page, final HttpServletRequest APILocator.getPermissionAPI().checkPermission(page, PermissionLevel.READ, user); } - return VelocityUtil.eval(mode, request, response, page.getURI(), site); + return VelocityModeHandler.modeHandler(mode, request, response, page.getURI(), site).eval(); } public HTMLPageAsset getPage(final HttpServletRequest request, final User user, final String uri, final PageMode mode) throws DotSecurityException, DotDataException { - final String siteName = null == request.getParameter(Host.HOST_VELOCITY_VAR_NAME) ? - request.getServerName() : request.getParameter(Host.HOST_VELOCITY_VAR_NAME); - final Host site = this.hostWebAPI.resolveHostName(siteName, user, RESPECT_FE_ROLES); - + final Host site =resolveSite(request, user); final String pageUri = URLUtils.addSlashIfNeeded(uri); return (HTMLPageAsset) this.htmlPageAssetAPI.getPageByPath(pageUri, site, this.languageAPI.getDefaultLanguage().getId(), mode.respectAnonPerms); @@ -234,12 +238,14 @@ private PageView getPageMetadata(final HttpServletRequest request, final HttpSer final Context velocityContext = VelocityUtil.getWebContext(request, response); - final String siteName = null == request.getParameter(Host.HOST_VELOCITY_VAR_NAME) ? - request.getServerName() : request.getParameter(Host.HOST_VELOCITY_VAR_NAME); - final Host site = this.hostWebAPI.resolveHostName(siteName, user, RESPECT_FE_ROLES); + final Host site =resolveSite(request, user); + + + final String pageUri = (UUIDUtil.isUUID(uri) ||( uri.length()>0 && '/' == uri.charAt(0))) ? uri : ("/" + uri); + - final String pageUri = (uri.length()>0 && '/' == uri.charAt(0)) ? uri : ("/" + uri); - final HTMLPageAsset page = (HTMLPageAsset) this.htmlPageAssetAPI.getPageByPath(pageUri, + + final HTMLPageAsset page = (UUIDUtil.isUUID(pageUri)) ? (HTMLPageAsset) this.htmlPageAssetAPI.findPage(pageUri, user, mode.respectAnonPerms) : (HTMLPageAsset) this.htmlPageAssetAPI.getPageByPath(pageUri, site, this.languageAPI.getDefaultLanguage().getId(), mode.showLive); final Template template = mode.showLive ? (Template) this.versionableAPI.findLiveVersion(page.getTemplateId(), user, mode.respectAnonPerms) : @@ -250,21 +256,25 @@ private PageView getPageMetadata(final HttpServletRequest request, final HttpSer final Map mappedContainers = this.getMappedContainers(template, user); if (isRendered) { - renderContainer(mappedContainers, velocityContext); + + renderContainer(mappedContainers, velocityContext, mode); + } return new PageView(site, template, mappedContainers, page, layout); } - private void renderContainer(final Map containers, final Context velocityContext ) - throws DotDataException { + + private void renderContainer(final Map containers, final Context velocityContext, PageMode mode ) + throws DotSecurityException, DotDataException { + for (final ContainerView containerView : containers.values()) { final Container container = containerView.getContainer(); - + VelocityResourceKey key = new VelocityResourceKey(container, mode); try { - final String rendered = VelocityUtil.mergeTemplate("/live/" + container.getIdentifier() + - ".container", velocityContext); + + final String rendered = VelocityUtil.mergeTemplate(key.path, velocityContext); containerView.setRendered(rendered); } catch (Exception e) { throw new DotDataException(String.format("Container '%s' could not be " + @@ -273,6 +283,8 @@ private void renderContainer(final Map containers, final } } + + private Map getMappedContainers(final Template template, final User user) throws DotSecurityException, DotDataException { @@ -299,25 +311,22 @@ public String asJson(final PageView pageView) throws JsonProcessingException { return objectWriter.writeValueAsString(pageView); } - public Template saveTemplate(final User user, final String pageId, final PageForm pageForm) - throws BadRequestException, DotDataException, DotSecurityException, IOException { - final Contentlet page = this.contentletAPI.findContentletByIdentifier(pageId, false, - langAPI.getDefaultLanguage().getId(), user, false); + public Template saveTemplate(final User user, IHTMLPage htmlPageAsset, final PageForm pageForm) - if (page == null) { - throw new NotFoundException("An error occurred when proccessing the JSON request"); - } + throws BadRequestException, DotDataException, DotSecurityException, IOException { try { - Template templateSaved = this.saveTemplate(page, user, pageForm); + + + Template templateSaved = this.saveTemplate(htmlPageAsset, user, pageForm); - String templateId = page.getStringProperty(HTMLPageAssetAPI.TEMPLATE_FIELD); + String templateId = htmlPageAsset.getTemplateId(); if (!templateId.equals( templateSaved.getIdentifier() )) { - page.setStringProperty(Contentlet.INODE_KEY, null); - page.setStringProperty(HTMLPageAssetAPI.TEMPLATE_FIELD, templateSaved.getIdentifier()); - this.contentletAPI.checkin(page, user, false); + htmlPageAsset.setInode(null); + htmlPageAsset.setTemplateId(templateSaved.getIdentifier()); + this.contentletAPI.checkin((HTMLPageAsset)htmlPageAsset, user, false); } return templateSaved; @@ -326,19 +335,29 @@ public Template saveTemplate(final User user, final String pageId, final PageFor } } - public Contentlet getPage(final User user, final String pageId) throws DotSecurityException, DotDataException { - return this.contentletAPI.findContentletByIdentifier(pageId, false, + + + @NotNull + public IHTMLPage getPage(User user, String pageId) throws DotDataException, DotSecurityException { + final Contentlet page = this.contentletAPI.findContentletByIdentifier(pageId, false, langAPI.getDefaultLanguage().getId(), user, false); + + if (page == null) { + throw new NotFoundException("An error occurred when proccessing the JSON request"); + } + + return this.htmlPageAssetAPI.fromContentlet(page); + } - public Template saveTemplate(final Contentlet page, final User user, final PageForm pageForm) + public Template saveTemplate(final IHTMLPage page, final User user, final PageForm pageForm) throws BadRequestException, DotDataException, DotSecurityException, IOException { try { final Host host = getHost(pageForm.getHostId(), user); Template template = getTemplate(page, user, pageForm); - + template.setDrawed(true); return this.templateAPI.saveTemplate(template, host, user, false); } catch (Exception e) { throw new DotRuntimeException(e); @@ -350,26 +369,19 @@ public Template saveTemplate(final User user, final PageForm pageForm) return this.saveTemplate(null, user, pageForm); } - private Template getTemplate(Contentlet page, User user, PageForm form) throws DotDataException, DotSecurityException { - - Template result = null; - String templateId = page != null ? page.getStringProperty(HTMLPageAssetAPI.TEMPLATE_FIELD) : null; + private Template getTemplate(IHTMLPage page, User user, PageForm form) throws DotDataException, DotSecurityException { - if (UtilMethods.isSet(templateId)) { - result = this.templateAPI.findWorkingTemplate(templateId, user, false); - - if (!UtilMethods.isSet(form.getTitle()) && !result.isAnonymous()) { - result = new Template(); - } - } else { - result = new Template(); - } + final Template oldTemplate = this.templateAPI.findWorkingTemplate(page.getTemplateId(), user, false); + Template saveTemplate = new Template(); - result.setTitle(form.getTitle()); - result.setTheme(form.getThemeId()); - result.setDrawedBody(form.getLayout()); + if (UtilMethods.isSet(oldTemplate) && !UtilMethods.isSet(form.getTitle()) && oldTemplate.isAnonymous()) { + saveTemplate=oldTemplate; + } + saveTemplate.setTitle(form.getTitle()); + saveTemplate.setTheme((form.getThemeId()==null) ? oldTemplate.getTheme() : form.getThemeId()); + saveTemplate.setDrawedBody(form.getLayout()); - return result; + return saveTemplate; } private Host getHost(final String hostId, final User user) { @@ -415,8 +427,21 @@ public void checkPermission(final User user, final Contentlet contentlet, final .checkPermission(container, PermissionLevel.EDIT, user); } - public void checkPagePermission(final User user, final Contentlet htmlPageAsset) throws DotSecurityException { - APILocator.getPermissionAPI() - .checkPermission(htmlPageAsset, PermissionLevel.EDIT, user); + + + private Host resolveSite(HttpServletRequest request, User user) throws DotDataException, DotSecurityException { + PageMode mode = PageMode.get(request); + final String siteName = null == request.getParameter(Host.HOST_VELOCITY_VAR_NAME) ? + request.getServerName() : request.getParameter(Host.HOST_VELOCITY_VAR_NAME); + Host site = this.hostWebAPI.resolveHostName(siteName, user, mode.respectAnonPerms); + + if(mode.isAdmin && request.getSession().getAttribute( com.dotmarketing.util.WebKeys.CMS_SELECTED_HOST_ID )!=null) { + site = this.hostAPI.find(request.getSession().getAttribute( com.dotmarketing.util.WebKeys.CMS_SELECTED_HOST_ID ).toString(), user, mode.respectAnonPerms); + } + return site; + } + + + } diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteHelper.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteHelper.java index 21e352accb74..ddf4301c1ee1 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteHelper.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteHelper.java @@ -3,28 +3,21 @@ import static com.dotmarketing.util.Logger.debug; import static com.dotmarketing.util.Logger.error; -import java.io.Serializable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.util.PaginationUtil; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.util.HostNameComparator; import com.dotmarketing.business.web.WebAPILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.contentlet.business.HostAPI; -import com.dotmarketing.util.PaginatedArrayList; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - +import java.io.Serializable; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; /** * Provides all the utility methods used by the {@link SiteResource} diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteResource.java index 144b517c24eb..4d1d6c2a1734 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/site/SiteResource.java @@ -3,13 +3,6 @@ import static com.dotcms.util.CollectionsUtils.map; import com.dotcms.exception.ExceptionUtil; -import com.dotcms.rest.exception.ForbiddenException; -import com.dotmarketing.exception.DotSecurityException; -import java.io.Serializable; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.javax.ws.rs.GET; import com.dotcms.repackage.javax.ws.rs.PUT; @@ -20,21 +13,31 @@ import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.repackage.org.glassfish.jersey.server.JSONP; import com.dotcms.rest.InitDataObject; import com.dotcms.rest.ResponseEntityView; import com.dotcms.rest.WebResource; import com.dotcms.rest.annotation.NoCache; +import com.dotcms.rest.exception.ForbiddenException; import com.dotcms.rest.exception.mapper.ExceptionMapperUtil; import com.dotcms.util.I18NUtil; import com.dotcms.util.PaginationUtil; import com.dotcms.util.pagination.SitePaginator; + import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.UserAPI; +import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang.StringUtils; + import com.liferay.portal.model.User; /** diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/RuleTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/RuleTransform.java index 3374b50b40a7..342316972fa5 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/RuleTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/RuleTransform.java @@ -1,6 +1,8 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; +import static com.dotcms.util.DotPreconditions.checkNotNull; + +import com.dotcms.enterprise.rules.RulesAPI; import com.dotcms.rest.api.v1.sites.ruleengine.rules.conditions.ConditionGroupTransform; import com.dotcms.rest.api.v1.sites.ruleengine.rules.conditions.RestConditionGroup; import com.dotcms.rest.exception.BadRequestException; @@ -10,16 +12,17 @@ import com.dotmarketing.business.ApiProvider; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; -import com.dotcms.enterprise.rules.RulesAPI; import com.dotmarketing.portlets.rules.model.ConditionGroup; import com.dotmarketing.portlets.rules.model.Rule; import com.dotmarketing.portlets.rules.model.RuleAction; import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; - -import static com.dotcms.util.DotPreconditions.checkNotNull; - -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.SerializationUtils; /** * @author Geoff M. Granum diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionParameterTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionParameterTransform.java index 05a9a19f33d5..866529836ea5 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionParameterTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionParameterTransform.java @@ -1,11 +1,10 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules.actions; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; -import com.dotmarketing.business.ApiProvider; import com.dotcms.enterprise.rules.RulesAPI; +import com.dotmarketing.business.ApiProvider; import com.dotmarketing.portlets.rules.model.ParameterModel; - import java.util.function.Function; +import org.apache.commons.lang.SerializationUtils; public class RuleActionParameterTransform { private final RulesAPI rulesAPI; diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionTransform.java index 5817a9d7be7e..69e76c225ae6 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/actions/RuleActionTransform.java @@ -1,16 +1,13 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules.actions; -import com.dotcms.repackage.com.google.common.collect.Lists; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; -import com.dotmarketing.business.ApiProvider; import com.dotcms.enterprise.rules.RulesAPI; +import com.dotmarketing.business.ApiProvider; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.model.RuleAction; - -import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.function.Function; +import org.apache.commons.lang.SerializationUtils; public class RuleActionTransform { private final RulesAPI rulesAPI; diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionGroupTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionGroupTransform.java index 0014f4976a15..f7ec44eccf29 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionGroupTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionGroupTransform.java @@ -1,16 +1,15 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules.conditions; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; +import com.dotcms.enterprise.rules.RulesAPI; import com.dotcms.rest.exception.NotFoundException; import com.dotmarketing.business.ApiProvider; -import com.dotcms.enterprise.rules.RulesAPI; import com.dotmarketing.portlets.rules.model.Condition; import com.dotmarketing.portlets.rules.model.ConditionGroup; import com.dotmarketing.portlets.rules.model.LogicalOperator; import com.dotmarketing.util.Logger; - import java.util.HashMap; import java.util.Map; +import org.apache.commons.lang.SerializationUtils; public class ConditionGroupTransform { private final RulesAPI rulesAPI; diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionTransform.java index 926f4e1d234a..3bd0d32b4442 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ConditionTransform.java @@ -1,14 +1,13 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules.conditions; import com.dotcms.repackage.com.google.common.collect.Maps; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; import com.dotmarketing.portlets.rules.model.Condition; - import com.dotmarketing.portlets.rules.model.LogicalOperator; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.util.Logger; import java.util.Map; import java.util.function.Function; +import org.apache.commons.lang.SerializationUtils; public class ConditionTransform { private final ParameterModelTransform parameterModelTransform = new ParameterModelTransform(); diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ParameterModelTransform.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ParameterModelTransform.java index 7c26d4da7de9..96280b7c36ee 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ParameterModelTransform.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/sites/ruleengine/rules/conditions/ParameterModelTransform.java @@ -1,8 +1,8 @@ package com.dotcms.rest.api.v1.sites.ruleengine.rules.conditions; import com.dotcms.repackage.com.google.common.base.Function; -import com.dotcms.repackage.org.apache.commons.lang.SerializationUtils; import com.dotmarketing.portlets.rules.model.ParameterModel; +import org.apache.commons.lang.SerializationUtils; public class ParameterModelTransform { diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/system/i18n/I18NResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/system/i18n/I18NResource.java index b77b525586bc..39fca50db198 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/system/i18n/I18NResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/system/i18n/I18NResource.java @@ -1,7 +1,6 @@ package com.dotcms.rest.api.v1.system.i18n; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.com.google.common.collect.ImmutableMap; import com.dotcms.repackage.com.google.common.collect.Maps; import com.dotcms.repackage.javax.ws.rs.GET; import com.dotcms.repackage.javax.ws.rs.Path; @@ -9,7 +8,6 @@ import com.dotcms.repackage.javax.ws.rs.Produces; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.repackage.org.json.JSONException; import com.dotcms.repackage.org.json.JSONObject; import com.dotcms.rest.exception.BadRequestException; @@ -24,6 +22,7 @@ import java.util.Map; import java.util.Optional; import java.util.TreeMap; +import org.apache.commons.lang.StringUtils; /** * @author Geoff M. Granum diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UpdateUserForm.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UpdateUserForm.java index 81f1ed512576..a4deb2084904 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UpdateUserForm.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UpdateUserForm.java @@ -1,8 +1,8 @@ package com.dotcms.rest.api.v1.user; -import com.dotcms.repackage.com.drew.lang.annotations.NotNull; import com.dotcms.repackage.com.fasterxml.jackson.annotation.JsonProperty; import com.dotcms.repackage.com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.dotcms.repackage.javax.validation.constraints.NotNull; import com.dotcms.repackage.org.hibernate.validator.constraints.NotBlank; import com.dotcms.rest.api.Validated; diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UserResourceHelper.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UserResourceHelper.java index 8e3abce1aad7..9c2e80e3516e 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UserResourceHelper.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/user/UserResourceHelper.java @@ -1,16 +1,26 @@ package com.dotcms.rest.api.v1.user; +import static com.dotcms.util.CollectionsUtils.list; +import static com.dotcms.util.CollectionsUtils.map; + import com.dotcms.api.system.user.UserService; import com.dotcms.api.system.user.UserServiceFactory; import com.dotcms.cms.login.LoginServiceAPI; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.rest.ResponseEntityView; import com.dotcms.rest.api.v1.authentication.IncorrectPasswordException; import com.dotcms.util.SecurityUtils; import com.dotcms.util.SecurityUtils.DelayStrategy; import com.dotmarketing.beans.Host; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.Layout; +import com.dotmarketing.business.LayoutAPI; +import com.dotmarketing.business.NoSuchUserException; +import com.dotmarketing.business.PermissionAPI; +import com.dotmarketing.business.Role; +import com.dotmarketing.business.RoleAPI; +import com.dotmarketing.business.UserAPI; +import com.dotmarketing.business.UserProxyAPI; import com.dotmarketing.business.web.HostWebAPI; import com.dotmarketing.business.web.UserWebAPI; import com.dotmarketing.business.web.WebAPILocator; @@ -26,17 +36,14 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.WebKeys; import com.liferay.util.StringPool; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Map; - -import static com.dotcms.util.CollectionsUtils.list; -import static com.dotcms.util.CollectionsUtils.map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; /** * Provides utility methods to interact with information of dotCMS users and diff --git a/dotCMS/src/main/java/com/dotcms/rest/api/v1/workflow/WorkflowResource.java b/dotCMS/src/main/java/com/dotcms/rest/api/v1/workflow/WorkflowResource.java index d2ba7c752aee..f8d307a3faf8 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/api/v1/workflow/WorkflowResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/api/v1/workflow/WorkflowResource.java @@ -1,7 +1,14 @@ package com.dotcms.rest.api.v1.workflow; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.javax.ws.rs.*; +import com.dotcms.repackage.javax.ws.rs.DELETE; +import com.dotcms.repackage.javax.ws.rs.GET; +import com.dotcms.repackage.javax.ws.rs.POST; +import com.dotcms.repackage.javax.ws.rs.PUT; +import com.dotcms.repackage.javax.ws.rs.Path; +import com.dotcms.repackage.javax.ws.rs.PathParam; +import com.dotcms.repackage.javax.ws.rs.Produces; +import com.dotcms.repackage.javax.ws.rs.QueryParam; import com.dotcms.repackage.javax.ws.rs.core.Context; import com.dotcms.repackage.javax.ws.rs.core.MediaType; import com.dotcms.repackage.javax.ws.rs.core.Response; @@ -13,8 +20,13 @@ import com.dotcms.rest.api.v1.authentication.ResponseUtil; import com.dotcms.rest.exception.ForbiddenException; import com.dotcms.rest.exception.mapper.ExceptionMapperUtil; -import com.dotcms.workflow.form.*; +import com.dotcms.workflow.form.WorkflowActionForm; +import com.dotcms.workflow.form.WorkflowActionStepBean; +import com.dotcms.workflow.form.WorkflowActionStepForm; +import com.dotcms.workflow.form.WorkflowReorderBean; +import com.dotcms.workflow.form.WorkflowReorderWorkflowActionStepForm; import com.dotcms.workflow.helper.WorkflowHelper; + import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DoesNotExistException; import com.dotmarketing.exception.DotSecurityException; @@ -25,15 +37,16 @@ import com.dotmarketing.portlets.workflows.util.WorkflowImportExportUtil; import com.dotmarketing.portlets.workflows.util.WorkflowSchemeImportExportObject; import com.dotmarketing.util.Logger; -import com.google.common.annotations.Beta; -import com.liferay.portal.model.User; -import com.liferay.util.LocaleUtil; -import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.stream.IntStream; + +import javax.servlet.http.HttpServletRequest; + +import com.google.common.annotations.Beta; +import com.liferay.portal.model.User; +import com.liferay.util.LocaleUtil; @SuppressWarnings("serial") @Beta /* Non Official released */ @@ -638,9 +651,15 @@ public final Response deleteAction(@Context final HttpServletRequest request, /** * Todo: change the signature to be align with the rest implementation such as: reorderAction * Change the order of the steps in a scheme +<<<<<<< HEAD + * @param request HttpServletRequest + * @param stepId String stepid to reorder + * @param order int order +======= * @param request HttpServletRequest * @param stepId String step id * @param order int order for the step +>>>>>>> origin/master * @return Response */ @PUT @@ -773,4 +792,5 @@ public final Response exportScheme(@Context final HttpServletRequest request, return response; } // exportScheme. + } // E:O:F:WorkflowResource. \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/rest/validation/Preconditions.java b/dotCMS/src/main/java/com/dotcms/rest/validation/Preconditions.java index e9d3ed67d1ac..b11ee9250957 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/validation/Preconditions.java +++ b/dotCMS/src/main/java/com/dotcms/rest/validation/Preconditions.java @@ -1,8 +1,8 @@ package com.dotcms.rest.validation; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; +import org.apache.commons.lang.StringUtils; /** * Simple Precondition checks, influenced heavily by Google's version of same. diff --git a/dotCMS/src/main/java/com/dotcms/tika/TikaProxyService.java b/dotCMS/src/main/java/com/dotcms/tika/TikaProxyService.java new file mode 100644 index 000000000000..c68a03f65f23 --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/tika/TikaProxyService.java @@ -0,0 +1,271 @@ +package com.dotcms.tika; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.io.Serializable; +import java.net.URL; +import java.nio.file.Path; + +/** + * Public interface that should be use to expose {@link org.apache.tika.Tika} services through OSGI + * + * @author Jonathan Gamba + * 1/16/18 + */ +public interface TikaProxyService extends Serializable { + + /** + * Get the value associated to a metadata name. If many values are assiociated + * to the specified name, then the first one is returned. + * + * @param name of the metadata. + * @return the value associated to the specified metadata name. + */ + public String metadataGetName(String name); + + /** + * Returns an array of the names contained in the metadata. + * + * @return Metadata names + */ + public String[] metadataNames(); + + /** + * Detects the media type of the given document. The type detection is + * based on the content of the given document stream and the name of the + * document. + *

+ * If the document stream supports the + * {@link InputStream#markSupported() mark feature}, then the stream is + * marked and reset to the original position before this method returns. + * Only a limited number of bytes are read from the stream. + *

+ * The given document stream is not closed by this method. + * + * @param stream the document stream + * @param name document name + * @return detected media type + * @throws IOException if the stream can not be read + * @since Apache Tika 0.9 + */ + public String detect(InputStream stream, String name) throws IOException; + + /** + * Detects the media type of the given document. The type detection is + * based on the content of the given document stream and any given + * document metadata. The document stream can be null, + * in which case only the given document metadata is used for type + * detection. + *

+ * If the document stream supports the + * {@link InputStream#markSupported() mark feature}, then the stream is + * marked and reset to the original position before this method returns. + * Only a limited number of bytes are read from the stream. + *

+ * The given document stream is not closed by this method. + *

+ * Unlike in the {@link #parse(InputStream, Metadata)} method, the + * given document metadata is not modified by this method. + * + * @param stream the document stream, or null + * @return detected media type + * @throws IOException if the stream can not be read + */ + public String detect(InputStream stream) throws IOException; + + /** + * Detects the media type of the given document. The type detection is + * based on the first few bytes of a document and the document name. + *

+ * For best results at least a few kilobytes of the document data + * are needed. See also the other detect() methods for better + * alternatives when you have more than just the document prefix + * available for type detection. + * + * @param prefix first few bytes of the document + * @param name document name + * @return detected media type + * @since Apache Tika 0.9 + */ + public String detect(byte[] prefix, String name); + + /** + * Detects the media type of the given document. The type detection is + * based on the first few bytes of a document. + *

+ * For best results at least a few kilobytes of the document data + * are needed. See also the other detect() methods for better + * alternatives when you have more than just the document prefix + * available for type detection. + * + * @param prefix first few bytes of the document + * @return detected media type + * @since Apache Tika 0.9 + */ + public String detect(byte[] prefix); + + /** + * Detects the media type of the given file. The type detection is + * based on the document content and a potential known file extension. + *

+ * Use the {@link #detect(String)} method when you want to detect the + * type of the document without actually accessing the file. + * + * @param file the file + * @return detected media type + * @throws IOException if the file can not be read + * @see #detect(Path) + */ + public String detect(File file) throws IOException; + + /** + * Detects the media type of the resource at the given URL. The type + * detection is based on the document content and a potential known + * file extension included in the URL. + *

+ * Use the {@link #detect(String)} method when you want to detect the + * type of the document without actually accessing the URL. + * + * @param url the URL of the resource + * @return detected media type + * @throws IOException if the resource can not be read + */ + public String detect(URL url) throws IOException; + + /** + * Detects the media type of a document with the given file name. + * The type detection is based on known file name extensions. + *

+ * The given name can also be a URL or a full file path. In such cases + * only the file name part of the string is used for type detection. + * + * @param name the file name of the document + * @return detected media type + */ + public String detect(String name); + + /** + * Parses the given document and returns the extracted text content. + * Input metadata like a file name or a content type hint can be passed + * in the given metadata instance. Metadata information extracted from + * the document is returned in that same metadata instance. + *

+ * The returned reader will be responsible for closing the given stream. + * The stream and any associated resources will be closed at or before + * the time when the {@link Reader#close()} method is called. + * + * @param stream the document to be parsed + * @return extracted text content + * @throws IOException if the document can not be read or parsed + */ + public Reader parse(InputStream stream) throws IOException; + + /** + * Parses the given file and returns the extracted text content. + *

+ * Metadata information extracted from the document is returned in + * the supplied metadata instance. + * + * @param file the file to be parsed + * @return extracted text content + * @throws IOException if the file can not be read or parsed + * @see #parse(Path) + */ + public Reader parse(File file) throws IOException; + + /** + * Parses the resource at the given URL and returns the extracted + * text content. + * + * @param url the URL of the resource to be parsed + * @return extracted text content + * @throws IOException if the resource can not be read or parsed + */ + public Reader parse(URL url) throws IOException; + + /** + * Parses the given document and returns the extracted text content. + * The given input stream is closed by this method. + *

+ * To avoid unpredictable excess memory use, the returned string contains + * only up to {@link #getMaxStringLength()} first characters extracted + * from the input document. Use the {@link #setMaxStringLength(int)} + * method to adjust this limitation. + *

+ * NOTE: Unlike most other Tika methods that take an + * {@link InputStream}, this method will close the given stream for + * you as a convenience. With other methods you are still responsible + * for closing the stream or a wrapper instance returned by Tika. + * + * @param stream the document to be parsed + * @return extracted text content + * @throws IOException if the document can not be read + */ + public String parseToString(InputStream stream) throws Exception; + + /** + * Parses the given file and returns the extracted text content. + *

+ * To avoid unpredictable excess memory use, the returned string contains + * only up to {@link #getMaxStringLength()} first characters extracted + * from the input document. Use the {@link #setMaxStringLength(int)} + * method to adjust this limitation. + * + * @param file the file to be parsed + * @return extracted text content + * @throws IOException if the file can not be read + * @see #parseToString(Path) + */ + public String parseToString(File file) throws Exception; + + /** + * Parses the resource at the given URL and returns the extracted + * text content. + *

+ * To avoid unpredictable excess memory use, the returned string contains + * only up to {@link #getMaxStringLength()} first characters extracted + * from the input document. Use the {@link #setMaxStringLength(int)} + * method to adjust this limitation. + * + * @param url the URL of the resource to be parsed + * @return extracted text content + * @throws IOException if the resource can not be read + */ + public String parseToString(URL url) throws Exception; + + /** + * Returns the maximum length of strings returned by the + * parseToString methods. + * + * @return maximum string length, or -1 if the limit has been disabled + * @since Apache Tika 0.7 + */ + public int getMaxStringLength(); + + /** + * Sets the maximum length of strings returned by the parseToString + * methods. + * + * @param maxStringLength maximum string length, + * or -1 to disable this limit + * @since Apache Tika 0.7 + */ + public void setMaxStringLength(int maxStringLength); + + /** + * Creates a TikaInputStream from the file at the given path. + *

+ * Note that you must always explicitly close the returned stream to + * prevent leaking open file handles. + * + * @param binFile input file + * @return a TikaInputStream instance + * @throws IOException if an I/O error occurs + */ + public InputStream tikaInputStreamGet(File binFile) throws IOException; + + public String toString(); + +} \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/tika/TikaServiceBuilder.java b/dotCMS/src/main/java/com/dotcms/tika/TikaServiceBuilder.java new file mode 100644 index 000000000000..6e294514306b --- /dev/null +++ b/dotCMS/src/main/java/com/dotcms/tika/TikaServiceBuilder.java @@ -0,0 +1,20 @@ +package com.dotcms.tika; + +import java.io.Serializable; + +/** + * Builder interface that should be implemented in order to create {@link TikaProxyService} instances + * + * @author Jonathan Gamba + * 1/16/18 + */ +public interface TikaServiceBuilder extends Serializable { + + /** + * Returns a new instance of a {@link TikaProxyService}, each time this method is called + * the new instance of {@link TikaProxyService} creates a new instance of + * {@link org.apache.tika.Tika} in order to use it inside de {@link TikaProxyService} + */ + public TikaProxyService createTikaService(); + +} \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/tika/TikaUtils.java b/dotCMS/src/main/java/com/dotcms/tika/TikaUtils.java index abcd97cf0803..d9b1bee569fc 100644 --- a/dotCMS/src/main/java/com/dotcms/tika/TikaUtils.java +++ b/dotCMS/src/main/java/com/dotcms/tika/TikaUtils.java @@ -1,17 +1,14 @@ package com.dotcms.tika; -import com.dotcms.repackage.org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; +import com.dotcms.osgi.OSGIConstants; import com.dotcms.repackage.org.apache.commons.io.IOUtils; import com.dotcms.repackage.org.apache.commons.io.input.ReaderInputStream; -import com.dotcms.repackage.org.apache.tika.Tika; -import com.dotcms.repackage.org.apache.tika.io.TikaInputStream; -import com.dotcms.repackage.org.apache.tika.metadata.Metadata; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.fileassets.business.FileAssetAPI; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; +import com.dotmarketing.util.OSGIUtil; import com.dotmarketing.util.StringUtils; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; @@ -25,9 +22,39 @@ import java.util.HashMap; import java.util.Map; import java.util.zip.GZIPOutputStream; +import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; public class TikaUtils { + private TikaProxyService tikaService; + private Boolean osgiInitialized; + + public TikaUtils() { + + osgiInitialized = OSGIUtil.getInstance().isInitialized(); + if (osgiInitialized) { + + //Search for the TikaServiceBuilder service instance expose through OSGI + TikaServiceBuilder tikaServiceBuilder = OSGIUtil.getInstance() + .getService(TikaServiceBuilder.class, + OSGIConstants.BUNDLE_NAME_DOTCMS_TIKA); + if (null == tikaServiceBuilder) { + throw new IllegalStateException( + String.format("OSGI Service [%s] not found for bundle [%s]", + TikaServiceBuilder.class, + OSGIConstants.BUNDLE_NAME_DOTCMS_TIKA)); + } + + /* + Creating a new instance of the TikaProxyService in order to use the Tika services exposed in OSGI, + when the createTikaService method is called a new instance of Tika is also created + by the TikaProxyService implementation. + */ + this.tikaService = tikaServiceBuilder.createTikaService(); + } else { + Logger.error(this.getClass(), "OSGI Framework not initialized"); + } + } /** * Right now the method use the Tika facade directly for parse the document without any kind of restriction about the parser because the @@ -38,14 +65,20 @@ public class TikaUtils { * May 31, 2013 - 12:27:19 PM */ public Map getMetaDataMap(String inode, File binFile, String mimeType, boolean forceMemory) { - Map metaMap = new HashMap(); + + if (!osgiInitialized) { + Logger.error(this.getClass(), + "Unable to get file Meta Data, OSGI Framework not initialized"); + return new HashMap<>(); + } + + this.tikaService.setMaxStringLength(-1); + + Map metaMap = new HashMap<>(); // store content metadata on disk File contentM = APILocator.getFileAssetAPI().getContentMetadataFile(inode); - Tika t = new Tika(); - Metadata met = new Metadata(); - t.setMaxStringLength(-1); Reader fulltext = null; InputStream is = null; @@ -59,34 +92,19 @@ public Map getMetaDataMap(String inode, File binFile, String mim if (forceMemory) { // no worry about the limit and less time to process. - final String content = t.parseToString(Files.newInputStream(binFile.toPath()), met); - metaMap = new HashMap(); - for (int i = 0; i < met.names().length; i++) { - String name = met.names()[i]; - if (UtilMethods.isSet(name) && met.get(name) != null) { - // we will want to normalize our metadata for searching - String[] x = translateKey(name); - for (String y : x) { - metaMap.put(y, met.get(name)); - } - } - } + final String content = this.tikaService + .parseToString(Files.newInputStream(binFile.toPath())); + + //Creating the meta data map to use by our content + metaMap = buildMetaDataMap(); metaMap.put(FileAssetAPI.CONTENT_FIELD, content); } else { - is = TikaInputStream.get(binFile); - fulltext = t.parse(is, met); - metaMap = new HashMap(); - for (int i = 0; i < met.names().length; i++) { - String name = met.names()[i]; - if (UtilMethods.isSet(name) && met.get(name) != null) { - // we will want to normalize our metadata for searching - String[] x = translateKey(name); - for (String y : x) { - metaMap.put(y, met.get(name)); - } - } - } + is = this.tikaService.tikaInputStreamGet(binFile); + fulltext = this.tikaService.parse(is); + + //Creating the meta data map to use by our content + metaMap = buildMetaDataMap(); buf = new char[1024]; bytes = new byte[1024]; @@ -119,7 +137,7 @@ public Map getMetaDataMap(String inode, File binFile, String mim numOfChunks--; } while ((count = fulltext.read(buf)) > 0 && numOfChunks > 0); } catch (IOException ioExc) { - Logger.debug(this.getClass(), "Error Reading TikaParse Stream.", ioExc); + Logger.error(this.getClass(), "Error Reading TikaParse Stream.", ioExc); } finally { if (out != null) { try { @@ -142,11 +160,12 @@ public Map getMetaDataMap(String inode, File binFile, String mim } } } - } catch (IOException ioExc) { - Logger.debug(this.getClass(), "Error Reading TikaParse Stream.", ioExc); - } catch (Exception e) { + } catch (IOException ioExc) { + Logger.error(this.getClass(), "Error Reading TikaParse Stream.", ioExc); + } catch (Exception e) { Logger.error(this.getClass(), - "Could not parse file metadata for file : " + binFile.getAbsolutePath() + ". " + e.getMessage()); + "Could not parse file metadata for file : " + binFile.getAbsolutePath() + ". " + + e.getMessage()); } finally { if (null != fulltext) { IOUtils.closeQuietly(fulltext); @@ -158,9 +177,11 @@ public Map getMetaDataMap(String inode, File binFile, String mim metaMap.put(FileAssetAPI.SIZE_FIELD, String.valueOf(binFile.length())); } catch (Exception ex) { Logger.error(this.getClass(), - "Could not parse file metadata for file : " + binFile.getAbsolutePath() + ". " + ex.getMessage()); + "Could not parse file metadata for file : " + binFile.getAbsolutePath() + + ". " + ex.getMessage()); } } + User systemUser = null; try { systemUser = APILocator.getUserAPI().getSystemUser(); @@ -181,79 +202,78 @@ public Map getMetaDataMap(String inode, File binFile, String mim return metaMap; } - /** - * This method takes a file and uses tika to parse the metadata from it. It - * returns a Map of the metadata - * - * @param binFile - * @return - */ - public Map getMetaDataMap(String inode,File binFile, boolean forceMemory) { - return getMetaDataMap(inode,binFile, null, forceMemory); - } - -// /** -// * -// * @param binFile -// * @return -// */ -// private Parser getParser(File binFile) { -// String mimeType = new MimetypesFileTypeMap().getContentType(binFile); -// return getParser(binFile, mimeType); -// } - - -// private Parser getParser(File binFile, String mimeType) { -// String[] mimeTypes = Config.getStringArrayProperty("CONTENT_PARSERS_MIMETYPES"); -// String[] parsers = Config.getStringArrayProperty("CONTENT_PARSERS"); -// int index = Arrays.binarySearch(mimeTypes, mimeType); -// if (index > -1 && parsers.length > 0) { -// String parserClassName = parsers[index]; -// Class parserClass; -// try { -// parserClass = (Class) Class.forName(parserClassName); -// return parserClass.newInstance(); -// } catch (Exception e) { -// Logger.warn(this.getClass(), "A content parser for mime type " + mimeType -// + " was found but could not be instantiated, using default content parser."); -// } -// } -// return new AutoDetectParser(); -// } - - - - - /** - * normalize metadata from various filetypes this method will return an - * array of metadata keys that we can use to normalize the values in our - * fileAsset metadata For example, tiff:ImageLength = "height" for image - * files, so we return {"tiff:ImageLength", "height"} and both metadata are - * written to our metadata field - * - * @param key - * @return - */ - private String[] translateKey(String key) { - String[] x = getTranslationMap().get(key); - if (x == null) { - x = new String[] { StringUtils.camelCaseLower(key) }; - } - return x; - } - - private Map translateMeta = null; - - private Map getTranslationMap() { - if (translateMeta == null) { - synchronized ("translateMeta".intern()) { - if (translateMeta == null) { - translateMeta = new HashMap(); - translateMeta.put("tiff:ImageWidth", new String[] { "tiff:ImageWidth", "width" }); - translateMeta.put("tiff:ImageLength", new String[] { "tiff:ImageLength", "height" }); - } - } - } - return translateMeta; - } -} + /** + * Detects the media type of the given file. The type detection is + * based on the document content and a potential known file extension. + * + * @param file the file + * @return detected media type + * @throws IOException if the file can not be read + */ + public String detect(File file) throws IOException { + if (!osgiInitialized) { + Logger.error(this.getClass(), + "Unable to get file media type, OSGI Framework not initialized"); + return ""; + } + + return this.tikaService.detect(file); + } + + private Map buildMetaDataMap() { + + Map metaMap = new HashMap<>(); + for (int i = 0; i < this.tikaService.metadataNames().length; i++) { + String name = this.tikaService.metadataNames()[i]; + if (UtilMethods.isSet(name) && this.tikaService.metadataGetName(name) != null) { + // we will want to normalize our metadata for searching + String[] x = translateKey(name); + for (String y : x) { + metaMap.put(y, this.tikaService.metadataGetName(name)); + } + } + } + + return metaMap; + } + + /** + * This method takes a file and uses tika to parse the metadata from it. It + * returns a Map of the metadata + */ + public Map getMetaDataMap(String inode, File binFile, boolean forceMemory) { + return getMetaDataMap(inode, binFile, null, forceMemory); + } + + /** + * normalize metadata from various filetypes this method will return an + * array of metadata keys that we can use to normalize the values in our + * fileAsset metadata For example, tiff:ImageLength = "height" for image + * files, so we return {"tiff:ImageLength", "height"} and both metadata are + * written to our metadata field + */ + private String[] translateKey(String key) { + String[] x = getTranslationMap().get(key); + if (x == null) { + x = new String[]{StringUtils.camelCaseLower(key)}; + } + return x; + } + + private Map translateMeta = null; + + private Map getTranslationMap() { + if (translateMeta == null) { + synchronized ("translateMeta".intern()) { + if (translateMeta == null) { + translateMeta = new HashMap(); + translateMeta.put("tiff:ImageWidth", new String[]{"tiff:ImageWidth", "width"}); + translateMeta + .put("tiff:ImageLength", new String[]{"tiff:ImageLength", "height"}); + } + } + } + return translateMeta; + } + +} \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotcms/translate/GoogleTranslationService.java b/dotCMS/src/main/java/com/dotcms/translate/GoogleTranslationService.java index fba3f8b93dbb..e6ccb102381b 100644 --- a/dotCMS/src/main/java/com/dotcms/translate/GoogleTranslationService.java +++ b/dotCMS/src/main/java/com/dotcms/translate/GoogleTranslationService.java @@ -1,9 +1,9 @@ package com.dotcms.translate; +import com.dotcms.rendering.velocity.viewtools.JSONTool; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.base.Preconditions; import com.dotcms.repackage.com.google.common.base.Strings; -import com.dotcms.repackage.org.apache.commons.lang.StringEscapeUtils; import com.dotmarketing.business.ApiProvider; import com.dotmarketing.business.DotStateException; import com.dotmarketing.portlets.languagesmanager.model.Language; @@ -11,8 +11,6 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.json.JSONArray; import com.dotmarketing.util.json.JSONObject; -import com.dotcms.rendering.velocity.viewtools.JSONTool; - import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; @@ -21,6 +19,7 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; +import org.apache.commons.lang.StringEscapeUtils; public class GoogleTranslationService extends AbstractTranslationService { diff --git a/dotCMS/src/main/java/com/dotcms/util/AnnotationUtils.java b/dotCMS/src/main/java/com/dotcms/util/AnnotationUtils.java index cb6bf5945fe8..7caba9248997 100644 --- a/dotCMS/src/main/java/com/dotcms/util/AnnotationUtils.java +++ b/dotCMS/src/main/java/com/dotcms/util/AnnotationUtils.java @@ -1,14 +1,17 @@ package com.dotcms.util; -import com.dotcms.repackage.org.apache.commons.collections.keyvalue.MultiKey; import com.google.common.collect.ImmutableSet; - import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import org.apache.commons.collections.keyvalue.MultiKey; /** diff --git a/dotCMS/src/main/java/com/dotcms/util/ConfigurationInterpolator.java b/dotCMS/src/main/java/com/dotcms/util/ConfigurationInterpolator.java index 985eff6fec9d..6f3c4b47cf9d 100644 --- a/dotCMS/src/main/java/com/dotcms/util/ConfigurationInterpolator.java +++ b/dotCMS/src/main/java/com/dotcms/util/ConfigurationInterpolator.java @@ -1,8 +1,7 @@ package com.dotcms.util; -import com.dotcms.repackage.org.apache.commons.configuration.Configuration; - import java.io.Serializable; +import org.apache.commons.configuration.Configuration; /** * Defines an interpolator for a Configuration. diff --git a/dotCMS/src/main/java/com/dotcms/util/ContentTypeUtil.java b/dotCMS/src/main/java/com/dotcms/util/ContentTypeUtil.java index 0bf991897387..796f97120d2b 100644 --- a/dotCMS/src/main/java/com/dotcms/util/ContentTypeUtil.java +++ b/dotCMS/src/main/java/com/dotcms/util/ContentTypeUtil.java @@ -2,12 +2,6 @@ import static com.dotcms.util.CollectionsUtils.map; -import java.util.List; -import java.util.Locale; -import java.util.Optional; - -import javax.servlet.http.HttpServletRequest; - import com.dotcms.api.web.HttpServletRequestThreadLocal; import com.dotcms.cms.login.LoginServiceAPI; import com.dotcms.contenttype.model.type.ContentType; @@ -15,7 +9,6 @@ import com.dotcms.repackage.javax.portlet.PortletURL; import com.dotcms.repackage.javax.portlet.WindowState; import com.dotcms.repackage.javax.portlet.WindowStateException; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.rest.api.v1.contenttype.ContentTypeResource; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.Layout; @@ -27,6 +20,11 @@ import com.liferay.portal.model.User; import com.liferay.portlet.PortletURLImpl; import com.liferay.util.LocaleUtil; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringUtils; /** * Utility class for the {@link ContentTypeResource} end-point and other Content diff --git a/dotCMS/src/main/java/com/dotcms/util/DotPreconditions.java b/dotCMS/src/main/java/com/dotcms/util/DotPreconditions.java index 9868b2369c21..38f88a41c7ea 100644 --- a/dotCMS/src/main/java/com/dotcms/util/DotPreconditions.java +++ b/dotCMS/src/main/java/com/dotcms/util/DotPreconditions.java @@ -1,12 +1,12 @@ package com.dotcms.util; import com.dotcms.repackage.javax.validation.constraints.NotNull; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.Collection; import java.util.Map; import java.util.function.Supplier; +import org.apache.commons.lang.StringUtils; /** * Simple Precondition checks, wrapping Google's version. diff --git a/dotCMS/src/main/java/com/dotcms/util/HttpRequestDataUtil.java b/dotCMS/src/main/java/com/dotcms/util/HttpRequestDataUtil.java index a1a88a00840c..c96172c28b32 100644 --- a/dotCMS/src/main/java/com/dotcms/util/HttpRequestDataUtil.java +++ b/dotCMS/src/main/java/com/dotcms/util/HttpRequestDataUtil.java @@ -1,5 +1,8 @@ package com.dotcms.util; +import com.dotcms.repackage.org.apache.commons.net.util.SubnetUtils; +import com.dotcms.repackage.org.apache.commons.net.util.SubnetUtils.SubnetInfo; +import com.dotmarketing.util.UtilMethods; import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.MalformedURLException; @@ -8,13 +11,8 @@ import java.net.UnknownHostException; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.commons.net.util.SubnetUtils; -import com.dotcms.repackage.org.apache.commons.net.util.SubnetUtils.SubnetInfo; -import com.dotmarketing.util.UtilMethods; +import org.apache.commons.lang.StringUtils; /** * Provides quick access to information that can be obtained from the HTTP diff --git a/dotCMS/src/main/java/com/dotcms/util/LogTimeUtil.java b/dotCMS/src/main/java/com/dotcms/util/LogTimeUtil.java index 08642e020017..ef349b88af6c 100644 --- a/dotCMS/src/main/java/com/dotcms/util/LogTimeUtil.java +++ b/dotCMS/src/main/java/com/dotcms/util/LogTimeUtil.java @@ -1,10 +1,9 @@ package com.dotcms.util; -import com.dotcms.repackage.org.apache.commons.lang.time.StopWatch; import com.dotmarketing.util.DateUtil; import com.dotmarketing.util.Logger; - import java.util.function.Supplier; +import org.apache.commons.lang.time.StopWatch; /** * This util logs the total time for a calling delegate method. diff --git a/dotCMS/src/main/java/com/dotcms/util/PaginationUtil.java b/dotCMS/src/main/java/com/dotcms/util/PaginationUtil.java index 668871a8c2a5..0ba77fe93732 100644 --- a/dotCMS/src/main/java/com/dotcms/util/PaginationUtil.java +++ b/dotCMS/src/main/java/com/dotcms/util/PaginationUtil.java @@ -1,7 +1,10 @@ package com.dotcms.util; +import static com.dotcms.util.CollectionsUtils.map; +import static com.dotmarketing.util.WebKeys.DOTCMS_PAGINATION_LINKS; +import static com.dotmarketing.util.WebKeys.DOTCMS_PAGINATION_ROWS; + import com.dotcms.repackage.javax.ws.rs.core.Response; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.rest.ResponseEntityView; import com.dotcms.util.pagination.OrderDirection; import com.dotcms.util.pagination.Paginator; @@ -11,15 +14,14 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; import com.liferay.util.StringUtil; - -import javax.servlet.http.HttpServletRequest; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.*; - -import static com.dotcms.util.CollectionsUtils.map; -import static com.dotmarketing.util.WebKeys.DOTCMS_PAGINATION_LINKS; -import static com.dotmarketing.util.WebKeys.DOTCMS_PAGINATION_ROWS; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringUtils; /** * Utility class to the pagination elements and filter diff --git a/dotCMS/src/main/java/com/dotcms/util/SystemEnvironmentConfigurationInterpolator.java b/dotCMS/src/main/java/com/dotcms/util/SystemEnvironmentConfigurationInterpolator.java index 6ee75c350631..a27a77b39a90 100644 --- a/dotCMS/src/main/java/com/dotcms/util/SystemEnvironmentConfigurationInterpolator.java +++ b/dotCMS/src/main/java/com/dotcms/util/SystemEnvironmentConfigurationInterpolator.java @@ -1,12 +1,11 @@ package com.dotcms.util; -import com.dotcms.repackage.org.apache.commons.configuration.Configuration; -import com.dotcms.repackage.org.apache.commons.configuration.PropertiesConfiguration; import com.dotmarketing.util.StringUtils; - import java.lang.reflect.Array; import java.util.HashMap; import java.util.Iterator; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.PropertiesConfiguration; /** * If you required to interpolate System properties or Environment variables you can use this implementations. @@ -156,11 +155,11 @@ public Object get(Object key) { private String envKeyUnWrap(String key) { - return com.dotcms.repackage.org.apache.commons.lang.StringUtils.replace(key, ENV_PREFIX, com.dotcms.repackage.org.apache.commons.lang.StringUtils.EMPTY); + return org.apache.commons.lang.StringUtils.replace(key, ENV_PREFIX, org.apache.commons.lang.StringUtils.EMPTY); } private String systemKeyUnWrap(String key) { - return com.dotcms.repackage.org.apache.commons.lang.StringUtils.replace(key, SYS_PREFIX, com.dotcms.repackage.org.apache.commons.lang.StringUtils.EMPTY); + return org.apache.commons.lang.StringUtils.replace(key, SYS_PREFIX, org.apache.commons.lang.StringUtils.EMPTY); } } // SystemEnvironmentMapDecorator. } // E:O:F:SystemEnvironmentConfigurationInterpolator. diff --git a/dotCMS/src/main/java/com/dotcms/util/UrlStrategyUtil.java b/dotCMS/src/main/java/com/dotcms/util/UrlStrategyUtil.java index d13c2c2650a9..4190892e6f02 100644 --- a/dotCMS/src/main/java/com/dotcms/util/UrlStrategyUtil.java +++ b/dotCMS/src/main/java/com/dotcms/util/UrlStrategyUtil.java @@ -1,13 +1,10 @@ package com.dotcms.util; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.rest.api.v1.authentication.url.UrlStrategy; import com.liferay.portal.model.Company; -import com.liferay.portal.model.User; - -import java.util.Locale; import java.util.Map; +import org.apache.commons.lang.StringUtils; /** * Util class to get the app base URL diff --git a/dotCMS/src/main/java/com/dotcms/util/pagination/ContentTypesPaginator.java b/dotCMS/src/main/java/com/dotcms/util/pagination/ContentTypesPaginator.java index a01b796a6cb8..b3c6d59b17f1 100644 --- a/dotCMS/src/main/java/com/dotcms/util/pagination/ContentTypesPaginator.java +++ b/dotCMS/src/main/java/com/dotcms/util/pagination/ContentTypesPaginator.java @@ -5,22 +5,18 @@ import com.dotcms.contenttype.transform.contenttype.JsonContentTypeTransformer; import com.dotcms.contenttype.transform.contenttype.StructureTransformer; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.poi.openxml4j.opc.ContentTypes; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; -import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.portlets.structure.business.StructureAPI; import com.dotmarketing.portlets.structure.model.Structure; import com.dotmarketing.util.PaginatedArrayList; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.StringUtils; /** * Handle {@link ContentType} pagination diff --git a/dotCMS/src/main/java/com/dotcms/util/pagination/SitePaginator.java b/dotCMS/src/main/java/com/dotcms/util/pagination/SitePaginator.java index cf4813cd5ace..b0054308a431 100644 --- a/dotCMS/src/main/java/com/dotcms/util/pagination/SitePaginator.java +++ b/dotCMS/src/main/java/com/dotcms/util/pagination/SitePaginator.java @@ -1,15 +1,13 @@ package com.dotcms.util.pagination; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.util.PaginatedArrayList; import com.liferay.portal.model.User; - -import java.util.Collection; import java.util.Map; +import org.apache.commons.lang.StringUtils; /** * Paginator util for Host diff --git a/dotCMS/src/main/java/com/dotcms/vanityurl/action/ViewVanityURLAction.java b/dotCMS/src/main/java/com/dotcms/vanityurl/action/ViewVanityURLAction.java index 6aaf72e6381b..7ab6bf3dce28 100644 --- a/dotCMS/src/main/java/com/dotcms/vanityurl/action/ViewVanityURLAction.java +++ b/dotCMS/src/main/java/com/dotcms/vanityurl/action/ViewVanityURLAction.java @@ -4,10 +4,10 @@ import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.portal.struts.DotPortletAction; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewVanityURLAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotcms/vanityurl/business/VanityUrlAPIImpl.java b/dotCMS/src/main/java/com/dotcms/vanityurl/business/VanityUrlAPIImpl.java index 83ba4706be05..fb8afb1979f9 100644 --- a/dotCMS/src/main/java/com/dotcms/vanityurl/business/VanityUrlAPIImpl.java +++ b/dotCMS/src/main/java/com/dotcms/vanityurl/business/VanityUrlAPIImpl.java @@ -1,11 +1,16 @@ package com.dotcms.vanityurl.business; +import static com.dotcms.util.CollectionsUtils.map; +import static com.dotcms.util.CollectionsUtils.toImmutableList; +import static com.dotcms.util.VanityUrlUtil.isValidRegex; +import static com.dotcms.util.VanityUrlUtil.processExpressions; +import static java.util.stream.IntStream.rangeClosed; + import com.dotcms.business.CloseDBIfOpened; import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.model.type.VanityUrlContentType; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.collections.keyvalue.MultiKey; import com.dotcms.services.VanityUrlServices; import com.dotcms.vanityurl.model.CachedVanityUrl; import com.dotcms.vanityurl.model.DefaultVanityUrl; @@ -28,17 +33,15 @@ import com.google.common.collect.ImmutableSet; import com.liferay.portal.model.User; import com.liferay.util.StringPool; -import org.elasticsearch.indices.IndexMissingException; - import java.text.MessageFormat; -import java.util.*; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.regex.Matcher; - -import static com.dotcms.util.CollectionsUtils.map; -import static com.dotcms.util.CollectionsUtils.toImmutableList; -import static com.dotcms.util.VanityUrlUtil.isValidRegex; -import static com.dotcms.util.VanityUrlUtil.processExpressions; -import static java.util.stream.IntStream.rangeClosed; +import org.apache.commons.collections.keyvalue.MultiKey; +import org.elasticsearch.indices.IndexMissingException; /** * Implementation class for the {@link VanityUrlAPI}. diff --git a/dotCMS/src/main/java/com/dotcms/vanityurl/model/CacheVanityKey.java b/dotCMS/src/main/java/com/dotcms/vanityurl/model/CacheVanityKey.java index 044a840dfdd6..d0f4aff4515d 100644 --- a/dotCMS/src/main/java/com/dotcms/vanityurl/model/CacheVanityKey.java +++ b/dotCMS/src/main/java/com/dotcms/vanityurl/model/CacheVanityKey.java @@ -1,8 +1,7 @@ package com.dotcms.vanityurl.model; -import com.dotcms.repackage.org.apache.commons.collections.keyvalue.MultiKey; - import java.io.Serializable; +import org.apache.commons.collections.keyvalue.MultiKey; /** * Encapsulates the keys for cache vanities. diff --git a/dotCMS/src/main/java/com/dotcms/vanityurl/model/SecondaryCacheVanityKey.java b/dotCMS/src/main/java/com/dotcms/vanityurl/model/SecondaryCacheVanityKey.java index 806867b4dc44..f1564b222dd1 100644 --- a/dotCMS/src/main/java/com/dotcms/vanityurl/model/SecondaryCacheVanityKey.java +++ b/dotCMS/src/main/java/com/dotcms/vanityurl/model/SecondaryCacheVanityKey.java @@ -1,8 +1,7 @@ package com.dotcms.vanityurl.model; -import com.dotcms.repackage.org.apache.commons.collections.keyvalue.MultiKey; - import java.io.Serializable; +import org.apache.commons.collections.keyvalue.MultiKey; /** * Encapsulates the keys for second cache vanities. diff --git a/dotCMS/src/main/java/com/dotcms/webdav/FsFileResource.java b/dotCMS/src/main/java/com/dotcms/webdav/FsFileResource.java index 7bd8636120a3..e2be61292d9a 100644 --- a/dotCMS/src/main/java/com/dotcms/webdav/FsFileResource.java +++ b/dotCMS/src/main/java/com/dotcms/webdav/FsFileResource.java @@ -34,23 +34,21 @@ import com.dotcms.repackage.com.bradmcevoy.http.webdav.PropPatchHandler.Fields; import com.dotcms.repackage.com.bradmcevoy.io.ReadingException; import com.dotcms.repackage.com.bradmcevoy.io.WritingException; -import com.dotcms.webdav.FileContentService; - - -import java.io.*; +import com.dotmarketing.util.Logger; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * */ public class FsFileResource extends FsResource implements CopyableResource, DeletableResource, GetableResource, MoveableResource, PropFindableResource, PropPatchableResource { - private static final Logger log = LoggerFactory.getLogger(FsFileResource.class); - private final FileContentService contentService; /** @@ -72,11 +70,7 @@ public Long getContentLength() { @Override public String getContentType(String preferredList) { String mime = ContentTypeUtils.findContentTypes(this.file); - String s = ContentTypeUtils.findAcceptableContentType(mime, preferredList); - if (log.isTraceEnabled()) { - log.trace("getContentType: preferred: {} mime: {} selected: {}", new Object[]{preferredList, mime, s}); - } - return s; + return ContentTypeUtils.findAcceptableContentType(mime, preferredList); } @Override @@ -88,10 +82,12 @@ public String checkRedirect(Request arg0) { public void sendContent(OutputStream out, Range range, Map params, String contentType) throws IOException, NotFoundException { try (InputStream in = contentService.getFileContent(file)){ if (range != null) { - log.debug("sendContent: ranged content: " + file.getAbsolutePath()); + Logger.debug(this.getClass(), + "sendContent: ranged content: " + file.getAbsolutePath()); PartialEntity.writeRange(in, range, out); } else { - log.debug("sendContent: send whole file " + file.getAbsolutePath()); + Logger.debug(this.getClass(), + "sendContent: send whole file " + file.getAbsolutePath()); IOUtils.copy(in, out); } out.flush(); diff --git a/dotCMS/src/main/java/com/dotcms/workflow/helper/WorkflowHelper.java b/dotCMS/src/main/java/com/dotcms/workflow/helper/WorkflowHelper.java index a45f6e63d705..89f58b906fed 100644 --- a/dotCMS/src/main/java/com/dotcms/workflow/helper/WorkflowHelper.java +++ b/dotCMS/src/main/java/com/dotcms/workflow/helper/WorkflowHelper.java @@ -1,10 +1,11 @@ package com.dotcms.workflow.helper; +import static com.dotmarketing.db.HibernateUtil.addSyncCommitListener; + import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotcms.workflow.form.WorkflowActionForm; import com.dotcms.workflow.form.WorkflowActionStepBean; import com.dotcms.workflow.form.WorkflowReorderBean; @@ -30,12 +31,10 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; import com.liferay.util.StringPool; - import java.util.ArrayList; import java.util.Collections; import java.util.List; - -import static com.dotmarketing.db.HibernateUtil.addSyncCommitListener; +import org.apache.commons.beanutils.BeanUtils; /** * Helper for Workflow Actions diff --git a/dotCMS/src/main/java/com/dotcms/xmlsitemap/XMLSitemapJob.java b/dotCMS/src/main/java/com/dotcms/xmlsitemap/XMLSitemapJob.java index 86e5273b774a..824f8ad8ea8f 100644 --- a/dotCMS/src/main/java/com/dotcms/xmlsitemap/XMLSitemapJob.java +++ b/dotCMS/src/main/java/com/dotcms/xmlsitemap/XMLSitemapJob.java @@ -1,23 +1,8 @@ package com.dotcms.xmlsitemap; -import java.io.File; -import java.io.OutputStreamWriter; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.zip.GZIPOutputStream; - import com.dotcms.business.CloseDBIfOpened; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.quartz.StatefulJob; - import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.transform.contenttype.StructureTransformer; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -60,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.zip.GZIPOutputStream; +import org.apache.commons.lang.StringUtils; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; diff --git a/dotCMS/src/main/java/com/dotmarketing/beans/MultiTree.java b/dotCMS/src/main/java/com/dotmarketing/beans/MultiTree.java index ad894b4851f3..425f91b51754 100644 --- a/dotCMS/src/main/java/com/dotmarketing/beans/MultiTree.java +++ b/dotCMS/src/main/java/com/dotmarketing/beans/MultiTree.java @@ -1,11 +1,16 @@ package com.dotmarketing.beans; -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; + +import com.dotmarketing.portlets.containers.model.Container; +import com.dotmarketing.portlets.contentlet.model.Contentlet; +import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; import java.io.Serializable; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; + /** * * @author maria @@ -85,11 +90,13 @@ public java.lang.String getRelationType() { return this.relationType; } - public MultiTree setContentlet(String contentlet) { + public MultiTree setContentlet(final String contentlet) { this.child = contentlet; return new MultiTree(this); } - + public MultiTree setContentlet(final Contentlet contentlet) { + return this.setContentlet(contentlet.getIdentifier()); + } public MultiTree setRelationType(java.lang.String relationType) { this.relationType = (relationType == null) ? LEGACY_RELATION_TYPE : relationType; return new MultiTree(this); @@ -104,7 +111,9 @@ public MultiTree setTreeOrder(int treeOrder) { this.treeOrder = treeOrder; return new MultiTree(this); } - + public MultiTree setOrder(final int treeOrder) { + return this.setTreeOrder(treeOrder); + } public String toString() { return ToStringBuilder.reflectionToString(this); } @@ -189,7 +198,9 @@ public MultiTree setHtmlPage(String htmlPage) { this.parent1 = htmlPage; return new MultiTree(this); } - + public MultiTree setHtmlPage(final HTMLPageAsset page) { + return this.setHtmlPage(page.getIdentifier()); + } /** * @return Returns the container. */ @@ -200,11 +211,16 @@ public String getContainer() { /** * @param container The container to set. */ - public MultiTree setContainer(String container) { + public MultiTree setContainer(final String container) { this.parent2 = container; return new MultiTree(this); } - + /** + * @param container The container to set. + */ + public MultiTree setContainer(final Container container) { + return this.setContainer(container.getIdentifier()); + } } diff --git a/dotCMS/src/main/java/com/dotmarketing/beans/Permission.java b/dotCMS/src/main/java/com/dotmarketing/beans/Permission.java index b66939267af4..2743f7d9c33d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/beans/Permission.java +++ b/dotCMS/src/main/java/com/dotmarketing/beans/Permission.java @@ -1,14 +1,12 @@ package com.dotmarketing.beans; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; /** * @author Hibernate CodeGenerator diff --git a/dotCMS/src/main/java/com/dotmarketing/beans/PermissionAsset.java b/dotCMS/src/main/java/com/dotmarketing/beans/PermissionAsset.java index 46b828ea82a3..664a7180731c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/beans/PermissionAsset.java +++ b/dotCMS/src/main/java/com/dotmarketing/beans/PermissionAsset.java @@ -1,10 +1,9 @@ package com.dotmarketing.beans; +import com.dotmarketing.business.Permissionable; import java.io.Serializable; import java.util.ArrayList; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotmarketing.business.Permissionable; +import org.apache.commons.lang.builder.ToStringBuilder; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/beans/PermissionReference.java b/dotCMS/src/main/java/com/dotmarketing/beans/PermissionReference.java index ef000b501d9d..e3553b28f942 100644 --- a/dotCMS/src/main/java/com/dotmarketing/beans/PermissionReference.java +++ b/dotCMS/src/main/java/com/dotmarketing/beans/PermissionReference.java @@ -1,12 +1,11 @@ package com.dotmarketing.beans; +import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; +import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import java.io.Serializable; import java.util.HashMap; import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; -import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import org.apache.commons.lang.builder.ToStringBuilder; /** * @author Hibernate CodeGenerator diff --git a/dotCMS/src/main/java/com/dotmarketing/beans/Tree.java b/dotCMS/src/main/java/com/dotmarketing/beans/Tree.java index d036717f2599..f7737e1f9ae8 100644 --- a/dotCMS/src/main/java/com/dotmarketing/beans/Tree.java +++ b/dotCMS/src/main/java/com/dotmarketing/beans/Tree.java @@ -1,12 +1,9 @@ package com.dotmarketing.beans; import java.io.Serializable; - -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - -import com.dotmarketing.util.InodeUtils; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/business/BaseWebAssetAPI.java b/dotCMS/src/main/java/com/dotmarketing/business/BaseWebAssetAPI.java index 40a54d07bd81..43d205656565 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/BaseWebAssetAPI.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/BaseWebAssetAPI.java @@ -286,7 +286,7 @@ public static boolean deleteAsset(WebAsset currWebAsset) throws DotSecurityExcep dc.loadResult(); new ContainerLoader().invalidate((Container)currWebAsset); - CacheLocator.getContainerCache().remove(currWebAsset.getInode()); + CacheLocator.getContainerCache().remove((Container)currWebAsset); } else if(currWebAsset instanceof Template) { diff --git a/dotCMS/src/main/java/com/dotmarketing/business/BlockPageCache.java b/dotCMS/src/main/java/com/dotmarketing/business/BlockPageCache.java index fa47599b417c..861ace076828 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/BlockPageCache.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/BlockPageCache.java @@ -1,7 +1,7 @@ package com.dotmarketing.business; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import org.apache.commons.lang.StringUtils; /** * This cache will keep a set of different {@link HTMLPage} objects and their diff --git a/dotCMS/src/main/java/com/dotmarketing/business/DotCacheAdministrator.java b/dotCMS/src/main/java/com/dotmarketing/business/DotCacheAdministrator.java index 5338fef7c3ee..9d48616d54cf 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/DotCacheAdministrator.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/DotCacheAdministrator.java @@ -7,7 +7,6 @@ import com.dotmarketing.business.cache.transport.CacheTransport; import java.util.List; -import java.util.Map; import java.util.Set; @@ -63,6 +62,20 @@ public interface DotCacheAdministrator { */ Object get ( String key, String group ) throws DotCacheException; + /** + * Get an object from the cache + * @param key + * @return + */ + default Object getNoThrow ( String key, String group ) { + try { + return get(key, group); + } + catch(DotCacheException e) { + return null; + } + + }; /** * Puts an object in a cache * This will create journal entries for other servers in a clustered environment. diff --git a/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPI.java b/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPI.java index 8462bcc56b53..a907ba6590a9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPI.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPI.java @@ -80,5 +80,13 @@ public interface LayoutAPI { * @author David H Torres */ public List findAllLayouts() throws DotDataException; - + + /** + * Find layout by name + * + * @param name + * @return + * @throws DotDataException throw when a error occur + */ + public Layout findLayoutByName(String name) throws DotDataException; } diff --git a/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPIImpl.java index b85de45c3f8f..c9e3ad871e02 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/LayoutAPIImpl.java @@ -142,5 +142,9 @@ public int compare(Layout l1, Layout l2) { }); return layouts; } + + public Layout findLayoutByName(String name) throws DotDataException { + return layoutFactory.findLayoutByName(name); + } } diff --git a/dotCMS/src/main/java/com/dotmarketing/business/RoleFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/RoleFactoryImpl.java index a5e9f40a1fb9..2e625a0b67e7 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/RoleFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/RoleFactoryImpl.java @@ -3,18 +3,6 @@ */ package com.dotmarketing.business; -import java.lang.reflect.InvocationTargetException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Queue; -import java.util.Set; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; - import com.dotmarketing.business.RoleCache.UserRoleCacheHelper; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; @@ -26,8 +14,17 @@ import com.dotmarketing.util.StringUtils; import com.dotmarketing.util.UUIDGenerator; import com.dotmarketing.util.UtilMethods; -import com.dotmarketing.util.VelocityUtil; import com.liferay.portal.model.User; +import java.lang.reflect.InvocationTargetException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import org.apache.commons.beanutils.BeanUtils; /** * @author Jason Tesser diff --git a/dotCMS/src/main/java/com/dotmarketing/business/UserAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/UserAPIImpl.java index 43d3ffad0560..7a4835538eb4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/UserAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/UserAPIImpl.java @@ -1,17 +1,11 @@ package com.dotmarketing.business; -import java.text.MessageFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; import com.dotcms.enterprise.PasswordFactoryProxy; import com.dotcms.enterprise.de.qaware.heimdall.PasswordException; import com.dotcms.notifications.business.NotificationAPI; import com.dotcms.publisher.bundle.business.BundleAPI; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.cms.factories.PublicCompanyFactory; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; @@ -38,6 +32,11 @@ import com.liferay.portal.pwd.PwdToolkitUtil; import com.liferay.portal.util.PropsUtil; import com.liferay.util.GetterUtil; +import java.text.MessageFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import org.apache.commons.lang.StringUtils; /** * UserAPIImpl is an API intended to be a helper class for class to get User diff --git a/dotCMS/src/main/java/com/dotmarketing/business/UserFactoryLiferayImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/UserFactoryLiferayImpl.java index f4285a2b5cdb..d38c130b2227 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/UserFactoryLiferayImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/UserFactoryLiferayImpl.java @@ -1,7 +1,6 @@ package com.dotmarketing.business; import com.dotcms.repackage.com.liferay.counter.ejb.CounterManagerUtil; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.cms.factories.PublicAddressFactory; import com.dotmarketing.cms.factories.PublicCompanyFactory; import com.dotmarketing.common.db.DotConnect; @@ -25,7 +24,6 @@ import com.liferay.portal.model.Address; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; - import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; diff --git a/dotCMS/src/main/java/com/dotmarketing/business/UserProxyFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/UserProxyFactoryImpl.java index dc02db0dd48a..8f764617892e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/UserProxyFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/UserProxyFactoryImpl.java @@ -1,11 +1,5 @@ package com.dotmarketing.business; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; - import com.dotmarketing.beans.UserProxy; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; @@ -17,6 +11,10 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import org.apache.commons.beanutils.BeanUtils; public class UserProxyFactoryImpl extends UserProxyFactory { diff --git a/dotCMS/src/main/java/com/dotmarketing/business/VersionableFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/business/VersionableFactoryImpl.java index f954421ca34e..4195a51c369b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/VersionableFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/VersionableFactoryImpl.java @@ -2,13 +2,7 @@ import static com.dotcms.util.CollectionsUtils.set; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; - import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; import com.dotmarketing.beans.VersionInfo; @@ -24,6 +18,11 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Set; +import org.apache.commons.beanutils.BeanUtils; /** * Implementation class for the {@link VersionableFactory} class. diff --git a/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/h22/H22Cache.java b/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/h22/H22Cache.java index 428ae8b6cf16..f12f93f16520 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/h22/H22Cache.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/h22/H22Cache.java @@ -1,5 +1,16 @@ package com.dotmarketing.business.cache.provider.h22; +import com.dotcms.repackage.com.zaxxer.hikari.pool.HikariPool.PoolInitializationException; +import com.dotcms.repackage.org.apache.commons.io.comparator.LastModifiedFileComparator; +import com.dotcms.repackage.org.apache.commons.io.filefilter.DirectoryFileFilter; +import com.dotcms.util.CloseUtils; +import com.dotmarketing.business.cache.provider.CacheProvider; +import com.dotmarketing.business.cache.provider.CacheProviderStats; +import com.dotmarketing.business.cache.provider.CacheStats; +import com.dotmarketing.util.Config; +import com.dotmarketing.util.ConfigUtils; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UtilMethods; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; @@ -19,30 +30,15 @@ import java.sql.Statement; import java.text.DecimalFormat; import java.text.NumberFormat; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; - -import com.dotcms.repackage.org.apache.commons.collections.map.LRUMap; -import com.dotcms.repackage.org.apache.commons.io.comparator.LastModifiedFileComparator; -import com.dotcms.repackage.org.apache.commons.io.filefilter.DirectoryFileFilter; -import com.dotcms.util.CloseUtils; -import com.dotmarketing.business.cache.provider.CacheProvider; -import com.dotmarketing.business.cache.provider.CacheProviderStats; -import com.dotmarketing.business.cache.provider.CacheStats; -import com.dotmarketing.util.Config; -import com.dotmarketing.util.ConfigUtils; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.UtilMethods; -import com.dotcms.repackage.com.zaxxer.hikari.pool.HikariPool.PoolInitializationException; +import org.apache.commons.collections.map.LRUMap; public class H22Cache extends CacheProvider { diff --git a/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/redis/RedisProvider.java b/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/redis/RedisProvider.java index ccf2efc78a2d..00678876bbc9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/redis/RedisProvider.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/cache/provider/redis/RedisProvider.java @@ -1,19 +1,36 @@ package com.dotmarketing.business.cache.provider.redis; -import com.dotcms.repackage.org.apache.commons.collections.map.LRUMap; import com.dotmarketing.business.cache.provider.CacheProvider; import com.dotmarketing.business.cache.provider.CacheProviderStats; import com.dotmarketing.business.cache.provider.CacheStats; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; - -import redis.clients.jedis.*; - -import java.io.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.NotSerializableException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.StringWriter; import java.text.DecimalFormat; import java.text.NumberFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.apache.commons.collections.map.LRUMap; +import redis.clients.jedis.Client; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; +import redis.clients.jedis.Protocol; /** * @author Jonathan Gamba diff --git a/dotCMS/src/main/java/com/dotmarketing/business/jgroups/JGroupsCacheTransport.java b/dotCMS/src/main/java/com/dotmarketing/business/jgroups/JGroupsCacheTransport.java index bb9dbbb3486d..dad075b3a852 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/jgroups/JGroupsCacheTransport.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/jgroups/JGroupsCacheTransport.java @@ -2,10 +2,9 @@ import com.dotcms.cluster.bean.Server; import com.dotcms.cluster.business.ServerAPI; -import com.dotcms.repackage.org.apache.commons.collections.map.LRUMap; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.jgroups.*; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.CacheLocator; +import com.dotmarketing.business.ChainableCacheAdministratorImpl; import com.dotmarketing.business.cache.transport.CacheTransport; import com.dotmarketing.business.cache.transport.CacheTransportException; import com.dotmarketing.exception.DotRuntimeException; @@ -14,10 +13,18 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.struts.MultiMessageResources; - import java.util.Date; import java.util.HashMap; import java.util.Map; +import org.apache.commons.collections.map.LRUMap; +import org.apache.struts.Globals; +import org.jgroups.Address; +import org.jgroups.Event; +import org.jgroups.JChannel; +import org.jgroups.Message; +import org.jgroups.PhysicalAddress; +import org.jgroups.ReceiverAdapter; +import org.jgroups.View; /** * @author Jonathan Gamba diff --git a/dotCMS/src/main/java/com/dotmarketing/business/query/QueryUtil.java b/dotCMS/src/main/java/com/dotmarketing/business/query/QueryUtil.java index c3a62a9c1447..02fa5853afa3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/business/query/QueryUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/business/query/QueryUtil.java @@ -1,21 +1,6 @@ package com.dotmarketing.business.query; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.dotcms.repackage.javax.portlet.ActionRequest; -import com.dotcms.repackage.javax.portlet.ActionResponse; -import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.PermissionableProxy; -import com.dotmarketing.beans.WebAsset; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.business.query.GenericQueryFactory.BuilderType; @@ -23,9 +8,14 @@ import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; -import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/SecureAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/SecureAction.java index f8d6e9e3ba3d..0199295b19f9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/SecureAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/SecureAction.java @@ -1,9 +1,9 @@ package com.dotmarketing.cms; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; import com.dotmarketing.util.Config; import com.dotmarketing.util.Logger; import com.dotmarketing.util.SecurityLogger; +import org.apache.struts.actions.DispatchAction; @Deprecated public class SecureAction extends DispatchAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/comment/action/CommentsAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/comment/action/CommentsAction.java index f794941cf407..801eff9fa36e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/comment/action/CommentsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/comment/action/CommentsAction.java @@ -1,24 +1,7 @@ package com.dotmarketing.cms.comment.action; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - +import com.dotcms.rendering.velocity.viewtools.CommentsWebAPI; import com.dotcms.repackage.com.google.common.collect.ImmutableList; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -52,10 +35,25 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.VelocityUtil; import com.dotmarketing.util.WebKeys; -import com.dotcms.rendering.velocity.viewtools.CommentsWebAPI; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.util.Html; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/comment/struts/CommentsForm.java b/dotCMS/src/main/java/com/dotmarketing/cms/comment/struts/CommentsForm.java index 941b8de284ca..7b8ef4425931 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/comment/struts/CommentsForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/comment/struts/CommentsForm.java @@ -1,16 +1,7 @@ package com.dotmarketing.cms.comment.struts; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import com.dotcms.repackage.com.octo.captcha.service.CaptchaServiceException; import com.dotcms.repackage.nl.captcha.Captcha; -import com.dotcms.repackage.org.apache.struts.action.ActionError; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.exception.DotDataException; @@ -23,6 +14,13 @@ import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionError; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; /** * This class manage the comments beans @@ -30,7 +28,7 @@ * @version 1.5 * @since 1.0 */ -@Deprecated +@Deprecated public class CommentsForm extends ValidatorForm { /** diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/content/submit/action/SubmitContentAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/content/submit/action/SubmitContentAction.java index 113f2b7035b0..de2ee1e9727e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/content/submit/action/SubmitContentAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/content/submit/action/SubmitContentAction.java @@ -1,22 +1,5 @@ package com.dotmarketing.cms.content.submit.action; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.Clickstream; import com.dotmarketing.beans.Host; @@ -51,6 +34,21 @@ import com.liferay.portal.model.User; import com.liferay.util.FileUtil; import com.liferay.util.servlet.UploadServletRequest; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; /** * This Action manage the submit content save procedure diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/action/CreateAccountAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/action/CreateAccountAction.java index caa7ec509058..2be3158bf080 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/action/CreateAccountAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/action/CreateAccountAction.java @@ -1,24 +1,10 @@ package com.dotmarketing.cms.createaccount.action; -import java.util.Date; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import com.dotcms.enterprise.PasswordFactoryProxy; import com.dotcms.enterprise.de.qaware.heimdall.PasswordException; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.UserProxy; import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.DotStateException; import com.dotmarketing.business.NoSuchUserException; import com.dotmarketing.business.Role; import com.dotmarketing.business.UserAPI; @@ -29,20 +15,17 @@ import com.dotmarketing.cms.login.action.LoginAction; import com.dotmarketing.cms.login.factories.LoginFactory; import com.dotmarketing.cms.login.struts.LoginForm; -import com.dotmarketing.cms.myaccount.action.MyAccountAction; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.portlets.categories.business.CategoryAPI; import com.dotmarketing.portlets.categories.model.Category; - import com.dotmarketing.portlets.user.factories.UserCommentsFactory; import com.dotmarketing.portlets.user.model.UserComment; import com.dotmarketing.util.Config; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.Mailer; -import com.dotmarketing.util.SecurityLogger; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.language.LanguageException; @@ -50,6 +33,16 @@ import com.liferay.portal.model.Address; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; +import java.util.Date; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; @Deprecated public class CreateAccountAction extends SecureAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/struts/CreateAccountForm.java b/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/struts/CreateAccountForm.java index 2a824fc4b08e..ed12de104445 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/struts/CreateAccountForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/createaccount/struts/CreateAccountForm.java @@ -1,21 +1,18 @@ package com.dotmarketing.cms.createaccount.struts; -import java.io.Serializable; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; - import com.dotmarketing.business.APILocator; import com.dotmarketing.util.FormSpamFilter; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.Serializable; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; @Deprecated public class CreateAccountForm extends ActionForm implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/action/ForgotPasswordAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/action/ForgotPasswordAction.java index f8b80798dea8..c07397a85d88 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/action/ForgotPasswordAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/action/ForgotPasswordAction.java @@ -1,21 +1,6 @@ package com.dotmarketing.cms.forgotpassword.action; -import java.util.Date; -import java.util.HashMap; -import java.util.StringTokenizer; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import com.dotcms.enterprise.PasswordFactoryProxy; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.UserProxy; @@ -40,6 +25,18 @@ import com.liferay.portal.SystemException; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; +import java.util.Date; +import java.util.HashMap; +import java.util.StringTokenizer; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/struts/ForgotPasswordForm.java b/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/struts/ForgotPasswordForm.java index 3b844bf84307..f67e4b58da56 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/struts/ForgotPasswordForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/forgotpassword/struts/ForgotPasswordForm.java @@ -1,15 +1,13 @@ package com.dotmarketing.cms.forgotpassword.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.util.UtilMethods; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.validator.ValidatorForm; @Deprecated public class ForgotPasswordForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LoginAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LoginAction.java index 6fa4d9b4596e..2a45b74c05c7 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LoginAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LoginAction.java @@ -1,20 +1,5 @@ package com.dotmarketing.cms.login.action; -import java.util.List; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.UserProxy; import com.dotmarketing.business.APILocator; @@ -31,6 +16,17 @@ import com.liferay.portal.NoSuchUserException; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; +import java.util.List; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LogoutAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LogoutAction.java index ca02a8cca375..bd2273b8a14d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LogoutAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/login/action/LogoutAction.java @@ -1,21 +1,18 @@ package com.dotmarketing.cms.login.action; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotcms.util.SecurityUtils; import com.dotmarketing.cms.SecureAction; import com.dotmarketing.cms.login.factories.LoginFactory; import com.dotmarketing.util.UtilMethods; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/login/struts/LoginForm.java b/dotCMS/src/main/java/com/dotmarketing/cms/login/struts/LoginForm.java index a80a903a82bc..9dfe3cf34cb8 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/login/struts/LoginForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/login/struts/LoginForm.java @@ -1,13 +1,11 @@ package com.dotmarketing.cms.login.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.liferay.portal.util.Constants; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; @Deprecated public class LoginForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AccountActivationAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AccountActivationAction.java index 3d7b2ad08035..721a130f58c3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AccountActivationAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AccountActivationAction.java @@ -1,19 +1,5 @@ package com.dotmarketing.cms.myaccount.action; -import java.util.Date; -import java.util.HashMap; -import java.util.StringTokenizer; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.web.HostWebAPI; @@ -28,8 +14,18 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.Company; import com.liferay.portal.model.User; +import java.util.Date; +import java.util.HashMap; +import java.util.StringTokenizer; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; -@Deprecated +@Deprecated public class AccountActivationAction extends SecureAction { @SuppressWarnings("unchecked") diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AddressAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AddressAction.java index df8ba02c4b35..f98ded54f991 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AddressAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/AddressAction.java @@ -1,6 +1,5 @@ package com.dotmarketing.cms.myaccount.action; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; import com.dotmarketing.cms.SecureAction; diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyAccountAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyAccountAction.java index 4b6224b2c0f7..44c4b65b2ee2 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyAccountAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyAccountAction.java @@ -1,19 +1,6 @@ package com.dotmarketing.cms.myaccount.action; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import com.dotcms.enterprise.PasswordFactoryProxy; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.UserProxy; import com.dotmarketing.business.APILocator; @@ -36,6 +23,17 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.Address; import com.liferay.portal.model.User; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; @Deprecated public class MyAccountAction extends SecureAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyInterestsAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyInterestsAction.java index 0afb42cb1328..2daf36707109 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyInterestsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/action/MyInterestsAction.java @@ -1,17 +1,5 @@ package com.dotmarketing.cms.myaccount.action; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotmarketing.beans.UserProxy; import com.dotmarketing.business.APILocator; import com.dotmarketing.cms.SecureAction; @@ -24,8 +12,17 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; - -@Deprecated +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; + +@Deprecated public class MyInterestsAction extends SecureAction { private CategoryAPI categoryAPI = APILocator.getCategoryAPI(); diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/struts/MyAccountForm.java b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/struts/MyAccountForm.java index f1d5e2364a2c..cda6b6e3b9fc 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/struts/MyAccountForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/myaccount/struts/MyAccountForm.java @@ -1,12 +1,11 @@ package com.dotmarketing.cms.myaccount.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; import com.dotmarketing.util.UtilMethods; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; @Deprecated public class MyAccountForm extends ActionForm diff --git a/dotCMS/src/main/java/com/dotmarketing/cms/webforms/action/SubmitWebFormAction.java b/dotCMS/src/main/java/com/dotmarketing/cms/webforms/action/SubmitWebFormAction.java index f942857a288f..7725ffcc4ae9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/cms/webforms/action/SubmitWebFormAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/cms/webforms/action/SubmitWebFormAction.java @@ -1,26 +1,7 @@ package com.dotmarketing.cms.webforms.action; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - import com.dotcms.enterprise.PasswordFactoryProxy; import com.dotcms.repackage.nl.captcha.Captcha; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.UserProxy; @@ -50,6 +31,22 @@ import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.util.servlet.UploadServletRequest; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/common/db/DotConnect.java b/dotCMS/src/main/java/com/dotmarketing/common/db/DotConnect.java index ab6cd8bf6924..b8832d79c66e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/common/db/DotConnect.java +++ b/dotCMS/src/main/java/com/dotmarketing/common/db/DotConnect.java @@ -1,5 +1,16 @@ package com.dotmarketing.common.db; +import static com.dotcms.util.CloseUtils.closeQuietly; +import static com.dotcms.util.CollectionsUtils.map; + +import com.dotcms.business.CloseDBIfOpened; +import com.dotmarketing.db.DbConnectionFactory; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.exception.DotRuntimeException; +import com.dotmarketing.util.Config; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.json.JSONException; +import com.dotmarketing.util.json.JSONObject; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.Connection; @@ -9,22 +20,17 @@ import java.sql.SQLException; import java.sql.Statement; import java.sql.Timestamp; -import java.util.*; - -import com.dotcms.repackage.org.apache.commons.collections.map.LRUMap; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import static com.dotcms.util.CloseUtils.*; -import com.dotmarketing.db.DbConnectionFactory; -import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.exception.DotRuntimeException; -import com.dotmarketing.util.Config; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.json.JSONException; -import com.dotmarketing.util.json.JSONObject; -import static com.dotcms.util.CollectionsUtils.*; - -import com.dotcms.business.CloseDBIfOpened; -import com.dotcms.business.WrapInTransaction; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; +import org.apache.commons.collections.map.LRUMap; +import org.apache.commons.lang.StringUtils; /** * Description of the Class diff --git a/dotCMS/src/main/java/com/dotmarketing/common/util/SQLUtil.java b/dotCMS/src/main/java/com/dotmarketing/common/util/SQLUtil.java index 34ca4a64c0c1..441e53e3d859 100644 --- a/dotCMS/src/main/java/com/dotmarketing/common/util/SQLUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/common/util/SQLUtil.java @@ -1,8 +1,6 @@ package com.dotmarketing.common.util; import com.dotcms.repackage.com.google.common.collect.ImmutableSet; -import com.dotcms.repackage.org.apache.commons.lang.StringEscapeUtils; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.SecurityLoggerServiceAPI; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.DotStateException; @@ -26,6 +24,8 @@ import net.sourceforge.squirrel_sql.plugins.mysql.tokenizer.MysqlQueryTokenizer; import net.sourceforge.squirrel_sql.plugins.oracle.prefs.OraclePreferenceBean; import net.sourceforge.squirrel_sql.plugins.oracle.tokenizer.OracleQueryTokenizer; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; /** * Util class for sanitize, tokenize, etc diff --git a/dotCMS/src/main/java/com/dotmarketing/comparators/ContentComparator.java b/dotCMS/src/main/java/com/dotmarketing/comparators/ContentComparator.java index 304d4fa0ab74..92e38a3cf62a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/comparators/ContentComparator.java +++ b/dotCMS/src/main/java/com/dotmarketing/comparators/ContentComparator.java @@ -1,11 +1,9 @@ package com.dotmarketing.comparators; +import com.dotmarketing.portlets.contentlet.model.Contentlet; import java.util.Comparator; import java.util.Date; - -import com.dotcms.repackage.org.apache.commons.beanutils.PropertyUtils; - -import com.dotmarketing.portlets.contentlet.model.Contentlet; +import org.apache.commons.beanutils.PropertyUtils; /** * @author Maria & David (Fat contentlet adaptations) diff --git a/dotCMS/src/main/java/com/dotmarketing/config/ConfigLoader.java b/dotCMS/src/main/java/com/dotmarketing/config/ConfigLoader.java index 0dabcd838b7a..7170d21bec67 100644 --- a/dotCMS/src/main/java/com/dotmarketing/config/ConfigLoader.java +++ b/dotCMS/src/main/java/com/dotmarketing/config/ConfigLoader.java @@ -1,17 +1,14 @@ package com.dotmarketing.config; +import com.dotmarketing.util.Logger; import java.io.IOException; import java.io.InputStream; - -import com.dotcms.repackage.javax.xml.parsers.ParserConfigurationException; -import com.dotcms.repackage.javax.xml.parsers.SAXParser; -import com.dotcms.repackage.javax.xml.parsers.SAXParserFactory; - -import com.dotcms.repackage.org.xml.sax.Attributes; -import com.dotcms.repackage.org.xml.sax.SAXException; -import com.dotcms.repackage.org.xml.sax.helpers.DefaultHandler; - -import com.dotmarketing.util.Logger; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; /** * Loads up either clickstream.xml or clickstream-default.xml and diff --git a/dotCMS/src/main/java/com/dotmarketing/db/DotSQLGeneratorTask.java b/dotCMS/src/main/java/com/dotmarketing/db/DotSQLGeneratorTask.java index 7ce8fd47a6f3..3ac0efc09422 100644 --- a/dotCMS/src/main/java/com/dotmarketing/db/DotSQLGeneratorTask.java +++ b/dotCMS/src/main/java/com/dotmarketing/db/DotSQLGeneratorTask.java @@ -1,20 +1,17 @@ package com.dotmarketing.db; +import com.dotmarketing.util.Logger; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.regex.Matcher; - import com.dotcms.repackage.net.sf.hibernate.cfg.Configuration; import com.dotcms.repackage.net.sf.hibernate.tool.hbm2ddl.SchemaExport; - import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; -import com.dotmarketing.util.Logger; - public final class DotSQLGeneratorTask extends Task { /* * This class is meant to be run from ant in the project root. It will diff --git a/dotCMS/src/main/java/com/dotmarketing/db/HibernateUtil.java b/dotCMS/src/main/java/com/dotmarketing/db/HibernateUtil.java index 6caf3aa0629f..e2d0cb4e621a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/db/HibernateUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/db/HibernateUtil.java @@ -1,17 +1,5 @@ package com.dotmarketing.db; -import com.dotcms.repackage.net.sf.hibernate.CallbackException; -import com.dotcms.repackage.net.sf.hibernate.FlushMode; -import com.dotcms.repackage.net.sf.hibernate.HibernateException; -import com.dotcms.repackage.net.sf.hibernate.Interceptor; -import com.dotcms.repackage.net.sf.hibernate.MappingException; -import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; -import com.dotcms.repackage.net.sf.hibernate.Query; -import com.dotcms.repackage.net.sf.hibernate.Session; -import com.dotcms.repackage.net.sf.hibernate.SessionFactory; -import com.dotcms.repackage.net.sf.hibernate.cfg.Configuration; -import com.dotcms.repackage.net.sf.hibernate.cfg.Mappings; -import com.dotcms.repackage.net.sf.hibernate.type.Type; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotHibernateException; @@ -37,6 +25,18 @@ import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarFile; +import com.dotcms.repackage.net.sf.hibernate.CallbackException; +import com.dotcms.repackage.net.sf.hibernate.FlushMode; +import com.dotcms.repackage.net.sf.hibernate.HibernateException; +import com.dotcms.repackage.net.sf.hibernate.Interceptor; +import com.dotcms.repackage.net.sf.hibernate.MappingException; +import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; +import com.dotcms.repackage.net.sf.hibernate.Query; +import com.dotcms.repackage.net.sf.hibernate.Session; +import com.dotcms.repackage.net.sf.hibernate.SessionFactory; +import com.dotcms.repackage.net.sf.hibernate.cfg.Configuration; +import com.dotcms.repackage.net.sf.hibernate.cfg.Mappings; +import com.dotcms.repackage.net.sf.hibernate.type.Type; /** * This class provides a great number of utility methods that allow developers to interact with diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/EmailFactory.java b/dotCMS/src/main/java/com/dotmarketing/factories/EmailFactory.java index fdf7dd2bb7aa..b4d86d59035f 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/EmailFactory.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/EmailFactory.java @@ -1,7 +1,6 @@ package com.dotmarketing.factories; import com.dotcms.rendering.velocity.services.VelocityType; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.UserProxy; @@ -54,6 +53,7 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.beanutils.BeanUtils; import org.apache.velocity.Template; import org.apache.velocity.context.Context; import org.apache.velocity.exception.MethodInvocationException; diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/InodeFactory.java b/dotCMS/src/main/java/com/dotmarketing/factories/InodeFactory.java index 1893eb7a218b..4c2f8867d406 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/InodeFactory.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/InodeFactory.java @@ -1,12 +1,5 @@ package com.dotmarketing.factories; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; - import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; import com.dotmarketing.business.APILocator; @@ -25,6 +18,11 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.Parameter; import com.dotmarketing.util.UtilMethods; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeAPIImpl.java index 64fc3598d3b8..dbe810b2c253 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeAPIImpl.java @@ -1,5 +1,6 @@ package com.dotmarketing.factories; +import com.dotcms.rendering.velocity.viewtools.DotTemplateTool; import com.dotmarketing.beans.MultiTree; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.VersionableAPI; @@ -10,6 +11,9 @@ import com.dotmarketing.portlets.contentlet.business.DotContentletStateException; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import com.dotmarketing.portlets.templates.business.TemplateAPI; +import com.dotmarketing.portlets.templates.design.bean.ContainerUUID; +import com.dotmarketing.portlets.templates.design.bean.TemplateLayout; import com.dotmarketing.util.Logger; import java.util.LinkedHashSet; @@ -25,7 +29,7 @@ public class MultiTreeAPIImpl implements MultiTreeAPI { final VersionableAPI versionableAPI = APILocator.getVersionableAPI(); final ContentletAPI contentletAPI = APILocator.getContentletAPI(); final User systemUser = APILocator.systemUser(); - + final TemplateAPI templateAPI = APILocator.getTemplateAPI(); public void saveMultiTrees(final String pageId, final List multiTrees) throws DotDataException { Logger.info(this, String.format("Saving MutiTrees: pageId -> %s multiTrees-> %s", pageId, multiTrees)); @@ -70,20 +74,34 @@ public Table> getPageMultiTrees(final IHTMLPage pag }; } - + + this.addEmptyContainers(page, pageContents, liveMode); + return pageContents; } - - - - - - - - - - - - - + + private void addEmptyContainers(final IHTMLPage page, Table> pageContents, + final boolean liveMode) throws DotDataException, DotSecurityException { + + try { + TemplateLayout layout = DotTemplateTool.themeLayout(page.getTemplateId(), APILocator.getUserAPI().getSystemUser(), false); + List containersUUID = this.templateAPI.getContainersUUID(layout); + + for (ContainerUUID containerUUID : containersUUID) { + + final Container container = (liveMode) ? (Container) versionableAPI.findLiveVersion(containerUUID.getIdentifier(), + systemUser, false) + : (Container) versionableAPI.findWorkingVersion(containerUUID.getIdentifier(), systemUser, false); + if(container==null && ! liveMode) { + continue; + } + + if (!pageContents.contains(containerUUID.getIdentifier(), containerUUID.getUUID())) { + pageContents.put(containerUUID.getIdentifier(), containerUUID.getUUID(), new LinkedHashSet<>()); + } + } + } catch (RuntimeException e) { + + } + } } diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java index 04c8a292ca21..4322d5da387b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java @@ -54,7 +54,7 @@ public class MultiTreeFactory { static final String INSERT_SQL = "insert into multi_tree (parent1, parent2, child, relation_type, tree_order ) values (?,?,?,?,?) "; - static final String SELECT_BY_ONE_PARENT = "select * from multi_tree where parent1 = ? or parent2 = ? "; + static final String SELECT_BY_ONE_PARENT = "select * from multi_tree where parent1 = ? or parent2 = ? order by tree_order"; static final String SELECT_BY_TWO_PARENTS = "select * from multi_tree where parent1 = ? and parent2 = ? order by tree_order"; static final String SELECT_ALL = "select * from multi_tree "; static final String SELECT_BY_CHILD = "select * from multi_tree where child = ? order by parent1, parent2, relation_type "; @@ -158,7 +158,7 @@ public static java.util.List getMultiTrees(String parentInode) throws DotConnect db = new DotConnect().setSQL(SELECT_BY_ONE_PARENT) .addParam(parentInode) .addParam(parentInode); - + return TransformerLocator.createMultiTreeTransformer(db.loadObjectResults()).asList(); } diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/PermissionGenerator.java b/dotCMS/src/main/java/com/dotmarketing/factories/PermissionGenerator.java index a8391384a44f..a0fdf1b09ce4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/PermissionGenerator.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/PermissionGenerator.java @@ -1,7 +1,6 @@ package com.dotmarketing.factories; import java.io.Serializable; - import com.dotcms.repackage.net.sf.hibernate.engine.SessionImplementor; import com.dotcms.repackage.net.sf.hibernate.id.IdentifierGenerator; diff --git a/dotCMS/src/main/java/com/dotmarketing/filters/CharsetEncodingFilter.java b/dotCMS/src/main/java/com/dotmarketing/filters/CharsetEncodingFilter.java index bb4e79a9bc3c..d70b281cb46e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/filters/CharsetEncodingFilter.java +++ b/dotCMS/src/main/java/com/dotmarketing/filters/CharsetEncodingFilter.java @@ -5,9 +5,17 @@ */ package com.dotmarketing.filters; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.web.WebAPILocator; +import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.ServletResponseCharacterEncoding; +import com.dotmarketing.util.UtilMethods; +import com.liferay.portal.PortalException; +import com.liferay.portal.model.User; +import com.liferay.portal.util.PortalUtil; import java.io.IOException; import java.util.Locale; - import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; @@ -17,21 +25,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; - -import com.dotcms.repackage.org.apache.struts.Globals; - -import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.web.WebAPILocator; -import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; -import com.dotmarketing.portlets.languagesmanager.model.Language; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.ServletResponseCharacterEncoding; -import com.dotmarketing.util.UtilMethods; -import com.dotmarketing.util.WebKeys; -import com.liferay.portal.PortalException; -import com.liferay.portal.model.User; -import com.liferay.portal.util.PortalUtil; -import com.liferay.util.Xss; +import org.apache.struts.Globals; /** * Ensures the proper encoding diff --git a/dotCMS/src/main/java/com/dotmarketing/filters/DotUrlRewriteFilter.java b/dotCMS/src/main/java/com/dotmarketing/filters/DotUrlRewriteFilter.java index 3b8bbd4a6c51..7af83ab915f5 100644 --- a/dotCMS/src/main/java/com/dotmarketing/filters/DotUrlRewriteFilter.java +++ b/dotCMS/src/main/java/com/dotmarketing/filters/DotUrlRewriteFilter.java @@ -1,14 +1,13 @@ package com.dotmarketing.filters; import com.dotmarketing.util.Config; -import com.dotcms.repackage.org.tuckey.web.filters.urlrewrite.Conf; -import com.dotcms.repackage.org.tuckey.web.filters.urlrewrite.Rule; -import com.dotcms.repackage.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter; - -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; import java.lang.reflect.Field; import java.util.List; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import org.tuckey.web.filters.urlrewrite.Conf; +import org.tuckey.web.filters.urlrewrite.Rule; +import org.tuckey.web.filters.urlrewrite.UrlRewriteFilter; /** * Created by Jonathan Gamba diff --git a/dotCMS/src/main/java/com/dotmarketing/filters/ThreadNameFilter.java b/dotCMS/src/main/java/com/dotmarketing/filters/ThreadNameFilter.java index 8043b5f54f01..67815721aa83 100644 --- a/dotCMS/src/main/java/com/dotmarketing/filters/ThreadNameFilter.java +++ b/dotCMS/src/main/java/com/dotmarketing/filters/ThreadNameFilter.java @@ -9,10 +9,14 @@ */ package com.dotmarketing.filters; +import com.dotmarketing.beans.Host; +import com.dotmarketing.business.web.HostWebAPI; +import com.dotmarketing.business.web.WebAPILocator; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.PageMode; import java.io.IOException; import java.io.StringWriter; import java.util.Date; - import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; @@ -20,13 +24,7 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.lang.time.FastDateFormat; -import com.dotmarketing.beans.Host; -import com.dotmarketing.business.web.HostWebAPI; -import com.dotmarketing.business.web.WebAPILocator; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.PageMode; +import org.apache.commons.lang.time.FastDateFormat; public class ThreadNameFilter implements Filter { FastDateFormat df = FastDateFormat.getInstance("MM-dd-yyyy hh:mm:ss z"); diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00001CheckAssetsMissingIdentifiers.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00001CheckAssetsMissingIdentifiers.java index 6d7d0264ac07..b5eec47addf2 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00001CheckAssetsMissingIdentifiers.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00001CheckAssetsMissingIdentifiers.java @@ -1,9 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; -import com.dotcms.repackage.net.sf.hibernate.HibernateException; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -17,6 +14,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; @@ -28,6 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import com.dotcms.repackage.net.sf.hibernate.HibernateException; public class FixTask00001CheckAssetsMissingIdentifiers implements FixTask { diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00003CheckContainersInconsistencies.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00003CheckContainersInconsistencies.java index 8ffcc0fa1ac0..866a7d7ebd5d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00003CheckContainersInconsistencies.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00003CheckContainersInconsistencies.java @@ -1,8 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Inode; import com.dotmarketing.common.db.DotConnect; @@ -15,6 +13,8 @@ import com.dotmarketing.portlets.cmsmaintenance.factories.CMSMaintenanceFactory; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00006CheckLinksInconsistencies.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00006CheckLinksInconsistencies.java index 0c312845d42e..cb7e0a1ec288 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00006CheckLinksInconsistencies.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00006CheckLinksInconsistencies.java @@ -1,8 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; @@ -14,6 +12,8 @@ import com.dotmarketing.portlets.cmsmaintenance.factories.CMSMaintenanceFactory; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00007CheckTemplatesInconsistencies.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00007CheckTemplatesInconsistencies.java index 66c03763ca1d..b7768eb12432 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00007CheckTemplatesInconsistencies.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00007CheckTemplatesInconsistencies.java @@ -1,8 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; @@ -14,6 +12,8 @@ import com.dotmarketing.portlets.cmsmaintenance.factories.CMSMaintenanceFactory; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00008CheckTreeInconsistencies.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00008CheckTreeInconsistencies.java index 8ef0c3ab0841..ffa792c37598 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00008CheckTreeInconsistencies.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00008CheckTreeInconsistencies.java @@ -1,8 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; @@ -14,6 +12,8 @@ import com.dotmarketing.portlets.cmsmaintenance.factories.CMSMaintenanceFactory; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00009CheckContentletsInexistentInodes.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00009CheckContentletsInexistentInodes.java index f67114a100c8..dbc0b9d0802d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00009CheckContentletsInexistentInodes.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00009CheckContentletsInexistentInodes.java @@ -1,8 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.HibernateUtil; @@ -13,6 +11,8 @@ import com.dotmarketing.portlets.cmsmaintenance.factories.CMSMaintenanceFactory; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00011RenameHostInFieldVariableName.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00011RenameHostInFieldVariableName.java index c08e682d94e8..676fc85fa961 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00011RenameHostInFieldVariableName.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00011RenameHostInFieldVariableName.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.HibernateUtil; @@ -12,6 +10,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00012UpdateAssetsHosts.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00012UpdateAssetsHosts.java index b43a74570529..fe501b3b79dd 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00012UpdateAssetsHosts.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00012UpdateAssetsHosts.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Inode; @@ -18,6 +16,8 @@ import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00020DeleteOrphanedIdentifiers.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00020DeleteOrphanedIdentifiers.java index d7112746335f..600aafedbb2e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00020DeleteOrphanedIdentifiers.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00020DeleteOrphanedIdentifiers.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Inode; @@ -14,6 +12,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00030DeleteOrphanedAssets.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00030DeleteOrphanedAssets.java index dd2109ceaa7d..e3220e4e3699 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00030DeleteOrphanedAssets.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00030DeleteOrphanedAssets.java @@ -3,8 +3,6 @@ */ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; @@ -16,6 +14,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00050FixInodesWithoutContentlets.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00050FixInodesWithoutContentlets.java index 2079b5b5ed73..76f6bc863908 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00050FixInodesWithoutContentlets.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00050FixInodesWithoutContentlets.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; @@ -13,6 +11,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00060FixAssetType.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00060FixAssetType.java index 4e507af904df..1e1f7f06b033 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00060FixAssetType.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00060FixAssetType.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.Inode; import com.dotmarketing.business.CacheLocator; @@ -12,6 +10,8 @@ import com.dotmarketing.portlets.cmsmaintenance.ajax.FixAssetsProcessStatus; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00080DeleteOrphanedContentTypeFields.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00080DeleteOrphanedContentTypeFields.java index 3fe9c62a5e0a..cd2c2c654293 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00080DeleteOrphanedContentTypeFields.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00080DeleteOrphanedContentTypeFields.java @@ -1,7 +1,5 @@ package com.dotmarketing.fixtask.tasks; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.common.db.DotConnect; @@ -14,6 +12,8 @@ import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.MaintenanceUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00090RecreateMissingFoldersInParentPath.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00090RecreateMissingFoldersInParentPath.java index e2a06552ade5..ccdd843a4cf3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00090RecreateMissingFoldersInParentPath.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00090RecreateMissingFoldersInParentPath.java @@ -3,8 +3,6 @@ import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.base.Preconditions; import com.dotcms.repackage.com.google.common.base.Strings; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Identifier; @@ -20,6 +18,8 @@ import com.dotmarketing.portlets.folders.model.Folder; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import java.io.BufferedOutputStream; import java.io.File; import java.io.IOException; diff --git a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00095DeleteOrphanRelationships.java b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00095DeleteOrphanRelationships.java index 53c541289d33..6ceb59d58ab6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00095DeleteOrphanRelationships.java +++ b/dotCMS/src/main/java/com/dotmarketing/fixtask/tasks/FixTask00095DeleteOrphanRelationships.java @@ -1,22 +1,6 @@ package com.dotmarketing.fixtask.tasks; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.file.Files; -import java.sql.SQLException; -import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - import com.dotcms.business.WrapInTransaction; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.FixAudit; import com.dotmarketing.beans.Inode; @@ -33,6 +17,21 @@ import com.dotmarketing.portlets.structure.model.Relationship; import com.dotmarketing.util.ConfigUtils; import com.dotmarketing.util.Logger; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Files; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * Fix broken relationships diff --git a/dotCMS/src/main/java/com/dotmarketing/logConsole/business/ConsoleLogFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/logConsole/business/ConsoleLogFactoryImpl.java index 9c6ef930f919..53ff350dd539 100644 --- a/dotCMS/src/main/java/com/dotmarketing/logConsole/business/ConsoleLogFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/logConsole/business/ConsoleLogFactoryImpl.java @@ -1,18 +1,17 @@ package com.dotmarketing.logConsole.business; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.logConsole.model.LogMapperRow; import com.dotmarketing.util.Logger; - import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.apache.commons.beanutils.BeanUtils; public class ConsoleLogFactoryImpl implements ConsoleLogFactory { diff --git a/dotCMS/src/main/java/com/dotmarketing/logConsole/form/ConsoleLogForm.java b/dotCMS/src/main/java/com/dotmarketing/logConsole/form/ConsoleLogForm.java index b7643fd3e29d..a8a3c0ffb8e2 100644 --- a/dotCMS/src/main/java/com/dotmarketing/logConsole/form/ConsoleLogForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/logConsole/form/ConsoleLogForm.java @@ -1,6 +1,6 @@ package com.dotmarketing.logConsole.form; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; +import org.apache.struts.validator.ValidatorForm; public class ConsoleLogForm extends ValidatorForm{ diff --git a/dotCMS/src/main/java/com/dotmarketing/logConsole/model/LogMapperRow.java b/dotCMS/src/main/java/com/dotmarketing/logConsole/model/LogMapperRow.java index 70ced0102c73..eafbb236d5c6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/logConsole/model/LogMapperRow.java +++ b/dotCMS/src/main/java/com/dotmarketing/logConsole/model/LogMapperRow.java @@ -1,11 +1,10 @@ package com.dotmarketing.logConsole.model; import com.dotmarketing.util.UtilMethods; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; public class LogMapperRow implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/osgi/ActivatorUtil.java b/dotCMS/src/main/java/com/dotmarketing/osgi/ActivatorUtil.java index 26a1e40acb5f..d1518a19ea0e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/osgi/ActivatorUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/osgi/ActivatorUtil.java @@ -1,9 +1,6 @@ package com.dotmarketing.osgi; import com.dotcms.repackage.org.apache.commons.io.FilenameUtils; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.config.ModuleConfig; -import com.dotcms.repackage.org.apache.struts.config.impl.ModuleConfigImpl; import com.dotmarketing.util.Config; import com.dotmarketing.util.VelocityUtil; import com.liferay.portal.util.Constants; @@ -18,6 +15,9 @@ import java.util.Enumeration; import javax.servlet.ServletContext; import org.apache.felix.http.api.ExtHttpService; +import org.apache.struts.Globals; +import org.apache.struts.config.ModuleConfig; +import org.apache.struts.config.impl.ModuleConfigImpl; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; diff --git a/dotCMS/src/main/java/com/dotmarketing/osgi/GenericBundleActivator.java b/dotCMS/src/main/java/com/dotmarketing/osgi/GenericBundleActivator.java index e9cf538f6379..38b20b079bab 100644 --- a/dotCMS/src/main/java/com/dotmarketing/osgi/GenericBundleActivator.java +++ b/dotCMS/src/main/java/com/dotmarketing/osgi/GenericBundleActivator.java @@ -12,13 +12,6 @@ import com.dotcms.enterprise.cache.provider.CacheProviderAPI; import com.dotcms.enterprise.rules.RulesAPI; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.config.ActionConfig; -import com.dotcms.repackage.org.apache.struts.config.ForwardConfig; -import com.dotcms.repackage.org.apache.struts.config.ModuleConfig; -import com.dotcms.repackage.org.tuckey.web.filters.urlrewrite.NormalRule; -import com.dotcms.repackage.org.tuckey.web.filters.urlrewrite.Rule; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.Interceptor; import com.dotmarketing.business.cache.CacheOSGIService; @@ -67,6 +60,11 @@ import net.bytebuddy.dynamic.ClassFileLocator; import net.bytebuddy.dynamic.loading.ClassReloadingStrategy; import org.apache.felix.http.proxy.DispatcherTracker; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.config.ActionConfig; +import org.apache.struts.config.ForwardConfig; +import org.apache.struts.config.ModuleConfig; import org.apache.velocity.tools.view.PrimitiveToolboxManager; import org.apache.velocity.tools.view.ToolInfo; import org.apache.velocity.tools.view.servlet.ServletToolboxManager; @@ -75,6 +73,8 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.quartz.SchedulerException; +import org.tuckey.web.filters.urlrewrite.NormalRule; +import org.tuckey.web.filters.urlrewrite.Rule; /** * Created by Jonathan Gamba diff --git a/dotCMS/src/main/java/com/dotmarketing/plugin/model/PluginProperty.java b/dotCMS/src/main/java/com/dotmarketing/plugin/model/PluginProperty.java index 514376b592ef..089c4fd49461 100644 --- a/dotCMS/src/main/java/com/dotmarketing/plugin/model/PluginProperty.java +++ b/dotCMS/src/main/java/com/dotmarketing/plugin/model/PluginProperty.java @@ -4,9 +4,8 @@ package com.dotmarketing.plugin.model; import java.io.Serializable; - -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; /** * @author Jason Tesser diff --git a/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletAction.java b/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletAction.java index 807d8ae61ce8..524a1bdd5145 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletAction.java @@ -9,23 +9,10 @@ import static com.dotmarketing.business.PermissionAPI.PERMISSION_READ; import static com.dotmarketing.business.PermissionAPI.PERMISSION_WRITE; -import java.util.ArrayList; -import java.util.List; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotcms.util.SecurityUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -47,7 +34,13 @@ import com.dotmarketing.portlets.containers.model.Container; import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.portlets.folders.model.Folder; -import com.dotmarketing.util.*; +import com.dotmarketing.util.ActivityLogger; +import com.dotmarketing.util.HostUtil; +import com.dotmarketing.util.InodeUtils; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.PaginatedArrayList; +import com.dotmarketing.util.UtilMethods; +import com.dotmarketing.util.WebKeys; import com.liferay.portal.NoSuchUserException; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.Company; @@ -57,6 +50,16 @@ import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.servlet.jsp.PageContext; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * Provides utility methods to interact with {@link WebAsset} objects in dotCMS. diff --git a/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletActionInterface.java b/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletActionInterface.java index fa6e875524da..597b65bef9c2 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletActionInterface.java +++ b/dotCMS/src/main/java/com/dotmarketing/portal/struts/DotPortletActionInterface.java @@ -9,10 +9,8 @@ import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; - import com.liferay.portal.model.User; +import org.apache.struts.action.ActionForm; /** * @author Maria diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/browser/action/ViewBrowserAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/browser/action/ViewBrowserAction.java index 7a0a863fdeb1..db0ed3aa01a3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/browser/action/ViewBrowserAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/browser/action/ViewBrowserAction.java @@ -1,17 +1,8 @@ package com.dotmarketing.portlets.browser.action; -import java.util.List; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.factories.PreviewFactory; import com.dotmarketing.portlets.languagesmanager.model.Language; @@ -19,6 +10,12 @@ import com.liferay.portal.struts.PortletAction; import com.liferay.portal.util.Constants; import com.liferay.portlet.RenderRequestImpl; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/EditEventAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/EditEventAction.java index cbc57571caac..8b61683fa4b5 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/EditEventAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/EditEventAction.java @@ -1,22 +1,8 @@ package com.dotmarketing.portlets.calendar.action; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; @@ -34,6 +20,17 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionRequestImpl; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * Struts controller that handle portlet actions to save/publish/un-publish/archive and delete diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/SendVCalendarDetail.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/SendVCalendarDetail.java index 11b9ced5337e..e9a1f4c20655 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/SendVCalendarDetail.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/SendVCalendarDetail.java @@ -1,17 +1,5 @@ package com.dotmarketing.portlets.calendar.action; -import java.io.OutputStreamWriter; -import java.text.SimpleDateFormat; -import java.util.Date; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.web.HostWebAPI; @@ -23,6 +11,15 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.portal.util.PortalUtil; +import java.io.OutputStreamWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.actions.DispatchAction; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/ViewCalendarAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/ViewCalendarAction.java index 3e2e87b4a2ef..74d227ac32e8 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/ViewCalendarAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/action/ViewCalendarAction.java @@ -4,17 +4,15 @@ import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.portal.struts.DotPortletAction; import com.liferay.portal.PortalException; import com.liferay.portal.SystemException; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/action/CalendarReminderAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/action/CalendarReminderAction.java index 5631d121c14e..cc771620a951 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/action/CalendarReminderAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/action/CalendarReminderAction.java @@ -1,17 +1,15 @@ package com.dotmarketing.portlets.calendar.cms.action; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.actions.DispatchAction; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.calendar.business.CalendarReminderAPI; import com.dotmarketing.portlets.calendar.struts.CalendarReminderForm; import com.dotmarketing.util.UtilMethods; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.actions.DispatchAction; public class CalendarReminderAction extends DispatchAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/struts/EventForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/struts/EventForm.java index c84c8cd26268..96e08711b2a6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/struts/EventForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/cms/struts/EventForm.java @@ -1,21 +1,18 @@ package com.dotmarketing.portlets.calendar.cms.struts; +import com.dotmarketing.util.Logger; +import com.liferay.util.servlet.UploadServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; - import javax.activation.MimetypesFileTypeMap; import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - -import com.dotmarketing.util.Logger; -import com.liferay.util.servlet.UploadServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.validator.ValidatorForm; /** * Used to manage the data comming doem the submit event frontend page diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/CalendarReminderForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/CalendarReminderForm.java index 600ce3585822..4bef2b8538f0 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/CalendarReminderForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/CalendarReminderForm.java @@ -1,6 +1,6 @@ package com.dotmarketing.portlets.calendar.struts; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForm; public class CalendarReminderForm extends ActionForm{ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/EventForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/EventForm.java index e00c88f12035..0d33c5725684 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/EventForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/calendar/struts/EventForm.java @@ -1,16 +1,13 @@ package com.dotmarketing.portlets.calendar.struts; +import com.dotmarketing.portlets.contentlet.struts.ContentletForm; +import com.dotmarketing.util.Logger; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; - import javax.servlet.ServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - -import com.dotmarketing.portlets.contentlet.struts.ContentletForm; -import com.dotmarketing.util.Logger; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/EditCategoryAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/EditCategoryAction.java index 471e08093334..16fb453615b1 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/EditCategoryAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/EditCategoryAction.java @@ -1,16 +1,8 @@ package com.dotmarketing.portlets.categories.action; -import java.lang.reflect.InvocationTargetException; - - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; @@ -27,6 +19,10 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.util.servlet.SessionMessages; +import java.lang.reflect.InvocationTargetException; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; public class EditCategoryAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoriesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoriesAction.java index bb368aaa06e2..52132426d235 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoriesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoriesAction.java @@ -4,16 +4,14 @@ import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.categories.business.CategoryAPI; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewCategoriesAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoryAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoryAction.java index 35d263cb9433..41332b04e104 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoryAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/action/ViewCategoryAction.java @@ -5,17 +5,7 @@ import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import com.dotcms.repackage.javax.portlet.WindowState; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; -import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.categories.business.CategoryAPI; import com.dotmarketing.portlets.categories.model.Category; @@ -23,8 +13,12 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; -import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewCategoryAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/business/CategoryFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/business/CategoryFactoryImpl.java index 59555d57eec6..e1c2b1365500 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/business/CategoryFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/business/CategoryFactoryImpl.java @@ -1,7 +1,5 @@ package com.dotmarketing.portlets.categories.business; -import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.beans.Tree; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; @@ -28,6 +26,8 @@ import java.util.Date; import java.util.List; import java.util.Map; +import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; +import org.apache.commons.beanutils.BeanUtils; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/model/Category.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/model/Category.java index 24b956cbd76e..bfef8ad90040 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/model/Category.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/model/Category.java @@ -1,14 +1,5 @@ package com.dotmarketing.portlets.categories.model; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Inode; import com.dotmarketing.beans.Tree; @@ -18,10 +9,7 @@ import com.dotmarketing.business.Permissionable; import com.dotmarketing.business.UserAPI; import com.dotmarketing.common.db.DotConnect; -import com.dotmarketing.db.DbConnectionFactory; -import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.exception.DotHibernateException; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.factories.TreeFactory; @@ -29,6 +17,13 @@ import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; public class Category extends Inode implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/struts/CategoryForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/struts/CategoryForm.java index af887b9e4ce9..a0bc9c342da3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/categories/struts/CategoryForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/categories/struts/CategoryForm.java @@ -1,16 +1,5 @@ package com.dotmarketing.portlets.categories.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; @@ -21,6 +10,15 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.validator.ValidatorForm; /** @author Hibernate CodeGenerator */ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/action/ViewCMSMaintenanceAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/action/ViewCMSMaintenanceAction.java index a49adf4fa618..52404fc60558 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/action/ViewCMSMaintenanceAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/action/ViewCMSMaintenanceAction.java @@ -3,19 +3,12 @@ import com.dotcms.content.elasticsearch.business.ESIndexAPI; import com.dotcms.content.elasticsearch.business.IndiciesAPI.IndiciesInfo; import com.dotcms.contenttype.util.ContentTypeImportExportUtil; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; -import com.dotcms.repackage.com.thoughtworks.xstream.mapper.Mapper; import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotcms.util.transform.TransformerLocator; import com.dotmarketing.beans.Clickstream; import com.dotmarketing.beans.Clickstream404; @@ -74,6 +67,9 @@ import com.liferay.util.FileUtil; import com.liferay.util.servlet.SessionMessages; import com.liferay.util.servlet.UploadPortletRequest; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import com.thoughtworks.xstream.mapper.Mapper; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; @@ -97,6 +93,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.PageContext; +import org.apache.commons.lang.StringUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * This class group all the CMS Maintenance Task diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/ajax/CMSMaintenanceAjax.java b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/ajax/CMSMaintenanceAjax.java index b36da3c854e2..59201a1b0d8b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/ajax/CMSMaintenanceAjax.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/ajax/CMSMaintenanceAjax.java @@ -6,10 +6,6 @@ import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.field.FieldVariable; import com.dotcms.contenttype.util.ContentTypeImportExportUtil; -import com.dotcms.repackage.com.thoughtworks.xstream.XStream; -import com.dotcms.repackage.com.thoughtworks.xstream.io.xml.DomDriver; -import com.dotcms.repackage.com.thoughtworks.xstream.mapper.Mapper; -import com.dotcms.repackage.net.sf.hibernate.HibernateException; import com.dotcms.repackage.org.directwebremoting.WebContextFactory; import com.dotcms.util.CloseUtils; import com.dotmarketing.beans.Clickstream; @@ -64,6 +60,9 @@ import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.util.FileUtil; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import com.thoughtworks.xstream.mapper.Mapper; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; @@ -84,6 +83,7 @@ import java.util.zip.ZipOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; +import com.dotcms.repackage.net.sf.hibernate.HibernateException; import org.quartz.JobExecutionContext; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/struts/CmsMaintenanceForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/struts/CmsMaintenanceForm.java index 89da984c32c5..76f8690b4bf5 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/struts/CmsMaintenanceForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/struts/CmsMaintenanceForm.java @@ -1,10 +1,6 @@ package com.dotmarketing.portlets.cmsmaintenance.struts; -import java.util.List; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; - -import com.dotmarketing.portlets.structure.model.Structure; +import org.apache.struts.action.ActionForm; /** * This class form is created to manipulate the maintenance task * of the CMS Maintenance portlet diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/util/CleanAssetsThread.java b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/util/CleanAssetsThread.java index 0bc68611de4a..7b86e16e72be 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/util/CleanAssetsThread.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/cmsmaintenance/util/CleanAssetsThread.java @@ -1,18 +1,16 @@ package com.dotmarketing.portlets.cmsmaintenance.util; -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotcms.repackage.org.apache.commons.io.FileUtils; - import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.File; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.beanutils.BeanUtils; /** * Created by Jonathan Gamba diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/EditContainerAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/EditContainerAction.java index fa40ff8951f9..ffac68774414 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/EditContainerAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/EditContainerAction.java @@ -5,13 +5,6 @@ import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; - import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -43,23 +36,26 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.Validator; import com.dotmarketing.util.WebKeys; - +import com.liferay.portal.model.User; +import com.liferay.portal.struts.ActionException; +import com.liferay.portal.util.Constants; +import com.liferay.portlet.ActionRequestImpl; +import com.liferay.util.servlet.SessionMessages; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Iterator; import java.util.LinkedList; import java.util.List; - import java.util.Map; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; - -import com.liferay.portal.model.User; -import com.liferay.portal.struts.ActionException; -import com.liferay.portal.util.Constants; -import com.liferay.portlet.ActionRequestImpl; -import com.liferay.util.servlet.SessionMessages; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; /** * Portlet action used to maintain the containers @@ -664,6 +660,7 @@ public void _getVersionBackWebAsset(ActionRequest req, ActionResponse res, Container workingContainer = (Container) super._getVersionBackWebAsset( req, res, config, form, user, Container.class, WebKeys.CONTAINER_EDIT); + CacheLocator.getContainerCache().remove(workingContainer); new ContainerLoader().invalidate(workingContainer); } diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/PublishContainersAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/PublishContainersAction.java index 20a61c35e1f8..92b7e6e2570b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/PublishContainersAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/PublishContainersAction.java @@ -1,14 +1,8 @@ package com.dotmarketing.portlets.containers.action; -import java.net.URLDecoder; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.exception.WebAssetException; @@ -23,6 +17,9 @@ import com.liferay.portal.model.User; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/ViewContainersAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/ViewContainersAction.java index 0cefde202cb7..5f3d6e4fa52c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/ViewContainersAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/action/ViewContainersAction.java @@ -1,18 +1,8 @@ package com.dotmarketing.portlets.containers.action; -import java.util.List; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.PermissionAPI; @@ -23,6 +13,13 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * View Source @@ -34,8 +31,8 @@ public class ViewContainersAction extends DotPortletAction { /* - * @see com.liferay.portal.struts.PortletAction#render(com.dotcms.repackage.org.apache.struts.action.ActionMapping, - * com.dotcms.repackage.org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, + * @see com.liferay.portal.struts.PortletAction#render(org.apache.struts.action.ActionMapping, + * org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, * com.dotcms.repackage.javax.portlet.RenderRequest, com.dotcms.repackage.javax.portlet.RenderResponse) */ public ActionForward render(ActionMapping mapping, ActionForm form, diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPI.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPI.java index 2fdfa87c67d8..d6859328cd41 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPI.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPI.java @@ -253,4 +253,7 @@ List findContainersForStructure(String structureInode, boolean workin public List getContainersOnPage(IHTMLPage page) throws DotStateException, DotDataException, DotSecurityException; + List getContentTypesInContainer(Container container) + throws DotStateException, DotDataException, DotSecurityException; + } diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPIImpl.java index ef433e4817b2..9ae3c05ce6bc 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerAPIImpl.java @@ -3,6 +3,7 @@ import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; import com.dotcms.contenttype.model.type.ContentType; +import com.dotcms.contenttype.transform.contenttype.StructureTransformer; import com.dotcms.rendering.velocity.services.ContainerLoader; import com.dotcms.util.transform.TransformerLocator; @@ -37,11 +38,13 @@ import com.dotmarketing.util.WebKeys; import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import com.liferay.portal.model.User; @@ -243,7 +246,7 @@ public Container find(String inode, User user, boolean respectFrontendRoles) thr public Container getWorkingContainerById(String id, User user, boolean respectFrontendRoles) throws DotDataException, DotSecurityException { VersionInfo info = APILocator.getVersionableAPI().getVersionInfo(id); - return find(info.getWorkingInode(), user, respectFrontendRoles); + return (info !=null) ? find(info.getWorkingInode(), user, respectFrontendRoles) : null; } @@ -308,14 +311,15 @@ public void saveContainerStructures(final List containerStru } //Add the list to the cache. - //CacheLocator.getContainerCache().clearCache(); - CacheLocator.getContainerCache().remove(containerIdentifier); - CacheLocator.getContentTypeCache().addContainerStructures(containerStructureList, containerIdentifier, containerInode); + final VersionInfo info = APILocator.getVersionableAPI().getVersionInfo(containerIdentifier); + CacheLocator.getContainerCache().remove(info); + } catch(DotHibernateException e){ throw new DotDataException(e.getMessage(),e); } } + } @CloseDBIfOpened @@ -344,20 +348,27 @@ public List getContainerStructures(Container container) thro return containerStructures; } + + @CloseDBIfOpened + @Override + public List getContentTypesInContainer(Container container) throws DotStateException, DotDataException, DotSecurityException { - @CloseDBIfOpened - @Override - public List getStructuresInContainer(Container container) throws DotStateException, DotDataException, DotSecurityException { - - List csList = getContainerStructures(container); - List structureList = new ArrayList(); + List csList = getContainerStructures(container); + List cTypeList = new ArrayList(); - for (ContainerStructure cs : csList) { - Structure st = CacheLocator.getContentTypeCache().getStructureByInode(cs.getStructureId()); - structureList.add(st); - } + for (ContainerStructure cs : csList) { + ContentType type = APILocator.getContentTypeAPI(APILocator.systemUser()).find(cs.getStructureId()); + if(type==null) continue; + cTypeList.add(type); + } + + return cTypeList.stream().sorted(Comparator.comparing(ContentType::name)).collect(Collectors.toList()); + } + + @Deprecated + public List getStructuresInContainer(Container container) throws DotStateException, DotDataException, DotSecurityException { + return new StructureTransformer(getContentTypesInContainer(container)).asStructureList(); - return structureList; } @CloseDBIfOpened diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCache.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCache.java index c9f77918187e..05920053fd76 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCache.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCache.java @@ -1,5 +1,6 @@ package com.dotmarketing.portlets.containers.business; +import com.dotmarketing.beans.VersionInfo; import com.dotmarketing.business.Cachable; import com.dotmarketing.portlets.containers.model.Container; @@ -12,5 +13,10 @@ public abstract class ContainerCache implements Cachable { abstract public void clearCache(); - abstract public void remove(String inode); + abstract public void remove(Container inode); + + public void remove(VersionInfo cvinfo) { + // TODO Auto-generated method stub + + } } \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCacheImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCacheImpl.java index 264a2d3ae23a..960480876b0f 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCacheImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerCacheImpl.java @@ -1,5 +1,6 @@ package com.dotmarketing.portlets.containers.business; +import com.dotmarketing.beans.VersionInfo; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotCacheAdministrator; import com.dotmarketing.business.DotCacheException; @@ -44,14 +45,22 @@ public void clearCache() { // Clear the cache for all group. cache.flushGroup(primaryGroup); } + @Override + public void remove(VersionInfo cvinfo) { + cache.remove(primaryGroup + cvinfo.getWorkingInode(), primaryGroup); + cache.remove(primaryGroup + cvinfo.getIdentifier(), primaryGroup); + if(UtilMethods.isSet(cvinfo.getLiveInode())) { + cache.remove(primaryGroup + cvinfo.getLiveInode(), primaryGroup); + } + + } + public void remove(Container container) { - public void remove(String inode) { - String key = primaryGroup + inode; try { - cache.remove(key, primaryGroup); - + cache.remove(primaryGroup + container.getInode(), primaryGroup); + cache.remove(primaryGroup + container.getIdentifier(), primaryGroup); } catch (Exception e) { Logger.debug(this, "Cache not able to be removed", e); diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerFactoryImpl.java index 1f3843dfb734..917630d06b41 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/business/ContainerFactoryImpl.java @@ -41,12 +41,12 @@ public class ContainerFactoryImpl implements ContainerFactory { public void save(Container container) throws DotDataException { HibernateUtil.save(container); - containerCache.remove(container.getInode()); + containerCache.remove(container); } public void save(Container container, String existingId) throws DotDataException { HibernateUtil.saveWithPrimaryKey(container, existingId); - containerCache.remove(container.getInode()); + containerCache.remove(container); } @SuppressWarnings("unchecked") @@ -376,12 +376,8 @@ public void updateUserReferences(String userId, String replacementUserId)throws String identifier = ident.get("identifier"); if (UtilMethods.isSet(identifier)) { - final VersionInfo info = APILocator.getVersionableAPI().getVersionInfo(identifier); - - if (null != info && UtilMethods.isSet(info.getLiveInode())) { - - CacheLocator.getContainerCache().remove(info.getLiveInode()); - } + final VersionInfo info =APILocator.getVersionableAPI().getVersionInfo(identifier); + CacheLocator.getContainerCache().remove(info); } } diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/Container.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/Container.java index 07c62ca1e7d4..9fe1e7c2d667 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/Container.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/Container.java @@ -1,11 +1,5 @@ package com.dotmarketing.portlets.containers.model; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Inode; @@ -24,6 +18,10 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class Container extends WebAsset implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/struts/ContainerForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/struts/ContainerForm.java index 07cbf20734df..a126799209c9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/containers/struts/ContainerForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/containers/struts/ContainerForm.java @@ -1,18 +1,15 @@ package com.dotmarketing.portlets.containers.struts; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.beans.ContainerStructure; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.util.Constants; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.validator.ValidatorForm; /** @author Hibernate CodeGenerator */ public class ContainerForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/EditContentletAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/EditContentletAction.java index 01947be8c930..9c82f1f4d2b9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/EditContentletAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/EditContentletAction.java @@ -1,30 +1,5 @@ package com.dotmarketing.portlets.contentlet.action; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.Writer; -import java.net.URLDecoder; -import java.sql.Timestamp; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - import com.dotcms.api.system.event.Visibility; import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.contenttype.model.type.ContentType; @@ -37,13 +12,6 @@ import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.collections.CollectionUtils; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; import com.dotcms.util.I18NMessage; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -118,6 +86,36 @@ import com.liferay.util.LocaleUtil; import com.liferay.util.StringPool; import com.liferay.util.servlet.SessionMessages; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.Writer; +import java.net.URLDecoder; +import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; /** * This class processes all the interactions with contentlets that are diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportAuditUtil.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportAuditUtil.java index 954ee7030f54..f681f32dbe59 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportAuditUtil.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportAuditUtil.java @@ -1,20 +1,17 @@ package com.dotmarketing.portlets.contentlet.action; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.common.db.DotConnect; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.UtilMethods; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.collections.map.LRUMap; - -import com.dotmarketing.business.APILocator; -import com.dotmarketing.common.db.DotConnect; -import com.dotmarketing.exception.DotDataException; -import com.dotmarketing.util.InodeUtils; -import com.dotmarketing.util.Logger; -import com.dotmarketing.util.UtilMethods; +import org.apache.commons.collections.map.LRUMap; public class ImportAuditUtil { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportContentletsAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportContentletsAction.java index a04aafdf61fb..462048694ed6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportContentletsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ImportContentletsAction.java @@ -4,9 +4,6 @@ import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.mozilla.universalchardet.UniversalDetector; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.cache.FieldsCache; import com.dotmarketing.db.DbConnectionFactory; @@ -43,6 +40,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; +import org.mozilla.universalchardet.UniversalDetector; /** * This action class import content from csv/text files. The csv file should diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ViewContentletAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ViewContentletAction.java index 8da4f8cbe388..9b98526ab438 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ViewContentletAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/action/ViewContentletAction.java @@ -1,11 +1,5 @@ package com.dotmarketing.portlets.contentlet.action; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.PageContext; - import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.contenttype.model.type.ContentType; @@ -13,9 +7,6 @@ import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.portal.struts.DotPortletAction; @@ -33,6 +24,13 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; import com.liferay.portlet.RenderRequestImpl; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * Struts action that retrieves the required information to display the diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java index f7fc28dce7e8..20f2fe547e89 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java @@ -19,7 +19,11 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import com.dotcms.business.CloseDB; +import com.dotcms.business.CloseDBIfOpened; import com.dotcms.content.elasticsearch.util.ESUtils; +import com.dotcms.contenttype.model.type.ContentType; +import com.dotcms.contenttype.model.type.PageContentType; import com.dotcms.enterprise.FormAJAXProxy; import com.dotcms.enterprise.LicenseUtil; import com.dotcms.enterprise.license.LicenseLevel; @@ -397,7 +401,7 @@ public List searchContentlet(String structureInode, List fields, List fields, List categories, boolean showDeleted, boolean filterSystemHost, int page, String orderBy, String modDateFrom, String modDateTo) throws DotStateException, DotDataException, DotSecurityException { return searchContentlets(structureInode, fields, categories, showDeleted, filterSystemHost, page, orderBy, modDateFrom, modDateTo, true); @@ -421,6 +425,7 @@ public List searchContentlets(String structureInode, List fields, List fields, List categories, boolean showDeleted, boolean filterSystemHost, boolean filterUnpublish, boolean filterLocked, int page, String orderBy, String modDateFrom, @@ -461,6 +466,7 @@ public List searchContentlets(String structureInode, List fields, List searchFormWidget(String formStructureInode) throws DotDataException, DotSecurityException { FormAJAXProxy fp = new FormAJAXProxy(); return fp.searchFormWidget(formStructureInode); @@ -866,8 +872,9 @@ else if( fieldbcontentname.startsWith("date") ){ } searchResult = new HashMap(); - Structure s = CacheLocator.getContentTypeCache().getStructureByInode(con.getStructureInode()); - + ContentType type = con.getContentType(); + searchResult.put("typeVariable", type.variable()); + searchResult.put("baseType",type.baseType().name()); for (String fieldContentlet : fieldsMapping.keySet()) { String fieldValue = null; if (con.getMap() != null && con.getMap().get(fieldContentlet) != null) { @@ -896,8 +903,8 @@ else if( fieldbcontentname.startsWith("date") ){ //We need to replace the URL value from the contentlet with the one in the Identifier only for pages. if (("url").equals(fieldContentlet) && - s != null && - s.getStructureType() == Structure.STRUCTURE_TYPE_HTMLPAGE && + type != null && + type instanceof PageContentType && UtilMethods.isSet(ident) && UtilMethods.isSet(ident.getAssetName())) { fieldValue = ident.getAssetName(); @@ -912,19 +919,19 @@ else if( fieldbcontentname.startsWith("date") ){ final Contentlet contentlet = con; searchResult.put("__title__", conAPI.getName(contentlet, currentUser, false)); - String spanClass = (s.getStructureType() ==1) + String spanClass = (type.baseType().ordinal() ==1) ? "contentIcon" - : (s.getStructureType() ==2) + : (type.baseType().ordinal() ==2) ? "gearIcon" - : (s.getStructureType() ==3) + : (type.baseType().ordinal() ==3) ? "formIcon" - : (s.getStructureType() ==4) + : (type.baseType().ordinal() ==4) ? "uknIcon " + UtilMethods.getFileExtension( ident.getURI()) + "Icon" - : (s.getStructureType() ==5) + : (type.baseType().ordinal() ==5) ? "pageIcon" : "personaIcon"; - String typeStringToShow = s.getName() ; + String typeStringToShow = type.name(); searchResult.put("__type__", "

 " + typeStringToShow +"
"); String fieldValue = UtilMethods.dateToHTMLDate(con.getModDate()) + " " + UtilMethods.dateToHTMLTime(con.getModDate()); @@ -1079,7 +1086,7 @@ else if( fieldbcontentname.startsWith("date") ){ return results; } - + @CloseDB @NotNull private JSONArray getAvailableWorkflowActionsJson(final User currentUser, final Contentlet contentlet) throws DotDataException { @@ -1141,7 +1148,7 @@ private JSONArray getAvailableWorkflowActionsJson(final User currentUser, return wfActionMapList; } - + @CloseDB public ArrayList doSearchGlossaryTerm(String valueToComplete, String language) throws Exception { ArrayList list = new ArrayList(15); @@ -1174,6 +1181,7 @@ private List retrieveProperties(long langId) throws Exception { * @param languageId if set to 0 will publish for all languages * @return */ + @CloseDB public List> publishContentlets(List identifiersList, boolean isPublish, long languageId) { List> rows = new ArrayList>(); HttpServletRequest req = WebContextFactory.get().getHttpServletRequest(); @@ -1241,6 +1249,7 @@ public List> publishContentlets(List identifiersList * @throws LanguageException */ //http://jira.dotmarketing.net/browse/DOTCMS-2273 + @CloseDB public Map saveContent(List formData, boolean isAutoSave,boolean isCheckin, boolean publish) throws LanguageException, PortalException, SystemException { Map contentletFormData = new HashMap(); Map callbackData = new HashMap(); @@ -1427,6 +1436,8 @@ public Map saveContent(List formData, boolean isAutoSave, callbackData.put("contentletInode", contentlet.getInode()); callbackData.put("contentletLocked", contentlet.isLocked()); callbackData.put("isHtmlPage", contentlet.isHTMLPage()); + callbackData.put("contentletType", contentlet.getContentType().variable()); + callbackData.put("contentletBaseType", contentlet.getContentType().baseType().name()); if(contentlet.isHTMLPage()) { HTMLPageAsset page = APILocator.getHTMLPageAssetAPI().fromContentlet(contentlet); @@ -1768,9 +1779,10 @@ else if(key.equals(DotContentletValidationException.VALIDATION_FAILED_BAD_CARDIN } } callbackData.put("referer", referer); + return callbackData; } - + @CloseDB //http://jira.dotmarketing.net/browse/DOTCMS-2273 public String cancelContentEdit(String workingContentletInode,String currentContentletInode,String referer,String language){ @@ -1811,7 +1823,7 @@ public String cancelContentEdit(String workingContentletInode,String currentCont return referer; } - + @CloseDB public Map saveContentProperties(String inode, List formData, boolean isAutoSave,boolean isCheckin,boolean isPublish) throws PortalException, SystemException, DotDataException, DotSecurityException{ HttpServletRequest req = WebContextFactory.get().getHttpServletRequest(); User user = com.liferay.portal.util.PortalUtil.getUser((HttpServletRequest)req); @@ -2003,7 +2015,7 @@ else if(key.equals(DotContentletValidationException.VALIDATION_FAILED_BAD_REL)) return callbackData; } - + @CloseDB public void removeSiblingBinaryFromSession(String fieldContentlet){ //http://jira.dotmarketing.net/browse/DOTCMS-5802 if(UtilMethods.isSet(fieldContentlet)){ @@ -2011,7 +2023,7 @@ public void removeSiblingBinaryFromSession(String fieldContentlet){ req.getSession().removeAttribute(fieldContentlet+"-sibling"); } } - + @CloseDB public String unrelateContent(String contentletIdentifier, String identifierToUnrelate, String relationshipInode){ // User info @@ -2087,7 +2099,7 @@ public Map lockContent(String contentletInode) throws DotContent } - + @CloseDB public Map unlockContent(String contentletInode) throws DotContentletStateException, DotDataException, DotSecurityException, LanguageException{ // User info HttpServletRequest req = WebContextFactory.get().getHttpServletRequest(); diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/Contentlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/Contentlet.java index 546c40d4c975..4c857a7f77bb 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/Contentlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/Contentlet.java @@ -1,20 +1,6 @@ package com.dotmarketing.portlets.contentlet.business; -import java.io.File; -import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; -import java.sql.Timestamp; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.dotcms.contenttype.transform.field.LegacyFieldTransformer; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.commons.beanutils.PropertyUtils; -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.beans.WebAsset; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; @@ -25,6 +11,19 @@ import com.dotmarketing.portlets.structure.model.Structure; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; +import java.io.File; +import java.io.Serializable; +import java.lang.reflect.InvocationTargetException; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class Contentlet extends WebAsset implements Serializable { @@ -1725,7 +1724,7 @@ public Object getFieldValueByContentletName(String fieldName){ Object value = null; try{ - value = com.dotcms.repackage.org.apache.commons.beanutils.PropertyUtils.getProperty(this, fieldName); + value = org.apache.commons.beanutils.PropertyUtils.getProperty(this, fieldName); }catch(Exception e){ Logger .error(this, diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletAPIInterceptor.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletAPIInterceptor.java index 8e13ee0138ad..422e3c81bff8 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletAPIInterceptor.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletAPIInterceptor.java @@ -17,6 +17,7 @@ import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.categories.model.Category; +import com.dotmarketing.portlets.contentlet.business.hook.HTMLPageHook; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.contentlet.model.ContentletDependencies; import com.dotmarketing.portlets.folders.model.Folder; @@ -58,6 +59,11 @@ public class ContentletAPIInterceptor implements ContentletAPI, Interceptor { */ public ContentletAPIInterceptor() { conAPI = APILocator.getContentletAPIImpl(); + try { + this.addPostHook(new HTMLPageHook()); + } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { + Logger.warn(this.getClass(), e.getMessage(), e); + } } @Override diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCache.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCache.java index 4273dd8e168b..393bf77add26 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCache.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCache.java @@ -9,9 +9,9 @@ public abstract class ContentletCache implements Cachable { public static final String EMPTY_METADATA = "**~~||%%EMPTY_METADATA%%||~~**"; public static final String CACHED_METADATA = "**~~||%%CACHED_METADATA%%||~~**"; - public abstract com.dotmarketing.portlets.contentlet.model.Contentlet add(String key,com.dotmarketing.portlets.contentlet.model.Contentlet content); - - public abstract com.dotmarketing.portlets.contentlet.model.Contentlet get(String key); + public abstract Contentlet add(String inode,Contentlet content); + public abstract Contentlet add(Contentlet content); + public abstract Contentlet get(String inode); public abstract void clearCache(); @@ -26,4 +26,7 @@ public abstract class ContentletCache implements Cachable { public abstract String getMetadata(String key); public abstract void addMetadata(String key, String metadata); + + + public abstract void remove(Contentlet contentlet); } \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCacheImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCacheImpl.java index 2232829d4239..f728eb5a440a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCacheImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/ContentletCacheImpl.java @@ -1,17 +1,25 @@ package com.dotmarketing.portlets.contentlet.business; import com.dotcms.content.elasticsearch.business.ESContentFactoryImpl.TranslatedQuery; +import com.dotcms.contenttype.model.type.BaseContentType; +import com.dotcms.contenttype.model.type.PageContentType; +import com.dotcms.rendering.velocity.services.PageLoader; +import com.dotcms.rendering.velocity.services.SiteLoader; import com.dotcms.services.VanityUrlServices; import com.dotmarketing.beans.Host; +import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotCacheAdministrator; import com.dotmarketing.business.DotCacheException; +import com.dotmarketing.business.DotStateException; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; +import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.fileassets.business.FileAssetAPI; import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.Structure; +import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; @@ -127,7 +135,24 @@ public void clearCache() { cache.flushGroup(group); } } - + public void remove(final com.dotmarketing.portlets.contentlet.model.Contentlet contentlet){ + remove(contentlet.getInode()); + + if(contentlet.getContentType() instanceof PageContentType ) { + new PageLoader().invalidate(contentlet); + + + } + if ("host".equalsIgnoreCase(contentlet.getContentType().variable())) { + new SiteLoader().invalidate(new Host(contentlet)); + } + + + + + + + } /* (non-Javadoc) * @see com.dotmarketing.business.PermissionCache#remove(java.lang.String) */ @@ -167,4 +192,9 @@ public String[] getGroups() { public String getPrimaryGroup() { return primaryGroup; } + + @Override + public Contentlet add(Contentlet content) { + return add(content.getInode(), content); + } } \ No newline at end of file diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/HostAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/HostAPIImpl.java index 0de7ce741fe4..cb2eae3e8857 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/HostAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/HostAPIImpl.java @@ -6,13 +6,11 @@ import com.dotcms.api.system.event.Visibility; import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; -import com.dotcms.contenttype.model.field.DataTypes; import com.dotcms.contenttype.model.field.Field; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.transform.contenttype.StructureTransformer; import com.dotcms.notifications.bean.NotificationLevel; import com.dotcms.notifications.bean.NotificationType; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.I18NMessage; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Inode; @@ -23,7 +21,6 @@ import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.business.PermissionLevel; import com.dotmarketing.business.Treeable; -import com.dotmarketing.business.query.GenericQueryFactory.Query; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.db.HibernateUtil; @@ -44,13 +41,13 @@ import com.dotmarketing.util.PaginatedArrayList; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; -import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import java.util.stream.Collectors; +import org.apache.commons.lang.StringUtils; /** * @author jtesser diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/hook/HTMLPageHook.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/hook/HTMLPageHook.java new file mode 100644 index 000000000000..dbdc2502aba9 --- /dev/null +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/hook/HTMLPageHook.java @@ -0,0 +1,74 @@ +package com.dotmarketing.portlets.contentlet.business.hook; + +import com.dotcms.contenttype.model.type.PageContentType; + +import com.dotmarketing.beans.VersionInfo; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.DotStateException; +import com.dotmarketing.exception.DotDataException; +import com.dotmarketing.exception.DotSecurityException; +import com.dotmarketing.portlets.contentlet.business.ContentletAPIPostHookAbstractImp; +import com.dotmarketing.portlets.contentlet.model.Contentlet; +import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; +import com.dotmarketing.portlets.templates.model.Template; +import com.dotmarketing.util.Logger; + +import java.util.List; + +import com.liferay.portal.model.User; + +public class HTMLPageHook extends ContentletAPIPostHookAbstractImp { + + @Override + public void publish(final Contentlet contentlet, final User user, final boolean respectFrontendRoles) { + + super.publish(contentlet, user, respectFrontendRoles); + + if (contentlet !=null && contentlet.getContentType() instanceof PageContentType) { + IHTMLPage page = APILocator.getHTMLPageAssetAPI().fromContentlet(contentlet); + publishTemplateLayout(page, user, respectFrontendRoles); + } + } + + @Override + public void publish(final List contentlets, final User user, final boolean respectFrontendRoles) { + + super.publish(contentlets, user, respectFrontendRoles); + + if(contentlets !=null ) { + for (Contentlet contentlet : contentlets) { + if (contentlet.getContentType() instanceof PageContentType) { + IHTMLPage page = APILocator.getHTMLPageAssetAPI().fromContentlet(contentlet); + publishTemplateLayout(page, user, respectFrontendRoles); + } + } + } + } + + private void publishTemplateLayout(final IHTMLPage page, final User user, final boolean respectFrontendRoles) { + + try { + final Template template = APILocator.getTemplateAPI().findWorkingTemplate(page.getTemplateId(), user, respectFrontendRoles); + if(template==null) { + return; + } + if (!APILocator.getVersionableAPI().isLive(template)) { + APILocator.getVersionableAPI().setLive(template); + } + + + } catch (DotDataException e) { + throw new DotStateException( + "unable to publish page layout with the page: " + page.getIdentifier() + " " + page.getTitle() + ": " + e, e); + } catch (DotSecurityException ex) { + Logger.warn(this.getClass(), "permission error, unable to publish page layout with the page: " + page.getIdentifier() + + " : " + page.getTitle() + " :" + ex.getMessage(), ex); + } + + + } + + +} + + diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/web/ContentletWebAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/web/ContentletWebAPIImpl.java index a49468a02737..66f1ab061def 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/web/ContentletWebAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/business/web/ContentletWebAPIImpl.java @@ -1,25 +1,10 @@ package com.dotmarketing.portlets.contentlet.business.web; -import java.text.DateFormat; -import java.text.MessageFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; - import com.dotcms.api.system.event.ContentletSystemEventUtil; import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.transform.contenttype.StructureTransformer; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.collections.CollectionUtils; import com.dotcms.repackage.org.directwebremoting.WebContextFactory; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -61,7 +46,6 @@ import com.dotmarketing.portlets.folders.model.Folder; import com.dotmarketing.portlets.htmlpageasset.model.IHTMLPage; import com.dotmarketing.portlets.structure.business.FieldAPI; - import com.dotmarketing.portlets.structure.factories.StructureFactory; import com.dotmarketing.portlets.structure.model.ContentletRelationships; import com.dotmarketing.portlets.structure.model.ContentletRelationships.ContentletRelationshipRecords; @@ -77,6 +61,19 @@ import com.liferay.portal.model.Company; import com.liferay.portal.model.User; import com.liferay.util.servlet.SessionMessages; +import java.text.DateFormat; +import java.text.MessageFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.collections.CollectionUtils; /* * //http://jira.dotmarketing.net/browse/DOTCMS-2273 * To save content via ajax. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/model/Contentlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/model/Contentlet.java index 0f0f45be2b67..3e7f40af23e8 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/model/Contentlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/model/Contentlet.java @@ -3,9 +3,18 @@ import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.beans.Host; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.CacheLocator; +import com.dotmarketing.business.DotStateException; +import com.dotmarketing.business.PermissionAPI; +import com.dotmarketing.business.PermissionSummary; +import com.dotmarketing.business.Permissionable; +import com.dotmarketing.business.RelatedPermissionableGroup; +import com.dotmarketing.business.Ruleable; +import com.dotmarketing.business.Treeable; +import com.dotmarketing.business.UserAPI; +import com.dotmarketing.business.Versionable; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; @@ -29,8 +38,14 @@ import java.io.InputStream; import java.io.Serializable; import java.nio.file.Files; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; +import org.apache.commons.lang.builder.ToStringBuilder; /** * Represents a content unit in the system. Ideally, every single domain object @@ -1067,8 +1082,13 @@ public boolean hasLiveVersion() throws DotStateException, DotDataException { * @throws DotDataException * @throws DotSecurityException */ - public ContentType getContentType() throws DotDataException, DotSecurityException{ + public ContentType getContentType() { + try { return APILocator.getContentTypeAPI(APILocator.systemUser()).find(getContentTypeId()); + } + catch(DotDataException | DotSecurityException e) { + throw new DotStateException(e); + } } /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ContentletForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ContentletForm.java index 5b52d925f938..25dd9025eebf 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ContentletForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ContentletForm.java @@ -1,21 +1,6 @@ package com.dotmarketing.portlets.contentlet.struts; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.beanutils.PropertyUtils; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; @@ -29,6 +14,19 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.util.Constants; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.beanutils.PropertyUtils; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; public class ContentletForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ImportContentletsForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ImportContentletsForm.java index bca4149b8f85..4b2847c58727 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ImportContentletsForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/struts/ImportContentletsForm.java @@ -2,10 +2,9 @@ import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; public class ImportContentletsForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/action/ViewDashboardAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/action/ViewDashboardAction.java index 698e154ea6cd..7d26491b9eff 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/action/ViewDashboardAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/action/ViewDashboardAction.java @@ -1,33 +1,15 @@ package com.dotmarketing.portlets.dashboard.action; -import java.io.PrintWriter; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.factories.PreviewFactory; import com.dotmarketing.portal.struts.DotPortletAction; -import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.dashboard.business.DashboardAPI; import com.dotmarketing.portlets.dashboard.model.DashboardSummary404; @@ -41,7 +23,20 @@ import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionResponseImpl; import com.liferay.portlet.RenderRequestImpl; -import com.liferay.portlet.RenderResponseImpl; +import java.io.PrintWriter; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewDashboardAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/DashboardSummary.java b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/DashboardSummary.java index 8767483b72f5..a12ef2993b77 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/DashboardSummary.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/DashboardSummary.java @@ -2,10 +2,7 @@ import java.io.Serializable; import java.util.Date; - -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; - -import com.dotmarketing.beans.Host; +import org.apache.commons.lang.builder.HashCodeBuilder; public class DashboardSummary implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/HostWrapper.java b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/HostWrapper.java index b2fb67c0f725..77e774414e94 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/HostWrapper.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/dashboard/model/HostWrapper.java @@ -1,16 +1,15 @@ package com.dotmarketing.portlets.dashboard.model; -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.contentlet.business.Contentlet; +import java.lang.reflect.InvocationTargetException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.beanutils.BeanUtils; diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/director/action/DirectorAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/director/action/DirectorAction.java index 9b146f598b8f..08db085dfa32 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/director/action/DirectorAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/director/action/DirectorAction.java @@ -26,20 +26,10 @@ import static com.dotmarketing.business.PermissionAPI.PERMISSION_READ; import static com.dotmarketing.business.PermissionAPI.PERMISSION_WRITE; -import java.net.URLDecoder; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Iterator; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.MultiTree; import com.dotmarketing.beans.WebAsset; @@ -75,6 +65,14 @@ import com.liferay.portal.model.User; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.ParamUtil; +import java.net.URLDecoder; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Iterator; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; public class DirectorAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/fileUpload/model/FileUpload.java b/dotCMS/src/main/java/com/dotmarketing/portlets/fileUpload/model/FileUpload.java index 976398019229..efd613f44a88 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/fileUpload/model/FileUpload.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/fileUpload/model/FileUpload.java @@ -1,13 +1,11 @@ package com.dotmarketing.portlets.fileUpload.model; -import java.io.Serializable; - -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.beans.Inode; import com.dotmarketing.util.InodeUtils; +import java.io.Serializable; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class FileUpload extends Inode implements Serializable { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/fileassets/business/FileAssetAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/fileassets/business/FileAssetAPIImpl.java index 5e210281904f..f107bdde34c6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/fileassets/business/FileAssetAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/fileassets/business/FileAssetAPIImpl.java @@ -7,10 +7,8 @@ import com.dotcms.api.system.event.verifier.ExcludeOwnerVerifierBean; import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; -import com.dotcms.repackage.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import com.dotcms.repackage.org.apache.commons.io.FileUtils; import com.dotcms.repackage.org.apache.commons.io.IOUtils; -import com.dotcms.repackage.org.apache.tika.Tika; import com.dotcms.tika.TikaUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -47,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.zip.GZIPInputStream; +import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; /** * This class is a bridge impl that will support the older @@ -582,7 +581,7 @@ public String getContentMetadataAsString(File metadataFile) throws Exception { //Subtracting 1024 Bytes (buffer size) metadataLimitInBytes = metadataLimitInBytes - 1024; - String type=new Tika().detect(metadataFile); + String type = new TikaUtils().detect(metadataFile); InputStream input= Files.newInputStream(metadataFile.toPath()); diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/files/action/UploadMultipleFilesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/files/action/UploadMultipleFilesAction.java index 5afe16f9ab62..9d7ac3f6ed92 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/files/action/UploadMultipleFilesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/files/action/UploadMultipleFilesAction.java @@ -1,10 +1,10 @@ package com.dotmarketing.portlets.files.action; +import static com.dotmarketing.business.PermissionAPI.PERMISSION_CAN_ADD_CHILDREN; + import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotcms.util.exceptions.DuplicateFileException; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; @@ -35,17 +35,15 @@ import com.liferay.util.ParamUtil; import com.liferay.util.servlet.SessionMessages; import com.liferay.util.servlet.UploadPortletRequest; - import java.io.IOException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; import java.util.UUID; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; - -import static com.dotmarketing.business.PermissionAPI.PERMISSION_CAN_ADD_CHILDREN; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * @author Maria diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/files/struts/FileForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/files/struts/FileForm.java index 14ddef0081d3..8a1962d8e98b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/files/struts/FileForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/files/struts/FileForm.java @@ -1,24 +1,11 @@ package com.dotmarketing.portlets.files.struts; -import java.text.ParseException; -import java.text.SimpleDateFormat; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.exception.DotSecurityException; -import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.portlets.folders.model.Folder; import com.dotmarketing.util.InodeUtils; @@ -26,6 +13,15 @@ import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.validator.ValidatorForm; /** @author Hibernate CodeGenerator */ public class FileForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/EditFolderAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/EditFolderAction.java index 3911dc640fbc..56f6d902094c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/EditFolderAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/EditFolderAction.java @@ -2,19 +2,10 @@ import static com.dotmarketing.business.PermissionAPI.PERMISSION_READ; -import java.util.List; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -24,7 +15,6 @@ import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.business.Treeable; import com.dotmarketing.business.Versionable; - import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; @@ -49,6 +39,13 @@ import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.util.List; +import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * This Action class provides utility methods to interact with {@link Folder} diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/OrderMenuAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/OrderMenuAction.java index b16c136ce427..bb96d3792e86 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/OrderMenuAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/OrderMenuAction.java @@ -1,24 +1,17 @@ package com.dotmarketing.portlets.folders.action; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; import com.dotmarketing.beans.WebAsset; -import com.dotmarketing.business.*; +import com.dotmarketing.business.APILocator; +import com.dotmarketing.business.CacheLocator; +import com.dotmarketing.business.PermissionAPI; +import com.dotmarketing.business.Permissionable; +import com.dotmarketing.business.Treeable; import com.dotmarketing.business.web.WebAPILocator; import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; @@ -43,6 +36,16 @@ import com.liferay.portal.struts.ActionException; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * @author Maria */ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/PublishFolderAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/PublishFolderAction.java index 343568aa2721..4604a6aefe35 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/PublishFolderAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/action/PublishFolderAction.java @@ -1,15 +1,8 @@ package com.dotmarketing.portlets.folders.action; -import java.net.URLDecoder; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.exception.WebAssetException; import com.dotmarketing.factories.PublishFactory; import com.dotmarketing.portal.struts.DotPortletAction; @@ -21,6 +14,10 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * @author Maria diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderAPIImpl.java index d1f65510458c..dae3c71cf7ef 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderAPIImpl.java @@ -1,17 +1,17 @@ package com.dotmarketing.portlets.folders.business; -import com.dotcms.contenttype.business.ContentTypeAPI; -import java.io.IOException; -import java.io.Serializable; -import java.util.*; -import java.util.stream.Collectors; +import static com.dotmarketing.business.APILocator.getPermissionAPI; -import com.dotcms.api.system.event.*; +import com.dotcms.api.system.event.Payload; +import com.dotcms.api.system.event.SystemEventType; +import com.dotcms.api.system.event.SystemEventsAPI; +import com.dotcms.api.system.event.Visibility; +import com.dotcms.api.system.event.VisibilityRoles; import com.dotcms.api.system.event.verifier.ExcludeOwnerVerifierBean; import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; +import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.publisher.business.PublisherAPI; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -45,8 +45,19 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - -import static com.dotmarketing.business.APILocator.getPermissionAPI; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.TimeZone; +import java.util.stream.Collectors; +import org.apache.commons.lang.StringUtils; public class FolderAPIImpl implements FolderAPI { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderFactoryImpl.java index 61a74f87251f..2854e5913312 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/business/FolderFactoryImpl.java @@ -1,10 +1,6 @@ package com.dotmarketing.portlets.folders.business; // 1212 -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.oro.text.regex.Pattern; -import com.dotcms.repackage.org.apache.oro.text.regex.Perl5Compiler; -import com.dotcms.repackage.org.apache.oro.text.regex.Perl5Matcher; import com.dotcms.util.transform.DBTransformer; import com.dotcms.util.transform.TransformerLocator; import com.dotmarketing.beans.Host; @@ -43,7 +39,6 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; - import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -59,6 +54,10 @@ import java.util.Stack; import java.util.StringTokenizer; import java.util.TimeZone; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.oro.text.regex.Pattern; +import org.apache.oro.text.regex.Perl5Compiler; +import org.apache.oro.text.regex.Perl5Matcher; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/model/Folder.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/model/Folder.java index 1876833448af..219f33a12052 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/model/Folder.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/model/Folder.java @@ -1,14 +1,6 @@ package com.dotmarketing.portlets.folders.model; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; - import com.dotcms.api.tree.Parentable; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotcms.api.tree.TreeableAPI; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; import com.dotmarketing.business.APILocator; @@ -27,6 +19,12 @@ import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.model.User; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class Folder extends Inode implements Serializable, Permissionable, Treeable, Ruleable, Parentable { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/FolderForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/FolderForm.java index 073f083e9d0a..ec6a6e109dde 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/FolderForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/FolderForm.java @@ -1,14 +1,12 @@ package com.dotmarketing.portlets.folders.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.util.InodeUtils; import com.liferay.portal.util.Constants; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; public class FolderForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/HostForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/HostForm.java index 5834a882f3c1..8ff4d7537148 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/HostForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/folders/struts/HostForm.java @@ -1,8 +1,7 @@ package com.dotmarketing.portlets.folders.struts; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.util.InodeUtils; +import org.apache.struts.validator.ValidatorForm; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/form/action/ViewFormHandlerAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/form/action/ViewFormHandlerAction.java index 43d754b1dff9..e106fa0e7e58 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/form/action/ViewFormHandlerAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/form/action/ViewFormHandlerAction.java @@ -1,20 +1,9 @@ package com.dotmarketing.portlets.form.action; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.common.util.SQLUtil; import com.dotmarketing.portal.struts.DotPortletAction; @@ -23,6 +12,14 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * Get the existing forms structures diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/hostadmin/action/ViewHostsAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/hostadmin/action/ViewHostsAction.java index 3ba64520422b..b59caff8a397 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/hostadmin/action/ViewHostsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/hostadmin/action/ViewHostsAction.java @@ -3,17 +3,14 @@ import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.Interceptor; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.contentlet.business.ContentletAPI; import com.dotmarketing.portlets.contentlet.business.HostAPI; import com.dotmarketing.util.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/hostvariable/bussiness/HostVariableFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/hostvariable/bussiness/HostVariableFactoryImpl.java index fde93d06e114..cc39c3e45eda 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/hostvariable/bussiness/HostVariableFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/hostvariable/bussiness/HostVariableFactoryImpl.java @@ -1,18 +1,15 @@ package com.dotmarketing.portlets.hostvariable.bussiness; -import java.util.ArrayList; -import java.util.List; - -import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; - -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; - import com.dotmarketing.business.CacheLocator; import com.dotmarketing.db.HibernateUtil; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotHibernateException; import com.dotmarketing.portlets.hostvariable.model.HostVariable; import com.dotmarketing.util.InodeUtils; +import java.util.ArrayList; +import java.util.List; +import com.dotcms.repackage.net.sf.hibernate.ObjectNotFoundException; +import org.apache.commons.beanutils.BeanUtils; public class HostVariableFactoryImpl extends HostVariableFactory{ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPI.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPI.java index 5bd7c1fa1963..dc6f29424087 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPI.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPI.java @@ -288,4 +288,6 @@ public void setContainersRemap(List containersReMap) { } + IHTMLPage findPage(String inode, User user, boolean respectFrontendRoles) throws DotDataException, DotSecurityException; + } diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPIImpl.java index a708427e9f98..9107e4f9b5e6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageasset/business/HTMLPageAssetAPIImpl.java @@ -158,8 +158,8 @@ public void createHTMLPageAssetBaseFields(Structure structure) throws DotDataExc } @Override - public Template getTemplate(IHTMLPage page, boolean preview) throws DotDataException, DotSecurityException { - if (preview) + public Template getTemplate(IHTMLPage page, boolean working) throws DotDataException, DotSecurityException { + if (working) return APILocator.getTemplateAPI().findWorkingTemplate(page.getTemplateId(), userAPI.getSystemUser(), false); else return APILocator.getTemplateAPI().findLiveTemplate(page.getTemplateId(), userAPI.getSystemUser(), false); @@ -370,7 +370,20 @@ public Folder getParentFolder(IHTMLPage htmlPage) throws DotDataException, DotSe } } - + /** + * @see HTMLPageAssetAPI#findPagesByTemplate(Template, User, boolean) + */ + @Override + public IHTMLPage findPage(final String inode, final User user, final boolean respectFrontendRoles) + throws DotDataException, DotSecurityException { + + Contentlet cpage = contentletAPI.find(inode, user, respectFrontendRoles); + if(cpage!=null) { + return this.fromContentlet(cpage); + } + return null; + + } @Override diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PreviewHTMLPageAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PreviewHTMLPageAction.java index 6667cfa95aa2..4715f7df9312 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PreviewHTMLPageAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PreviewHTMLPageAction.java @@ -1,13 +1,8 @@ package com.dotmarketing.portlets.htmlpages.action; -import javax.servlet.http.HttpServletRequest; - - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.DotStateException; @@ -21,13 +16,15 @@ import com.dotmarketing.util.HostUtil; import com.dotmarketing.util.Logger; import com.dotmarketing.util.PageMode; - import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; import com.liferay.portal.struts.ActionException; import com.liferay.portlet.ActionRequestImpl; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PublishHTMLPagesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PublishHTMLPagesAction.java index 5bb7d52a6a64..f1ab87bfadc4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PublishHTMLPagesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpages/action/PublishHTMLPagesAction.java @@ -3,22 +3,24 @@ import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.exception.WebAssetException; -import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.factories.PublishFactory; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.contentlet.business.ContentletAPI; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; -import com.dotmarketing.util.*; +import com.dotmarketing.util.ActivityLogger; +import com.dotmarketing.util.HostUtil; +import com.dotmarketing.util.InodeUtils; +import com.dotmarketing.util.Logger; +import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; - import java.net.URLDecoder; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * This Struts action provides users the ability to publish HTML Pages in diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/HTMLPageReportAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/HTMLPageReportAction.java index ba529b08a2c2..0299b3a26895 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/HTMLPageReportAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/HTMLPageReportAction.java @@ -1,27 +1,13 @@ package com.dotmarketing.portlets.htmlpageviews.action; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.Map; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.IdentifierFactory; import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.contentlet.business.HostAPI; @@ -33,6 +19,16 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionResponseImpl; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.Map; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/ViewHTMLPageViewsAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/ViewHTMLPageViewsAction.java index 29822e85b040..b37c1cdfd40f 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/ViewHTMLPageViewsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/htmlpageviews/action/ViewHTMLPageViewsAction.java @@ -1,14 +1,9 @@ package com.dotmarketing.portlets.htmlpageviews.action; -import javax.servlet.jsp.PageContext; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; @@ -20,6 +15,10 @@ import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageAction.java index e255c51a76ca..3bf4368bee23 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageAction.java @@ -1,15 +1,8 @@ package com.dotmarketing.portlets.languagesmanager.action; -import java.sql.SQLException; - -import javax.servlet.http.HttpServletRequest; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; @@ -23,6 +16,11 @@ import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.StringPool; import com.liferay.util.servlet.SessionMessages; +import java.sql.SQLException; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * This Struts action will handle all the requests related to adding, updating or deleting a system diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageKeysAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageKeysAction.java index d88e0fee28bc..8fedb1352b68 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageKeysAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/EditLanguageKeysAction.java @@ -6,21 +6,9 @@ */ package com.dotmarketing.portlets.languagesmanager.action; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Pattern; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; @@ -30,6 +18,15 @@ import com.liferay.portal.struts.MultiMessageResources; import com.liferay.portal.util.Constants; import com.liferay.util.servlet.SessionMessages; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/ViewLanguageAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/ViewLanguageAction.java index eef06fdf31c3..06a715b6003d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/ViewLanguageAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/action/ViewLanguageAction.java @@ -4,24 +4,21 @@ */ package com.dotmarketing.portlets.languagesmanager.action; -import java.util.List; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.business.APILocator; import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI; import com.dotmarketing.util.Logger; import com.dotmarketing.util.WebKeys; import com.liferay.portal.struts.PortletAction; import com.liferay.portal.util.Constants; +import java.util.List; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * @author alex diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageAPIImpl.java index e566c0e5a770..0b22acf95f5d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageAPIImpl.java @@ -3,7 +3,6 @@ import com.dotcms.business.CloseDBIfOpened; import com.dotcms.business.WrapInTransaction; import com.dotcms.languagevariable.business.LanguageVariableAPI; -import com.dotcms.repackage.org.apache.commons.lang.math.NumberUtils; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.FactoryLocator; @@ -16,10 +15,15 @@ import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; import com.liferay.util.StringPool; -import org.apache.velocity.tools.view.context.ViewContext; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; -import java.util.*; +import org.apache.commons.lang.math.NumberUtils; +import org.apache.velocity.tools.view.context.ViewContext; /** * Implementation class for the {@link LanguageAPI}. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageFactoryImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageFactoryImpl.java index 2272472a91cc..1907e26279e0 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageFactoryImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/business/LanguageFactoryImpl.java @@ -3,7 +3,6 @@ import static com.dotcms.util.CloseUtils.closeQuietly; import static com.dotcms.util.ConversionUtils.toLong; -import com.dotcms.repackage.org.apache.struts.Globals; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.DotCacheException; import com.dotmarketing.common.db.DotConnect; @@ -20,10 +19,15 @@ import com.google.common.annotations.VisibleForTesting; import com.liferay.portal.struts.MultiMessageResources; import com.liferay.util.FileUtil; - -import java.io.*; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.OutputStream; +import java.io.PrintWriter; import java.nio.channels.Channels; -import java.nio.channels.FileChannel; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import java.nio.file.Files; @@ -38,6 +42,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.struts.Globals; /** * Implementation class for the {@link LanguageFactory}. * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/model/Language.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/model/Language.java index 220563ebd454..e0fd9d02293d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/model/Language.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/model/Language.java @@ -1,9 +1,8 @@ package com.dotmarketing.portlets.languagesmanager.model; import java.io.Serializable; - -import com.dotcms.repackage.org.apache.commons.lang.builder.EqualsBuilder; -import com.dotcms.repackage.org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/struts/LanguageForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/struts/LanguageForm.java index 96ba026c7a65..fdc0ad7b39d3 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/struts/LanguageForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/languagesmanager/struts/LanguageForm.java @@ -4,13 +4,11 @@ */ package com.dotmarketing.portlets.languagesmanager.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.liferay.portal.util.Constants; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; /** * @author alex diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/EditLinkAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/EditLinkAction.java index b6ac214a2fa0..3ab54785c485 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/EditLinkAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/EditLinkAction.java @@ -5,10 +5,6 @@ import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -44,18 +40,18 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.Validator; import com.dotmarketing.util.WebKeys; - +import com.liferay.portal.model.User; +import com.liferay.portal.util.Constants; +import com.liferay.portlet.ActionRequestImpl; +import com.liferay.util.servlet.SessionMessages; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Iterator; import java.util.List; - import javax.servlet.http.HttpServletRequest; - -import com.liferay.portal.model.User; -import com.liferay.portal.util.Constants; -import com.liferay.portlet.ActionRequestImpl; -import com.liferay.util.servlet.SessionMessages; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * This Struts action provides users the ability to interact with Menu Links in diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/PublishLinksAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/PublishLinksAction.java index 5d31c0a58ad5..261c55bbbe61 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/PublishLinksAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/PublishLinksAction.java @@ -1,14 +1,8 @@ package com.dotmarketing.portlets.links.action; -import java.net.URLDecoder; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.exception.WebAssetException; import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.factories.PublishFactory; @@ -19,6 +13,9 @@ import com.liferay.portal.model.User; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/ViewLinksAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/ViewLinksAction.java index 3728a96b78ca..f658f6e6de50 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/ViewLinksAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/links/action/ViewLinksAction.java @@ -4,18 +4,16 @@ import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.portal.struts.DotPortletAction; import com.dotmarketing.portlets.links.model.Link; import com.dotmarketing.util.Logger; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * View Source @@ -27,7 +25,7 @@ public class ViewLinksAction extends DotPortletAction { /* - * @see com.liferay.portal.struts.PortletAction#render(com.dotcms.repackage.org.apache.struts.action.ActionMapping, com.dotcms.repackage.org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.RenderRequest, com.dotcms.repackage.javax.portlet.RenderResponse) + * @see com.liferay.portal.struts.PortletAction#render(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.RenderRequest, com.dotcms.repackage.javax.portlet.RenderResponse) */ public ActionForward render( ActionMapping mapping, ActionForm form, PortletConfig config, diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/links/struts/LinkForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/links/struts/LinkForm.java index 881a0df1fed9..f6629c8e5495 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/links/struts/LinkForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/links/struts/LinkForm.java @@ -1,15 +1,13 @@ package com.dotmarketing.portlets.links.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.portlets.links.model.Link.LinkType; import com.liferay.portal.util.Constants; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; /** @author Hibernate CodeGenerator */ public class LinkForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/EditReportAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/EditReportAction.java index a7bc0629debd..ce78fc144891 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/EditReportAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/EditReportAction.java @@ -6,22 +6,9 @@ package com.dotmarketing.portlets.report.action; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.nio.ByteBuffer; -import java.nio.channels.FileChannel; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotcms.util.SecurityUtils; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.db.HibernateUtil; @@ -64,6 +51,8 @@ import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * Class to manage actions related to the cms jasper reports diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/RunReportAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/RunReportAction.java index 903f4b70a5f1..4a216887af18 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/RunReportAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/RunReportAction.java @@ -22,36 +22,10 @@ package com.dotmarketing.portlets.report.action; -import java.io.File; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import com.dotcms.repackage.bsh.EvalError; import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import net.sf.jasperreports.engine.JRException; -import net.sf.jasperreports.engine.JRExporterParameter; -import net.sf.jasperreports.engine.JasperFillManager; -import net.sf.jasperreports.engine.JasperPrint; -import net.sf.jasperreports.engine.JasperReport; -import net.sf.jasperreports.engine.export.JRHtmlExporter; -import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; -import net.sf.jasperreports.engine.util.JRLoader; -import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet; -import net.sf.jasperreports.j2ee.servlets.ImageServlet; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - -import com.dotcms.repackage.bsh.EvalError; - import com.dotmarketing.business.Role; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.exception.DotHibernateException; @@ -71,6 +45,27 @@ import com.liferay.portlet.ActionRequestImpl; import com.liferay.portlet.ActionResponseImpl; import com.liferay.util.servlet.SessionMessages; +import java.io.File; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JRExporterParameter; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.export.JRHtmlExporter; +import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; +import net.sf.jasperreports.engine.util.JRLoader; +import net.sf.jasperreports.j2ee.servlets.BaseHttpServlet; +import net.sf.jasperreports.j2ee.servlets.ImageServlet; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/ViewReportsAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/ViewReportsAction.java index 127136e5fd7f..4c5312f0f3eb 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/ViewReportsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/report/action/ViewReportsAction.java @@ -22,23 +22,12 @@ package com.dotmarketing.portlets.report.action; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.PageContext; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Permission; import com.dotmarketing.beans.PermissionAsset; import com.dotmarketing.business.APILocator; @@ -60,6 +49,14 @@ import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.FileUtil; import com.liferay.util.servlet.SessionMessages; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * @@ -77,7 +74,7 @@ public class ViewReportsAction extends DotPortletAction { /* * Render View Report Portlet - * @see com.liferay.portal.struts.PortletAction#render(com.dotcms.repackage.org.apache.struts.action.ActionMapping, com.dotcms.repackage.org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.RenderRequest, com.dotcms.repackage.javax.portlet.RenderResponse) + * @see com.liferay.portal.struts.PortletAction#render(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.RenderRequest, com.dotcms.repackage.javax.portlet.RenderResponse) */ public ActionForward render( ActionMapping mapping, ActionForm form, PortletConfig config, @@ -169,7 +166,7 @@ public ActionForward render( /* * Process View Portlet requested actions - * @see com.liferay.portal.struts.PortletAction#processAction(com.dotcms.repackage.org.apache.struts.action.ActionMapping, com.dotcms.repackage.org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.ActionRequest, com.dotcms.repackage.javax.portlet.ActionResponse) + * @see com.liferay.portal.struts.PortletAction#processAction(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, com.dotcms.repackage.javax.portlet.PortletConfig, com.dotcms.repackage.javax.portlet.ActionRequest, com.dotcms.repackage.javax.portlet.ActionResponse) */ @Override public void processAction(ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req, ActionResponse res)throws DotHibernateException { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/report/struts/ReportForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/report/struts/ReportForm.java index 58160ef202bd..15c66414d3b4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/report/struts/ReportForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/report/struts/ReportForm.java @@ -1,16 +1,14 @@ package com.dotmarketing.portlets.report.struts; -import java.util.ArrayList; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.util.Constants; import com.dotmarketing.util.UtilMethods; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; +import java.util.ArrayList; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.validator.ValidatorForm; /** @author Jason Tesser */ public class ReportForm extends ValidatorForm { @@ -152,9 +150,9 @@ public void setWebFormReport(boolean webFormReport) { /* * Validator for the Report Form - * @see com.dotcms.repackage.org.apache.struts.validator.ValidatorForm#validate(com.dotcms.repackage.org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest) + * @see org.apache.struts.validator.ValidatorForm#validate(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest) */ - public ActionErrors validate(com.dotcms.repackage.org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request,User user)throws Exception { + public ActionErrors validate(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request,User user)throws Exception { ActionErrors errors = new ActionErrors(); if (!UtilMethods.isSet(reportName)) { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/roleadmin/action/ViewRolesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/roleadmin/action/ViewRolesAction.java index a631d5d61957..401820aa3e6b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/roleadmin/action/ViewRolesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/roleadmin/action/ViewRolesAction.java @@ -3,12 +3,10 @@ import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.liferay.portal.struts.PortletAction; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewRolesAction extends PortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/PersonaActionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/PersonaActionlet.java index 68327577ec2c..8c0bb5f97a85 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/PersonaActionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/PersonaActionlet.java @@ -2,7 +2,6 @@ import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.visitor.business.VisitorAPI; import com.dotcms.visitor.domain.Visitor; import com.dotmarketing.business.APILocator; @@ -20,6 +19,7 @@ import java.util.Optional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; /** * Actionlet to add Key/Value to the Request. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetRequestAttributeActionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetRequestAttributeActionlet.java index c556dd70a443..065a733835cb 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetRequestAttributeActionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetRequestAttributeActionlet.java @@ -1,7 +1,6 @@ package com.dotmarketing.portlets.rules.actionlet; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.RuleComponentInstance; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.parameter.ParameterDefinition; @@ -10,6 +9,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; /** * Actionlet to add Key/Value to the Request. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetResponseHeaderActionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetResponseHeaderActionlet.java index 3ea4e392fd6c..94814cd9ac1c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetResponseHeaderActionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetResponseHeaderActionlet.java @@ -1,7 +1,6 @@ package com.dotmarketing.portlets.rules.actionlet; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.RuleComponentInstance; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.parameter.ParameterDefinition; @@ -10,6 +9,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; /** * Actionlet to add Key/Value to the Response header. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetSessionAttributeActionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetSessionAttributeActionlet.java index 26277607f8c7..ae43245b7b6a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetSessionAttributeActionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/actionlet/SetSessionAttributeActionlet.java @@ -1,7 +1,6 @@ package com.dotmarketing.portlets.rules.actionlet; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.RuleComponentInstance; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.parameter.ParameterDefinition; @@ -10,6 +9,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; /** * Actionlet to add Key/Value to the Session. diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/PersonaConditionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/PersonaConditionlet.java index c38618d0a005..aece1206d24a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/PersonaConditionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/PersonaConditionlet.java @@ -1,45 +1,33 @@ package com.dotmarketing.portlets.rules.conditionlet; +import static com.dotcms.repackage.com.google.common.base.Preconditions.checkState; +import static com.dotmarketing.portlets.rules.parameter.comparison.Comparison.IS; +import static com.dotmarketing.portlets.rules.parameter.comparison.Comparison.IS_NOT; + import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.com.maxmind.geoip2.exception.GeoIp2Exception; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; -import com.dotcms.util.GeoIp2CityDbUtil; -import com.dotcms.util.HttpRequestDataUtil; import com.dotcms.visitor.business.VisitorAPI; import com.dotcms.visitor.domain.Visitor; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.UserAPI; -import com.dotmarketing.exception.DotDataException; import com.dotmarketing.portlets.personas.business.PersonaAPI; import com.dotmarketing.portlets.personas.model.Persona; import com.dotmarketing.portlets.rules.RuleComponentInstance; import com.dotmarketing.portlets.rules.exception.ComparisonNotPresentException; import com.dotmarketing.portlets.rules.exception.ComparisonNotSupportedException; -import com.dotmarketing.portlets.rules.exception.RuleConstructionFailedException; import com.dotmarketing.portlets.rules.exception.RuleEvaluationFailedException; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.parameter.ParameterDefinition; import com.dotmarketing.portlets.rules.parameter.comparison.Comparison; -import com.dotmarketing.portlets.rules.parameter.display.DropdownInput; -import com.dotmarketing.portlets.rules.parameter.display.NumericInput; import com.dotmarketing.portlets.rules.parameter.display.RestDropdownInput; -import com.dotmarketing.portlets.rules.parameter.display.TextInput; -import com.dotmarketing.portlets.rules.parameter.type.NumericType; import com.dotmarketing.portlets.rules.parameter.type.TextType; import com.dotmarketing.util.Logger; import com.liferay.portal.model.User; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.Map; import java.util.Optional; - -import static com.dotcms.repackage.com.google.common.base.Preconditions.checkState; -import static com.dotmarketing.portlets.rules.parameter.comparison.Comparison.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; public class PersonaConditionlet extends Conditionlet{ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/VisitedUrlConditionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/VisitedUrlConditionlet.java index 455e45dce809..cfa50dbfe10c 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/VisitedUrlConditionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/conditionlet/VisitedUrlConditionlet.java @@ -7,7 +7,6 @@ import static com.dotmarketing.portlets.rules.parameter.comparison.Comparison.REGEX; import static com.dotmarketing.portlets.rules.parameter.comparison.Comparison.STARTS_WITH; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.util.HttpRequestDataUtil; import com.dotmarketing.beans.Host; import com.dotmarketing.business.web.WebAPILocator; @@ -35,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; /** * This conditionlet will allow CMS users to check whether a user has already diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/ParameterDefinition.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/ParameterDefinition.java index 40cb8db8001f..13a54ed66734 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/ParameterDefinition.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/ParameterDefinition.java @@ -1,12 +1,12 @@ package com.dotmarketing.portlets.rules.parameter; import com.dotcms.repackage.com.google.common.base.Preconditions; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotcms.rest.exception.InvalidRuleParameterException; import com.dotmarketing.portlets.rules.exception.RuleEngineException; import com.dotmarketing.portlets.rules.model.ParameterModel; import com.dotmarketing.portlets.rules.parameter.display.Input; import com.dotmarketing.portlets.rules.parameter.type.DataType; +import org.apache.commons.lang.StringUtils; public class ParameterDefinition { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/comparison/Comparison.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/comparison/Comparison.java index df569810b36e..43a0d013a5a4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/comparison/Comparison.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/comparison/Comparison.java @@ -1,11 +1,11 @@ package com.dotmarketing.portlets.rules.parameter.comparison; -import com.dotcms.repackage.com.google.common.base.Objects; -import com.dotcms.repackage.org.apache.commons.lang.NotImplementedException; -import com.dotmarketing.portlets.rules.conditionlet.Location; import static com.dotmarketing.portlets.rules.parameter.display.DropdownInput.Option; +import com.dotcms.repackage.com.google.common.base.Objects; +import com.dotmarketing.portlets.rules.conditionlet.Location; import java.util.Collection; +import org.apache.commons.lang.NotImplementedException; public class Comparison { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/display/DropdownInput.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/display/DropdownInput.java index 2c5a484779d0..83b226962efd 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/display/DropdownInput.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/display/DropdownInput.java @@ -1,12 +1,10 @@ package com.dotmarketing.portlets.rules.parameter.display; import com.dotcms.repackage.com.google.common.collect.Maps; -import com.dotcms.repackage.org.apache.commons.lang.NotImplementedException; import com.dotcms.rest.exception.InvalidRuleParameterException; import com.dotmarketing.portlets.rules.exception.RuleEngineException; import com.dotmarketing.portlets.rules.parameter.type.TextType; import com.dotmarketing.util.Logger; - import java.util.Map; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/DataType.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/DataType.java index 9b426c8810b9..41a6056ad011 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/DataType.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/DataType.java @@ -2,10 +2,10 @@ import com.dotcms.repackage.com.google.common.collect.ImmutableMap; import com.dotcms.repackage.com.google.common.collect.Maps; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.parameter.type.constraint.TypeConstraint; import java.util.Collections; import java.util.Map; +import org.apache.commons.lang.StringUtils; /** * @author Geoff M. Granum diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/NumericType.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/NumericType.java index 49e4be5e3fe1..85778c9948c1 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/NumericType.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/NumericType.java @@ -1,8 +1,8 @@ package com.dotmarketing.portlets.rules.parameter.type; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.parameter.type.constraint.StandardConstraints; import com.dotmarketing.portlets.rules.parameter.type.constraint.TypeConstraint; +import org.apache.commons.lang.StringUtils; /** * @author Geoff M. Granum diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/constraint/StandardConstraintFunctions.java b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/constraint/StandardConstraintFunctions.java index f1159182ca61..fec002648f81 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/constraint/StandardConstraintFunctions.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/rules/parameter/type/constraint/StandardConstraintFunctions.java @@ -1,8 +1,8 @@ package com.dotmarketing.portlets.rules.parameter.type.constraint; -import com.dotcms.repackage.org.apache.commons.lang.StringUtils; import com.dotmarketing.portlets.rules.parameter.comparison.MatcherCheck; import java.util.function.Function; +import org.apache.commons.lang.StringUtils; import org.hamcrest.Matchers; /** diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/EditSchedulerAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/EditSchedulerAction.java index 7eafec9b8855..e52320083e2f 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/EditSchedulerAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/EditSchedulerAction.java @@ -1,19 +1,8 @@ package com.dotmarketing.portlets.scheduler.action; -import java.net.URLDecoder; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; -import java.util.StringTokenizer; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.common.db.DotConnect; import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.portal.struts.DotPortletAction; @@ -27,6 +16,16 @@ import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.StringTokenizer; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * @author Maria */ diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/ViewSchedulersAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/ViewSchedulersAction.java index ec277f6e888d..78fe8370d043 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/ViewSchedulersAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/action/ViewSchedulersAction.java @@ -22,25 +22,23 @@ package com.dotmarketing.portlets.scheduler.action; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.jsp.PageContext; - import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.quartz.QuartzUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.WebKeys; import com.liferay.portal.struts.PortletAction; import com.liferay.portal.util.Constants; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/struts/SchedulerForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/struts/SchedulerForm.java index d36f6146238d..adb522a05435 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/struts/SchedulerForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/scheduler/struts/SchedulerForm.java @@ -1,14 +1,11 @@ package com.dotmarketing.portlets.scheduler.struts; +import com.liferay.portal.util.Constants; import java.util.Map; - import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - -import com.liferay.portal.util.Constants; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.validator.ValidatorForm; /** @author Hibernate CodeGenerator */ public class SchedulerForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditFieldAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditFieldAction.java index e582c5f1e5b0..d23902dad17e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditFieldAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditFieldAction.java @@ -11,10 +11,6 @@ import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; @@ -44,20 +40,20 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.Validator; import com.dotmarketing.util.WebKeys; - +import com.liferay.portal.model.User; +import com.liferay.portal.util.Constants; +import com.liferay.portlet.ActionRequestImpl; +import com.liferay.util.StringUtil; +import com.liferay.util.servlet.SessionMessages; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; - -import com.liferay.portal.model.User; -import com.liferay.portal.util.Constants; -import com.liferay.portlet.ActionRequestImpl; -import com.liferay.util.StringUtil; -import com.liferay.util.servlet.SessionMessages; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * This Struts action will handle all the requests related to adding, updating diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditRelationshipAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditRelationshipAction.java index ddcec627ba66..794f4dfeb1c4 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditRelationshipAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditRelationshipAction.java @@ -1,16 +1,9 @@ package com.dotmarketing.portlets.structure.action; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.beans.Tree; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.business.FactoryLocator; @@ -21,7 +14,6 @@ import com.dotmarketing.exception.DotRuntimeException; import com.dotmarketing.factories.TreeFactory; import com.dotmarketing.portal.struts.DotPortletAction; - import com.dotmarketing.portlets.structure.factories.StructureFactory; import com.dotmarketing.portlets.structure.model.Relationship; import com.dotmarketing.portlets.structure.model.Structure; @@ -34,6 +26,12 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.util.Constants; import com.liferay.util.servlet.SessionMessages; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; public class EditRelationshipAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditStructureAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditStructureAction.java index 7795033755cd..f459e5455507 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditStructureAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/EditStructureAction.java @@ -13,10 +13,6 @@ import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Identifier; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.CacheLocator; @@ -45,20 +41,20 @@ import com.dotmarketing.util.Validator; import com.dotmarketing.util.VelocityUtil; import com.dotmarketing.util.WebKeys; - -import java.net.URLDecoder; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.http.HttpServletRequest; - import com.google.common.collect.ImmutableList; import com.liferay.portal.model.User; import com.liferay.portal.struts.ActionException; import com.liferay.portal.util.Constants; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.servlet.http.HttpServletRequest; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; public class EditStructureAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewRelationshipsAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewRelationshipsAction.java index 8b3a5193b1a5..e73fef179f6e 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewRelationshipsAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewRelationshipsAction.java @@ -1,29 +1,26 @@ package com.dotmarketing.portlets.structure.action; -import java.util.List; - import com.dotcms.contenttype.model.type.ContentType; import com.dotcms.contenttype.model.type.ContentTypeBuilder; import com.dotcms.contenttype.model.type.SimpleContentType; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; - -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.FactoryLocator; import com.dotmarketing.common.util.SQLUtil; import com.dotmarketing.exception.DotDataException; import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portal.struts.DotPortletAction; - import com.dotmarketing.portlets.structure.model.Relationship; import com.dotmarketing.util.StringUtils; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; +import java.util.List; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; public class ViewRelationshipsAction extends DotPortletAction { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewStructureAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewStructureAction.java index eb2eaef199de..f39b5eefd16a 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewStructureAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/action/ViewStructureAction.java @@ -1,20 +1,10 @@ package com.dotmarketing.portlets.structure.action; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import com.dotcms.contenttype.business.ContentTypeAPI; import com.dotcms.repackage.com.google.common.annotations.VisibleForTesting; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.RenderRequest; import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; import com.dotmarketing.business.APILocator; import com.dotmarketing.db.DbConnectionFactory; import com.dotmarketing.portal.struts.DotPortletAction; @@ -24,6 +14,13 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * Struts action that retrieves the required information to display the "Content diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Field.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Field.java index eb13aaa9e980..cf769bc2aed6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Field.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Field.java @@ -1,18 +1,16 @@ package com.dotmarketing.portlets.structure.model; -import java.util.Date; - -import java.util.HashMap; -import java.util.Map; - import com.dotcms.contenttype.model.field.FieldIf; import com.dotcms.contenttype.model.field.LegacyFieldTypes; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; import com.dotmarketing.beans.Inode; import com.dotmarketing.business.CacheLocator; import com.dotmarketing.exception.DotHibernateException; import com.dotmarketing.portlets.structure.factories.FieldFactory; import com.dotmarketing.util.UtilMethods; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; /** * * @deprecated use {@link com.dotcms.contenttype.model.field.Field} @@ -54,7 +52,9 @@ public enum FieldType { BINARY("binary"), // http://jira.dotmarketing.net/browse/DOTCMS-1073 CUSTOM_FIELD("custom_field"), // http://jira.dotmarketing.net/browse/DOTCMS-2869 HOST_OR_FOLDER("host or folder"),// http://jira.dotmarketing.net/browse/DOTCMS-3232 - KEY_VALUE("key_value"); + KEY_VALUE("key_value"), + ROW("row"), + COLUMN("column"); private String value; diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Structure.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Structure.java index 6ce14f4a3d1f..c9aeacadc040 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Structure.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/model/Structure.java @@ -1,18 +1,10 @@ package com.dotmarketing.portlets.structure.model; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; - import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.contenttype.model.type.ContentTypeIf; import com.dotcms.repackage.com.fasterxml.jackson.annotation.JsonIgnore; -import com.dotcms.repackage.org.apache.commons.lang.builder.ToStringBuilder; - import com.dotmarketing.beans.Inode; import com.dotmarketing.business.APILocator; -import com.dotmarketing.business.DotStateException; import com.dotmarketing.business.PermissionAPI; import com.dotmarketing.business.PermissionSummary; import com.dotmarketing.business.Permissionable; @@ -26,6 +18,11 @@ import com.dotmarketing.portlets.structure.factories.StructureFactory; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.builder.ToStringBuilder; diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/FieldForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/FieldForm.java index b77fdbcb4e88..b866c9bec433 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/FieldForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/FieldForm.java @@ -1,22 +1,15 @@ package com.dotmarketing.portlets.structure.struts; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.Globals; -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.portlets.structure.business.FieldAPI; -import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.UtilMethods; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.Globals; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.validator.ValidatorForm; public class FieldForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/RelationshipForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/RelationshipForm.java index 44861ddcf9db..a766bd5d61ea 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/RelationshipForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/RelationshipForm.java @@ -1,15 +1,13 @@ package com.dotmarketing.portlets.structure.struts; -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.action.ActionMessages; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; - import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.UtilMethods; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.validator.ValidatorForm; diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/StructureForm.java b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/StructureForm.java index 1b5ec8df7545..7516f6e55d44 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/StructureForm.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/structure/struts/StructureForm.java @@ -1,18 +1,16 @@ package com.dotmarketing.portlets.structure.struts; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import com.dotcms.repackage.org.apache.struts.action.ActionErrors; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; -import com.dotcms.repackage.org.apache.struts.action.ActionMessage; -import com.dotcms.repackage.org.apache.struts.validator.ValidatorForm; import com.dotmarketing.cache.FieldsCache; import com.dotmarketing.portlets.structure.model.Field; import com.dotmarketing.portlets.structure.model.Structure; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.UtilMethods; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.validator.ValidatorForm; public class StructureForm extends ValidatorForm { diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/EditTemplateAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/EditTemplateAction.java index 3f4338ead240..ff7c9dec9174 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/EditTemplateAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/EditTemplateAction.java @@ -6,10 +6,6 @@ import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; import com.dotcms.repackage.javax.portlet.WindowState; -import com.dotcms.repackage.org.apache.commons.beanutils.BeanUtils; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.WebAsset; @@ -40,14 +36,6 @@ import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.Validator; import com.dotmarketing.util.WebKeys; - -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import com.liferay.portal.language.LanguageException; import com.liferay.portal.language.LanguageUtil; import com.liferay.portal.model.User; @@ -56,6 +44,14 @@ import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionDialogMessage; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * @author Maria @@ -74,8 +70,8 @@ public class EditTemplateAction extends DotPortletAction implements // } // }; // -// private static com.dotcms.repackage.org.apache.oro.text.regex.Pattern parseContainerPattern; -// private static com.dotcms.repackage.org.apache.oro.text.regex.Pattern oldContainerPattern; +// private static org.apache.oro.text.regex.Pattern parseContainerPattern; +// private static org.apache.oro.text.regex.Pattern oldContainerPattern; // public EditTemplateAction() { // Perl5Compiler c = new Perl5Compiler(); diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/PublishTemplatesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/PublishTemplatesAction.java index a5d2d4d9d5e1..4459f8722ae6 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/PublishTemplatesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/PublishTemplatesAction.java @@ -3,9 +3,6 @@ import com.dotcms.repackage.javax.portlet.ActionRequest; import com.dotcms.repackage.javax.portlet.ActionResponse; import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - import com.dotmarketing.exception.WebAssetException; import com.dotmarketing.factories.InodeFactory; import com.dotmarketing.factories.PublishFactory; @@ -15,12 +12,12 @@ import com.dotmarketing.util.HostUtil; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; - -import java.net.URLDecoder; - import com.liferay.portal.model.User; import com.liferay.portlet.ActionRequestImpl; import com.liferay.util.servlet.SessionMessages; +import java.net.URLDecoder; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/ViewTemplatesAction.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/ViewTemplatesAction.java index 36eacb53a421..37ca0fad7067 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/ViewTemplatesAction.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/action/ViewTemplatesAction.java @@ -1,5 +1,8 @@ package com.dotmarketing.portlets.templates.action; +import com.dotcms.repackage.javax.portlet.PortletConfig; +import com.dotcms.repackage.javax.portlet.RenderRequest; +import com.dotcms.repackage.javax.portlet.RenderResponse; import com.dotmarketing.beans.Host; import com.dotmarketing.business.APILocator; import com.dotmarketing.business.PermissionAPI; @@ -10,15 +13,11 @@ import com.dotmarketing.util.WebKeys; import com.liferay.portal.model.User; import com.liferay.portal.util.Constants; -import com.dotcms.repackage.org.apache.struts.action.ActionForm; -import com.dotcms.repackage.org.apache.struts.action.ActionForward; -import com.dotcms.repackage.org.apache.struts.action.ActionMapping; - -import com.dotcms.repackage.javax.portlet.PortletConfig; -import com.dotcms.repackage.javax.portlet.RenderRequest; -import com.dotcms.repackage.javax.portlet.RenderResponse; -import javax.servlet.jsp.PageContext; import java.util.List; +import javax.servlet.jsp.PageContext; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; /** * View Source diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/ajax/TemplateAjax.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/ajax/TemplateAjax.java index d1f42c7a6a74..483cab8b4e59 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/ajax/TemplateAjax.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/ajax/TemplateAjax.java @@ -147,9 +147,11 @@ private Map buildTemplateMap(Template template) throws DotDataEx if(parentHost != null) { templateMap.put("hostName", parentHost.getHostname()); templateMap.put("hostId", parentHost.getIdentifier()); - templateMap.put("fullTitle", parentHost.getHostname() + " " + templateMap.get("title")); + templateMap.put("fullTitle", templateMap.get("title") + " (" + parentHost.getHostname() + ")" ); + templateMap.put("htmlTitle", "
" + templateMap.get("title") + "
" + parentHost.getHostname() + "
" ); } else { templateMap.put("fullTitle", templateMap.get("title")); + templateMap.put("htmlTitle", templateMap.get("title")); } return templateMap; } diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPI.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPI.java index c1ab69d07a9f..95f71a25334b 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPI.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPI.java @@ -6,6 +6,8 @@ import com.dotmarketing.exception.DotSecurityException; import com.dotmarketing.portlets.containers.model.Container; import com.dotmarketing.portlets.htmlpageasset.business.HTMLPageAssetAPI.TemplateContainersReMap.ContainerRemapTuple; +import com.dotmarketing.portlets.templates.design.bean.ContainerUUID; +import com.dotmarketing.portlets.templates.design.bean.TemplateLayout; import com.dotmarketing.portlets.templates.model.Template; import com.liferay.portal.model.User; @@ -115,6 +117,8 @@ Template copy(Template sourceTemplate, Host destinationHost, boolean forceOverwr */ List getContainersInTemplate(Template template, User user, boolean respectFrontendRoles) throws DotDataException, DotSecurityException; + public List getContainersUUID(TemplateLayout layout); + /** * Retrieves the template associated to a host * @param template diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java index a62acc1b0984..4c2c8917b5e9 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/templates/business/TemplateAPIImpl.java @@ -4,6 +4,7 @@ import com.dotcms.business.WrapInTransaction; import com.dotcms.contenttype.model.type.BaseContentType; import com.dotcms.rendering.velocity.viewtools.DotTemplateTool; + import com.dotmarketing.beans.Host; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.MultiTree; @@ -27,24 +28,25 @@ import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.htmlpageasset.business.HTMLPageAssetAPI.TemplateContainersReMap.ContainerRemapTuple; import com.dotmarketing.portlets.htmlpageasset.model.HTMLPageAsset; -import com.dotmarketing.portlets.templates.design.bean.TemplateLayout; +import com.dotmarketing.portlets.templates.design.bean.*; import com.dotmarketing.portlets.templates.model.Template; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; import com.dotmarketing.util.UtilMethods; import com.dotmarketing.util.WebKeys; -import com.liferay.portal.model.User; import java.util.ArrayList; import java.util.Date; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; +import com.liferay.portal.model.User; + + public class TemplateAPIImpl extends BaseWebAssetAPI implements TemplateAPI { @@ -115,16 +117,12 @@ public Template copy(Template sourceTemplate, Host destination, boolean forceOve newTemplate.setModDate(new Date()); newTemplate.setModUser(user.getUserId()); - - newTemplate.setBody(replaceWithNewContainerIds(newTemplate.getBody(), containerMappings)); - newTemplate.setDrawedBody(replaceWithNewContainerIds(newTemplate.getDrawedBody(), containerMappings)); - if (isNew) { // creates new identifier for this webasset and persists it Identifier newIdentifier = com.dotmarketing.business.APILocator.getIdentifierAPI().createNew(newTemplate, destination); - Logger.debug(TemplateFactory.class, "Parent newIdentifier=" + newIdentifier.getInode()); + Logger.debug(TemplateFactory.class, "Parent newIdentifier=" + newIdentifier.getId()); - newTemplate.setIdentifier(newIdentifier.getInode()); + newTemplate.setIdentifier(newIdentifier.getId()); // persists the webasset save(newTemplate); @@ -196,6 +194,13 @@ public Template saveTemplate(Template template, Host destination, User user, boo Identifier ident=APILocator.getIdentifierAPI().find(template.getIdentifier()); existingId = ident==null || !UtilMethods.isSet(ident.getId()); } + + if(template.isDrawed() && !UtilMethods.isSet(template.getDrawedBody())) { + throw new DotStateException("Drawed template MUST have a drawed body:" + template); + + } + + if(UtilMethods.isSet(template.getInode())) { try { @@ -231,6 +236,7 @@ public Template saveTemplate(Template template, Host destination, User user, boo Identifier identifier = null; if (oldTemplate != null) { templateFactory.deleteFromCache(oldTemplate); + identifier = identifierAPI.findFromInode(oldTemplate.getIdentifier()); } else{ @@ -258,142 +264,78 @@ public Template saveTemplate(Template template, Host destination, User user, boo @CloseDBIfOpened @Override - public List getContainersInTemplate(final Template template, final User user, final boolean respectFrontendRoles) + public List getContainersInTemplate(Template template, User user, boolean respectFrontendRoles) throws DotDataException, DotSecurityException { - final List containers = new ArrayList<>(); - - if (template.isDrawed()){ - final TemplateLayout layout = DotTemplateTool.themeLayout(template.getInode()); - final List containersId = layout.getContainersId(); + final Set containers = new HashSet<>(); + if(template.isDrawed()) { + final TemplateLayout layout = DotTemplateTool.themeLayout(template.getInode()); + final List containersId = this.getContainersId(layout); + for (final String cont : containersId) { final Container container = APILocator.getContainerAPI().getWorkingContainerById(cont, user, false); - - if (container == null) { + + if(container==null) { continue; } - + containers.add(container); } } - // this is a light weight search for pages that use this template - List pages = APILocator.getContentletAPIImpl() - .searchIndex("+_all:" + template.getIdentifier() - + " +baseType:" + BaseContentType.HTMLPAGE.getType(), - 100, 0, null, user, respectFrontendRoles); + List pages= APILocator.getContentletAPIImpl().searchIndex("+_all:" + template.getIdentifier() + " +baseType:" + + BaseContentType.HTMLPAGE.getType(), 100, 0, null, user,respectFrontendRoles); for (ContentletSearch page : pages) { - Set containersId = - MultiTreeFactory.getMultiTrees(page.getIdentifier()) + Set containerId = + MultiTreeFactory.getMultiTrees(page.getIdentifier()) .stream() .map(MultiTree::getContainer) .collect(Collectors.toSet()); - for (final String cont : containersId) { - final Container container = APILocator.getContainerAPI().getWorkingContainerById(cont, user, false); - if (container == null) { + for (String cont : containerId) { + Container container = APILocator.getContainerAPI().getWorkingContainerById(cont, user, false); + if(container==null) { continue; } - containers.add(container); } } - return new ArrayList<>(containers); - } + return new ArrayList(containers); - private String replaceWithNewContainerIds(String body, List containerMappings) { - if(body ==null) return body; - Pattern oldContainerReferencesRegex = Pattern.compile("#parse\\s*\\(\\s*\\$container([^\\s]+)\\s*\\)"); - Pattern newContainerReferencesRegex = Pattern.compile("#parseContainer\\s*\\(\\s*['\"]*([^'\")]+)['\"]*\\s*\\)"); - - StringBuffer newBody = new StringBuffer(); - Matcher matcher = oldContainerReferencesRegex.matcher(body); - while(matcher.find()) { - String containerId = matcher.group(1).trim(); - for(ContainerRemapTuple tuple : containerMappings) { - if(tuple.getSourceContainer().getIdentifier().equals(containerId)) { - matcher.appendReplacement(newBody, "#parseContainer('" + tuple.getDestinationContainer().getIdentifier() +"')"); - } - } - } - matcher.appendTail(newBody); - - body = newBody.toString(); - newBody = new StringBuffer(); - matcher = newContainerReferencesRegex.matcher(body); - while(matcher.find()) { - String containerId = matcher.group(1).trim(); - for(ContainerRemapTuple tuple : containerMappings) { - if(tuple.getSourceContainer().getIdentifier().equals(containerId)) { - matcher.appendReplacement(newBody, "#parseContainer('" + tuple.getDestinationContainer().getIdentifier() +"')"); - break; - } - } - } - matcher.appendTail(newBody); + } + public List getContainersUUID(TemplateLayout layout) { + final List containerUUIDS = new ArrayList<>(); + final List rows = layout.getBody().getRows(); - // if we are updating container references - if(containerMappings != null && containerMappings.size() > 0){ - Pattern uuid = Pattern.compile("[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"); + for (final TemplateLayoutRow row : rows) { + final List columns = row.getColumns(); - body = newBody.toString(); - newBody = new StringBuffer(); - matcher = uuid.matcher(body); - while(matcher.find()) { - String containerId = matcher.group(0); - for(ContainerRemapTuple tuple : containerMappings) { - if(tuple.getSourceContainer().getIdentifier().equals(containerId)) { - matcher.appendReplacement(newBody, tuple.getDestinationContainer().getIdentifier() ); - break; - } - } + for (final TemplateLayoutColumn column : columns) { + final List columnContainers = column.getContainers(); + containerUUIDS.addAll(columnContainers); } - matcher.appendTail(newBody); } + Sidebar sidebar = layout.getSidebar(); - - - - - return newBody.toString(); - } - - - @SuppressWarnings("unchecked") - private String getCopyTemplateName(String templateName, Host host) throws DotDataException { - String result = new String(templateName); - - List