Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Plugin #8

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 51 additions & 5 deletions feedback-hub-siteimprove-studio-lib/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,46 +10,61 @@
</parent>

<artifactId>feedback-hub-siteimprove-studio-lib</artifactId>
<properties>
<coremedia.project.extension.for>studio-lib</coremedia.project.extension.for>
</properties>

<dependencies>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>coremedia-plugin-beansforplugins</artifactId>
</dependency>
<dependency>
<groupId>com.coremedia.feedbackhub</groupId>
<artifactId>feedback-hub-beansforplugins</artifactId>
</dependency>

<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>coremedia-xml</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>coremedia-rest-plugins</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.ui</groupId>
<artifactId>cap-rest-service</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>coremedia-spring</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>cap-multisite</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>cap-rest-plugins</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.cms</groupId>
<artifactId>cap-unified-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.feedbackhub</groupId>
<artifactId>feedback-hub-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.coremedia.feedbackhub</groupId>
<artifactId>feedback-hub-lib</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
Expand All @@ -60,45 +75,76 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<scope>provided</scope>
</dependency>

</dependencies>


<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/descriptor.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-plugin</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
39 changes: 39 additions & 0 deletions feedback-hub-siteimprove-studio-lib/src/assembly/descriptor.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
<id>pf4j-plugin-zip</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<files>
<file>
<source>src/main/resources/plugin.properties/</source>
<outputDirectory>/</outputDirectory>
<filtered>true</filtered>
</file>
</files>
<dependencySets>
<dependencySet>
<includes>
<include>${project.groupId}:${project.artifactId}</include>
</includes>
<outputDirectory>classes</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
<unpackOptions>
<excludes>
<exclude>plugin.properties</exclude>
<exclude>META-INF/**</exclude>
</excludes>
</unpackOptions>
</dependencySet>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
<unpack>false</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,30 @@
import com.coremedia.blueprint.feedbackhub.siteimprove.service.SiteimproveService;
import com.coremedia.blueprint.feedbackhub.siteimprove.service.SiteimproveServiceConfiguration;
import com.coremedia.cap.multisite.SitesService;
import com.coremedia.feedbackhub.FeedbackHubConfiguration;
import com.coremedia.feedbackhub.FeedbackService;
import com.coremedia.cms.common.plugins.beansforplugins.plugin.CommonBeansForPluginsConfiguration;
import com.coremedia.feedbackhub.BindingsService;
import com.coremedia.feedbackhub.beansforplugins.FeedbackHubBeansForPluginsConfiguration;
import com.coremedia.feedbackhub.provider.ContentFeedbackProviderFactory;
import com.coremedia.springframework.xml.ResourceAwareXmlBeanDefinitionReader;
import edu.umd.cs.findbugs.annotations.NonNull;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;

@Configuration
@Import({SiteimproveServiceConfiguration.class, FeedbackHubConfiguration.class})
@ImportResource(
value = {
"classpath:/com/coremedia/cap/multisite/multisite-services.xml"
},
reader = ResourceAwareXmlBeanDefinitionReader.class
)
@Import({SiteimproveServiceConfiguration.class,
FeedbackHubBeansForPluginsConfiguration.class,
CommonBeansForPluginsConfiguration.class})
public class SiteimproveFeedbackHubConfiguration {
@Bean
public ContentFeedbackProviderFactory siteimproveContentFeedbackProviderFactory(@NonNull SiteimproveService siteimproveService) {
public ContentFeedbackProviderFactory<?> siteimproveContentFeedbackProviderFactory(@NonNull SiteimproveService siteimproveService) {
return new SiteimproveContentFeedbackProviderFactory(siteimproveService);
}

@Bean
public RecrawlPageJobFactory recrawlPageJobFactory(@NonNull SiteimproveService siteimproveService, @NonNull FeedbackService feedbackService, @NonNull SitesService sitesService) {
return new RecrawlPageJobFactory(siteimproveService, feedbackService, sitesService);
public RecrawlPageJobFactory recrawlPageJobFactory(@NonNull SiteimproveService siteimproveService,
@NonNull BindingsService bindingsService,
@NonNull SitesService sitesService) {
return new RecrawlPageJobFactory(siteimproveService, bindingsService, sitesService);
}

/* Out of scope
Expand All @@ -39,11 +36,11 @@ public RecrawlPageJobFactory recrawlPageJobFactory(@NonNull SiteimproveService s
SiteimproveValidator siteimproveValidator(@NonNull CapConnection connection,
@NonNull SiteimproveService siteimproveService,
@NonNull SitesService sitesService,
@NonNull FeedbackService feedbackService) {
@NonNull BindingsService bindingsService) {
SiteimproveValidator validator = new SiteimproveValidator();
validator.setConnection(connection);
validator.setSiteimproveService(siteimproveService);
validator.setFeedbackService(feedbackService);
validator.setBindingsService(bindingsService);
validator.setValidatingSubtypes(true);
validator.setSitesService(sitesService);
validator.setContentType("CMTeasable");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import com.coremedia.cap.multisite.SitesService;
import com.coremedia.cap.multisite.impl.SitesServiceImpl;
import com.coremedia.feedbackhub.Binding;
import com.coremedia.feedbackhub.FeedbackService;
import com.coremedia.feedbackhub.BindingsService;
import com.coremedia.rest.cap.jobs.GenericJobErrorCode;
import com.coremedia.rest.cap.jobs.Job;
import com.coremedia.rest.cap.jobs.JobContext;
Expand All @@ -32,19 +32,19 @@
public class RecrawlPageJob implements Job {
private static final Logger LOG = LoggerFactory.getLogger(RecrawlPageJob.class);

private final SiteimproveService siteimproveService;
private final BindingsService bindingsService;
private final SitesService sitesService;

private Boolean preview = false;
private Content content;
private String pageId;
private Boolean checkStatusOnly = false;
private SiteimproveService siteimproveService;
private FeedbackService feedbackService;
private SitesService sitesService;

private ScheduledFuture<?> scheduledFuture;

public RecrawlPageJob(SiteimproveService siteimproveService, FeedbackService feedbackService, SitesService sitesService) {
public RecrawlPageJob(SiteimproveService siteimproveService, BindingsService bindingsService, SitesService sitesService) {
this.siteimproveService = siteimproveService;
this.feedbackService = feedbackService;
this.bindingsService = bindingsService;
this.sitesService = sitesService;
}

Expand Down Expand Up @@ -107,18 +107,18 @@ private void cancel() {
scheduledFuture.cancel(false);
}
}
//Use the injected feedbackService to access the Siteimprove settings
//Use the injected bindingsService to access the Siteimprove settings
//TODO: make it better.
private SiteimproveSettings getConfig(Content content) {
Site site = ((SitesServiceImpl) sitesService).getSiteFor(content);
Map<Site, Collection<Binding>> siteLocalBindings = feedbackService.getSiteLocalBindings();
Map<Site, Collection<Binding>> siteLocalBindings = bindingsService.getSiteLocalBindings();
SiteimproveSettings config = getConfig(siteLocalBindings.get(site));

if (config != null) {
return config;
}

return getConfig(feedbackService.getGlobalBindings());
return getConfig(bindingsService.getGlobalBindings());
}

private SiteimproveSettings getConfig(Collection<Binding> bindings) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

import com.coremedia.blueprint.feedbackhub.siteimprove.service.SiteimproveService;
import com.coremedia.cap.multisite.SitesService;
import com.coremedia.feedbackhub.FeedbackService;
import com.coremedia.feedbackhub.BindingsService;
import com.coremedia.rest.cap.jobs.Job;
import com.coremedia.rest.cap.jobs.JobFactory;
import edu.umd.cs.findbugs.annotations.NonNull;

public class RecrawlPageJobFactory implements JobFactory {

private SiteimproveService siteimproveService;
private FeedbackService feedbackService;
private SitesService sitesService;
private final SiteimproveService siteimproveService;
private final BindingsService bindingsService;
private final SitesService sitesService;

public RecrawlPageJobFactory(SiteimproveService siteimproveService, FeedbackService feedbackService, SitesService sitesService) {
public RecrawlPageJobFactory(SiteimproveService siteimproveService, BindingsService bindingsService, SitesService sitesService) {
this.siteimproveService = siteimproveService;
this.feedbackService = feedbackService;
this.bindingsService = bindingsService;
this.sitesService = sitesService;
}

Expand All @@ -27,6 +27,6 @@ public boolean accepts(@NonNull String jobType) {
@NonNull
@Override
public Job createJob() {
return new RecrawlPageJob(siteimproveService, feedbackService, sitesService);
return new RecrawlPageJob(siteimproveService, bindingsService, sitesService);
}
}
Loading