mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
Add gitop.core module.
This commit is contained in:
parent
80795dd63d
commit
9d377d6776
75
gitop.core/pom.xml
Normal file
75
gitop.core/pom.xml
Normal file
@ -0,0 +1,75 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>gitop.core</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<parent>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>parent.general</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>plugin.maven</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-archetype-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.loader</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.web</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.security</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.rest</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>pmeaseRepo</id>
|
||||
<name>PMEase Repository</name>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>never</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</snapshots>
|
||||
<url>http://artifact.pmease.com/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<properties>
|
||||
<moduleClass>com.pmease.gitop.core.CoreModule</moduleClass>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,34 @@
|
||||
package com.pmease.gitop.core;
|
||||
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
import com.pmease.commons.loader.AbstractPluginModule;
|
||||
import com.pmease.commons.loader.AppName;
|
||||
import com.pmease.commons.security.AbstractRealm;
|
||||
import com.pmease.commons.web.AbstractWicketConfig;
|
||||
|
||||
/**
|
||||
* NOTE: Do not forget to rename moduleClass property defined in the pom if you've renamed this class.
|
||||
*
|
||||
*/
|
||||
public class CoreModule extends AbstractPluginModule {
|
||||
|
||||
public static final String PRODUCT_NAME = "Gitop";
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
super.configure();
|
||||
|
||||
bind(AbstractWicketConfig.class).to(WicketConfig.class);
|
||||
bind(AbstractRealm.class).to(UserRealm.class);
|
||||
|
||||
bindConstant().annotatedWith(AppName.class).to(PRODUCT_NAME);
|
||||
|
||||
bind(HelloResource.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends AbstractPlugin> getPluginClass() {
|
||||
return CorePlugin.class;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package com.pmease.gitop.core;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
|
||||
import com.pmease.commons.jetty.ClasspathAssetServlet;
|
||||
import com.pmease.commons.jetty.extensionpoints.ServletContextConfigurator;
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
import com.pmease.commons.persistence.AbstractEntity;
|
||||
import com.pmease.commons.persistence.extensionpoints.ModelContribution;
|
||||
import com.pmease.gitop.core.model.User;
|
||||
import com.pmease.gitop.core.web.asset.AssetLocator;
|
||||
|
||||
public class CorePlugin extends AbstractPlugin {
|
||||
|
||||
@Override
|
||||
public Collection<?> getExtensions() {
|
||||
return Arrays.asList(
|
||||
new ServletContextConfigurator() {
|
||||
|
||||
@Override
|
||||
public void configure(ServletContextHandler context) {
|
||||
ServletHolder servletHolder = new ServletHolder(new ClasspathAssetServlet(AssetLocator.class));
|
||||
context.addServlet(servletHolder, "/asset/*");
|
||||
context.addServlet(servletHolder, "/favicon.ico");
|
||||
|
||||
ErrorPageErrorHandler errorHandler = (ErrorPageErrorHandler) context.getErrorHandler();
|
||||
errorHandler.addErrorPage(HttpServletResponse.SC_NOT_FOUND, "/asset/404.html");
|
||||
}
|
||||
|
||||
},
|
||||
new ModelContribution() {
|
||||
|
||||
@Override
|
||||
public Collection<Class<? extends AbstractEntity>> getModelClasses() {
|
||||
Collection<Class<? extends AbstractEntity>> modelClasses =
|
||||
new HashSet<Class<? extends AbstractEntity>>();
|
||||
modelClasses.add(User.class);
|
||||
return modelClasses;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.pmease.gitop;
|
||||
package com.pmease.gitop.core;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
@ -6,7 +6,7 @@ import javax.ws.rs.Path;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
|
||||
import com.pmease.commons.security.SecurityHelper;
|
||||
import com.pmease.gitop.model.User;
|
||||
import com.pmease.gitop.core.model.User;
|
||||
|
||||
@Path("/hello")
|
||||
public class HelloResource {
|
||||
@ -1,4 +1,4 @@
|
||||
package com.pmease.gitop;
|
||||
package com.pmease.gitop.core;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@ -11,7 +11,7 @@ import org.apache.shiro.authc.credential.CredentialsMatcher;
|
||||
|
||||
import com.pmease.commons.persistence.dao.GeneralDao;
|
||||
import com.pmease.commons.security.AbstractRealm;
|
||||
import com.pmease.gitop.model.User;
|
||||
import com.pmease.gitop.core.model.User;
|
||||
|
||||
@Singleton
|
||||
public class UserRealm extends AbstractRealm<User> {
|
||||
@ -1,11 +1,11 @@
|
||||
package com.pmease.gitop;
|
||||
package com.pmease.gitop.core;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.apache.wicket.Page;
|
||||
|
||||
import com.pmease.commons.web.AbstractWicketConfig;
|
||||
import com.pmease.gitop.web.HomePage;
|
||||
import com.pmease.gitop.core.web.HomePage;
|
||||
|
||||
@Singleton
|
||||
public class WicketConfig extends AbstractWicketConfig {
|
||||
@ -1,4 +1,4 @@
|
||||
package com.pmease.gitop.model;
|
||||
package com.pmease.gitop.core.model;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package com.pmease.gitop.web;
|
||||
package com.pmease.gitop.core.web;
|
||||
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.apache.shiro.authc.UsernamePasswordToken;
|
||||
@ -8,7 +8,7 @@ import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
|
||||
import com.pmease.commons.security.SecurityHelper;
|
||||
import com.pmease.gitop.model.User;
|
||||
import com.pmease.gitop.core.model.User;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class HomePage extends WebPage {
|
||||
@ -0,0 +1,5 @@
|
||||
package com.pmease.gitop.core.web.asset;
|
||||
|
||||
public class AssetLocator {
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archetype-descriptor name="archetype.plugin">
|
||||
<fileSets>
|
||||
<fileSet filtered="true" packaged="true">
|
||||
<directory>src/main/java</directory>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" packaged="false">
|
||||
<directory>src/main/resources</directory>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" packaged="false">
|
||||
<directory>src/test/java</directory>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" packaged="false">
|
||||
<directory>src/test/resources</directory>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</archetype-descriptor>
|
||||
60
gitop.core/src/main/resources/archetype-resource/pom.xml
Normal file
60
gitop.core/src/main/resources/archetype-resource/pom.xml
Normal file
@ -0,0 +1,60 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
#if (\${groupId} != "com.pmease")
|
||||
<groupId>\${groupId}</groupId>
|
||||
#end
|
||||
<artifactId>\${artifactId}</artifactId>
|
||||
<version>\${version}</version>
|
||||
<parent>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>parent.general</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>plugin.maven</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>${project.artifactId}</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>pmeaseRepo</id>
|
||||
<name>PMEase Repository</name>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>never</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</snapshots>
|
||||
<url>http://artifact.pmease.com/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<properties>
|
||||
<moduleClass>\${package}.PluginModule</moduleClass>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,13 @@
|
||||
package ${package};
|
||||
|
||||
import java.util.Collection;
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
|
||||
public class Plugin extends AbstractPlugin {
|
||||
|
||||
@Override
|
||||
public Collection<?> getExtensions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package ${package};
|
||||
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
import com.pmease.commons.loader.AbstractPluginModule;
|
||||
|
||||
/**
|
||||
* NOTE: Do not forget to rename moduleClass property defined in the pom if you've renamed this class.
|
||||
*
|
||||
*/
|
||||
public class PluginModule extends AbstractPluginModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
super.configure();
|
||||
|
||||
// put your guice bindings here
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends AbstractPlugin> getPluginClass() {
|
||||
return Plugin.class;
|
||||
}
|
||||
|
||||
}
|
||||
@ -97,32 +97,12 @@
|
||||
<artifactId>commons.jsw</artifactId>
|
||||
<version>1.0.26</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.persistence</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.jetty</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.rest</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.web</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>commons.security</artifactId>
|
||||
<version>1.0.26</version>
|
||||
</dependency>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pmease</groupId>
|
||||
<artifactId>gitop.core</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
@ -144,7 +124,7 @@
|
||||
<properties>
|
||||
<executables>bin/*.sh, bin/wrapper-*</executables>
|
||||
<bootstrapClass>com.pmease.commons.bootstrap.Bootstrap</bootstrapClass>
|
||||
<moduleClass>com.pmease.commons.product.ProductModule</moduleClass>
|
||||
<moduleClass>com.pmease.gitop.ProductModule</moduleClass>
|
||||
<aggregation>false</aggregation>
|
||||
</properties>
|
||||
</project>
|
||||
|
||||
@ -2,18 +2,15 @@ package com.pmease.gitop;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.shiro.authc.credential.PasswordService;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.bio.SocketConnector;
|
||||
import org.eclipse.jetty.server.ssl.SslSocketConnector;
|
||||
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.hibernate.criterion.DetachedCriteria;
|
||||
@ -23,18 +20,14 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.pmease.commons.bootstrap.Bootstrap;
|
||||
import com.pmease.commons.jetty.ClasspathAssetServlet;
|
||||
import com.pmease.commons.jetty.FileAssetServlet;
|
||||
import com.pmease.commons.jetty.extensionpoints.ServerConfigurator;
|
||||
import com.pmease.commons.jetty.extensionpoints.ServletContextConfigurator;
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
import com.pmease.commons.persistence.AbstractEntity;
|
||||
import com.pmease.commons.persistence.dao.GeneralDao;
|
||||
import com.pmease.commons.persistence.extensionpoints.ModelContribution;
|
||||
import com.pmease.commons.util.FileUtils;
|
||||
import com.pmease.commons.util.StringUtils;
|
||||
import com.pmease.gitop.model.User;
|
||||
import com.pmease.gitop.web.asset.AssetLocator;
|
||||
import com.pmease.gitop.core.model.User;
|
||||
|
||||
public class Product extends AbstractPlugin {
|
||||
|
||||
@ -115,25 +108,8 @@ public class Product extends AbstractPlugin {
|
||||
ServletHolder servletHolder = new ServletHolder(new FileAssetServlet(siteDir));
|
||||
context.addServlet(servletHolder, "/site/*");
|
||||
context.addServlet(servletHolder, "/robots.txt");
|
||||
|
||||
servletHolder = new ServletHolder(new ClasspathAssetServlet(AssetLocator.class));
|
||||
context.addServlet(servletHolder, "/asset/*");
|
||||
context.addServlet(servletHolder, "/favicon.ico");
|
||||
|
||||
ErrorPageErrorHandler errorHandler = (ErrorPageErrorHandler) context.getErrorHandler();
|
||||
errorHandler.addErrorPage(HttpServletResponse.SC_NOT_FOUND, "/asset/404.html");
|
||||
}
|
||||
|
||||
},
|
||||
new ModelContribution() {
|
||||
|
||||
@Override
|
||||
public Collection<Class<? extends AbstractEntity>> getModelClasses() {
|
||||
Collection<Class<? extends AbstractEntity>> modelClasses =
|
||||
new HashSet<Class<? extends AbstractEntity>>();
|
||||
modelClasses.add(User.class);
|
||||
return modelClasses;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@ -6,11 +6,8 @@ import java.util.Properties;
|
||||
import com.pmease.commons.bootstrap.Bootstrap;
|
||||
import com.pmease.commons.loader.AbstractPlugin;
|
||||
import com.pmease.commons.loader.AbstractPluginModule;
|
||||
import com.pmease.commons.loader.AppName;
|
||||
import com.pmease.commons.persistence.Hibernate;
|
||||
import com.pmease.commons.security.AbstractRealm;
|
||||
import com.pmease.commons.util.FileUtils;
|
||||
import com.pmease.commons.web.AbstractWicketConfig;
|
||||
|
||||
public class ProductModule extends AbstractPluginModule {
|
||||
|
||||
@ -21,13 +18,6 @@ public class ProductModule extends AbstractPluginModule {
|
||||
Properties hibernateProps = FileUtils.loadProperties(
|
||||
new File(Bootstrap.installDir, "conf/hibernate.properties"));
|
||||
bind(Properties.class).annotatedWith(Hibernate.class).toInstance(hibernateProps);
|
||||
|
||||
bind(AbstractWicketConfig.class).to(WicketConfig.class);
|
||||
bind(AbstractRealm.class).to(UserRealm.class);
|
||||
|
||||
bindConstant().annotatedWith(AppName.class).to(Product.PRODUCT_NAME);
|
||||
|
||||
bind(HelloResource.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
package com.pmease.gitop.web.asset;
|
||||
|
||||
public class AssetLocator {
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user