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

Servlet level configuration, is this required? #71

Open
7757 opened this issue Sep 24, 2020 · 21 comments
Open

Servlet level configuration, is this required? #71

7757 opened this issue Sep 24, 2020 · 21 comments

Comments

@7757
Copy link

7757 commented Sep 24, 2020

image
Is this configured in Tomcat? What should configdir's value be?

@7757 7757 closed this as completed Sep 24, 2020
@7757
Copy link
Author

7757 commented Sep 24, 2020

In addition, open ncwms and start downloading dependency. Maven always reported errors after the download. It took me 2 days to start, but I still failed to start. I hope you can help me to see it. Thank you very much.
Uploading image.png…

@7757 7757 reopened this Sep 24, 2020
@7757
Copy link
Author

7757 commented Sep 24, 2020

In addition, open ncwms and start downloading dependency. Maven always reported errors after the download. It took me 2 days to start, but I still failed to start. I hope you can help me to see it. Thank you very much.
image

@guygriffiths
Copy link
Collaborator

You can keep the defaults for the servlet level configuration. The only thing you need to configure in Tomcat is an ncWMS-admin role.

I don't know what the Maven error is, but that's a screenshot of an IDE which is not something I could detect errors from. If you post the errors from the command line I may be able to help.

@7757
Copy link
Author

7757 commented Sep 25, 2020

When I ignore the Maven error and start the application, the Tomcat log is as follows:

24-Sep-2020 18:04:18.903 Information [main] org.apache.coyote.AbstractProtocol.init Initialize the protocol processor ["http-nio-8081"]
24-Sep-2020 18:04:18.925 Information [main] org.apache.catalina.startup.Catalina.load server initialized in [423] milliseconds
24-Sep-2020 18:04:18.993 Information [main] org.apache.catalina.core.StandardService.startInternal is starting the service [Catalina]
24-Sep-2020 18:04:18.993 Information [main] org.apache.catalina.core.StandardEngine.startInternal is starting the Servlet engine: [Apache Tomcat/10.0.0-M8]
24-Sep-2020 18:04:19.003 Information [main] org.apache.coyote.AbstractProtocol.start Start protocol processing handle ["http-nio-8081"]
24-Sep-2020 18:04:19.038 Information [main] org.apache.catalina.startup.Catalina.start [109] The server starts in milliseconds
24-Sep-2020 18:04:21.053 Warning [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Use [SHA1PRNG] to create a Session ID generated SecureRandom instance cost [150] millisecond.
24-Sep-2020 18:04:21.093 Information [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR has been scanned for TLD but does not yet contain TLD. Enable debug logging for this logger to get a complete list of JARs scanned but no TLDs found in them. Skipping unnecessary JARs during scanning can shorten startup time and JSP compilation time.
24-Sep-2020 18:04:21.103 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start, check the corresponding container for more details Log file
24-Sep-2020 18:04:21.111 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context[] failed to start due to previous errors
24-Sep-2020 18:04:29.014 Information [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deploy the web application to the directory [D:\Tomcat\apache-tomcat-10.0.0- M8-windows-x64\apache-tomcat-10.0.0-M8\webapps\manager]
24-Sep-2020 18:04:29.074 Information [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Web application directory [D:\Tomcat\apache-tomcat-10.0.0-M8-windows -x64\apache-tomcat-10.0.0-M8\webapps\manager] deployment was completed within [60] milliseconds
24-Sep-2020 18:14:46.137 Information [main] org.apache.catalina.core.StandardServer.await received a valid shutdown command by closing the port. The server instance is being stopped.
24-Sep-2020 18:14:46.137 Information [main] org.apache.coyote.AbstractProtocol.pause ProtocolHandler["http-nio-8081"]
24-Sep-2020 18:14:46.311 Information [main] org.apache.catalina.core.StandardService.stopInternal is stopping the service [Catalina]
24-Sep-2020 18:14:46.318 Information [main] org.apache.coyote.AbstractProtocol.stop is stopping ProtocolHandler ["http-nio-8081"]
24-Sep-2020 18:14:46.358 Information [main] org.apache.coyote.AbstractProtocol.destroy is destroying the protocol processor ["http-nio-8081"]

@7757
Copy link
Author

7757 commented Sep 25, 2020

Thank you for your reply

@7757
Copy link
Author

7757 commented Sep 25, 2020

D:\Tomcat\apache-tomcat-10.0.0-M8-windows-x64\apache-tomcat-10.0.0-M8\bin\catalina.bat run
[2020-09-25 09:28:58,596] Artifact ncWMS:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "C:\Users\Unen_.IntelliJIdea2018.2\system\tomcat\Unnamed_ncWMS_8"
Using CATALINA_HOME: "D:\Tomcat\apache-tomcat-10.0.0-M8-windows-x64\apache-tomcat-10.0.0-M8"
Using CATALINA_TMPDIR: "D:\Tomcat\apache-tomcat-10.0.0-M8-windows-x64\apache-tomcat-10.0.0-M8\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk-11.0.8"
Using CLASSPATH: "D:\Tomcat\apache-tomcat-10.0.0-M8-windows-x64\apache-tomcat-10.0.0-M8\bin\bootstrap.jar;D:\Tomcat\apache-tomcat-10.0. 0-M8-windows-x64\apache-tomcat-10.0.0-M8\bin\tomcat-juli.jar"
Using CATALINA_OPTS: ""
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/ sun.rmi.transport=ALL-UNNAMED
25-Sep-2020 09:28:59.526 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Server. Server version: Apache Tomcat/10.0.0-M8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log server build: Sep 9 2020 11:27:04 UTC
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number (: 10.0.0.0
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Operating system name: Windows 10
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log OS. Version: 10.0
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Java environment variable: C:\Program Files\Java\jdk-11.0.8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Java virtual machine version: 11.0.8+10-LTS
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log JVM. Vendor: Oracle Corporation
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Unen_.IntelliJIdea2018.2\system\tomcat\Unnamed_ncWMS_8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\Tomcat\apache-tomcat-10.0.0-M8-windows-x64\apache-tomcat- 10.0.0-M8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: --add-opens=java.base/java.lang=ALL-UNNAMED
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: --add-opens=java.base/java.io=ALL-UNNAMED
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djava.util.logging.config.file=C:\Users\Unen_.IntelliJIdea2018. 2\system\tomcat\Unnamed_ncWMS_8\conf\logging.properties
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcom.sun.management.jmxremote=
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcom.sun.management.jmxremote.port=1099
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcom.sun.management.jmxremote.ssl=false
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcom.sun.management.jmxremote.authenticate=false
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djava.rmi.server.hostname=127.0.0.1
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djdk.tls.ephemeralDHKeySize=2048
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dignore.endorsed.dirs=
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcatalina.base=C:\Users\Unen_.IntelliJIdea2018.2\system\tomcat\ Unnamed_ncWMS_8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Dcatalina.home=D:\Tomcat\apache-tomcat-10.0.0-M8-windows -x64\apache-tomcat-10.0.0-M8
25-Sep-2020 09:28:59.532 Information [main] org.apache.catalina.startup.VersionLoggerListener.log Command line parameters: -Djava.io.tmpdir=D:\Tomcat\apache-tomcat-10.0.0-M8 -windows-x64\apache-tomcat-10.0.0-M8\temp
25-Sep-2020 09:28:59.536 Information [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Use APR version [1.7.0] to load the Apache Tomcat native library based on APR [1.2.25].
25-Sep-2020 09:28:59.546 Information [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR function: IPv6[true], sendfile[true], accept filters[false], random[true].
25-Sep-2020 09:28:59.556 Information [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1g 21 Apr 2020]
25-Sep-2020 09:28:59.736 Information [main] org.apache.coyote.AbstractProtocol.init Initialize the protocol processor ["http-nio-8081"]
25-Sep-2020 09:28:59.756 Information [main] org.apache.catalina.startup.Catalina.load server initialized in [446] milliseconds
25-Sep-2020 09:28:59.833 Information [main] org.apache.catalina.core.StandardService.startInternal is starting the service [Catalina]
25-Sep-2020 09:28:59.833 Information [main] org.apache.catalina.core.StandardEngine.startInternal is starting the Servlet engine: [Apache Tomcat/10.0.0-M8]
25-Sep-2020 09:28:59.846 Information [main] org.apache.coyote.AbstractProtocol.start Start protocol processing handle ["http-nio-8081"]
25-Sep-2020 09:28:59.876 Information [main] org.apache.catalina.startup.Catalina.start [119] The server will start in milliseconds
Connected to server
[2020-09-25 09:29:00,206] Artifact ncWMS:war exploded: Artifact is being deployed, please wait...
25-Sep-2020 09:29:02.206 Warning [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Use [SHA1PRNG] to create a Session ID generated SecureRandom instance cost [160] millisecond.
25-Sep-2020 09:29:02.251 Information [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR has been scanned for TLD but does not yet contain TLD. Enable debug logging for this logger to get a complete list of JARs scanned but no TLDs found in them. Skipping unnecessary JARs during scanning can shorten startup time and JSP compilation time.
25-Sep-2020 09:29:02.266 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start, check the corresponding container for more details Log file
25-Sep-2020 09:29:02.266 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context[] failed to start due to previous errors
[2020-09-25 09:29:02,286] Artifact ncWMS:war exploded: Error during artifact deployment. See server log for details.
25-Sep-2020 09:29:09.856 Information [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deploy the web application to the directory [D:\Tomcat\apache-tomcat-10.0.0- M8-windows-x64\apache-tomcat-10.0.0-M8\webapps\manager]
25-Sep-2020 09:29:09.953 Information [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Web application directory [D:\Tomcat\apache-tomcat-10.0.0-M8-windows -x64\apache-tomcat-10.0.0-M8\webapps\manager] deployment was completed within [97] milliseconds

@7757
Copy link
Author

7757 commented Sep 25, 2020

25-Sep-2020 09:32:50.036 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Configure application listener [uk.ac.rdg.resc.edal. wms.WmsContextListener] error java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016 ) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2417) at org.apache.catalina.loader.WebappClassLoaderBase. findClass(WebappClassLoaderBase.java:864) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187) at org.apache .catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540) at org.apache.catalina.core.DefaultInstanceManager.loadClas sMaybePrivileged(DefaultInstanceManager.java:521) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4551) at org.apache .catalina.core.StandardContext.startInternal(StandardContext.java:5088) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java :717) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706) at org.apache.catalina.startup. HostConfig.manageApp(HostConfig.java:1727) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java .lang.reflect.Method.invoke(Method.java:566) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor .invoke(DefaultMBeanServerInterceptor.java:809) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456 ) at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566 ) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288) at java.management/com.sun.jmx.interceptor.DefaultMBean ServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl. doOperation(RMIConnectionImpl.java:1466) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at java.management.rmi/javax.management.remote.rmi. RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0( Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/ java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastSer verRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport. java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi. transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport. tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler. run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 628) at java.base/java.lang.Thread.run(Thread.java:834) C aused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java: 1187) ... 54 more
25-Sep-2020 09:32:50.036 Critical [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart installation of the application listener has been skipped due to a previous error

@guygriffiths
Copy link
Collaborator

These are Tomcat logs. You said you were getting Maven (i.e. build) errors. You won't be able to run the application on Tomcat if you cannot build it.

@7757
Copy link
Author

7757 commented Sep 25, 2020

I'm reading the source code as a whole today. I have to say that your code is well written and highly readable. At present, I still have an old problem. Maven has a dependency construction error. Its name is: uk.ac.rdg . resc:edal-cdm : 1.5.0, do you know how to solve it? Thank you very much for your reply and hope to get your help.
Uploading image.png…

@guygriffiths
Copy link
Collaborator

I can't see the image, but edal-cdm is in the central maven repository: https://search.maven.org/search?q=a:edal-cdm
But the EDAL libraries (https://github.com/Reading-eScience-Centre/edal-java/) contain the vast majority of the code for ncWMS. If you want to do any development, you will need to run them alongside ncWMS, and set up the project to resolve the EDAL dependencies from the local projects.

@7757
Copy link
Author

7757 commented Sep 25, 2020

I don't quite understand the meaning of your last sentence, do you want to clone the edal project and run it together?

@7757
Copy link
Author

7757 commented Sep 25, 2020

The image above is a screenshot of my second comment

@guygriffiths
Copy link
Collaborator

If you want to make any meaningful changes, they will be in edal-java, so yes, you will need to have both of them within your development environment.

@7757
Copy link
Author

7757 commented Sep 29, 2020

Hello, I have tried many ways, but I still can't download dependency correctly through Maven
image

@guygriffiths
Copy link
Collaborator

Those artifacts are in the https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all repository, which is configured in cdm/pom.xml, not the main Maven central repository. Can you access them through that URL?

@7757
Copy link
Author

7757 commented Sep 29, 2020

Yes, I can access it, but there is always a dependency that cannot be resolved,This is it: edu.ucar :cdm- core:5.3.2 I also tried to start edal-java, which still has the same dependency that cannot be resolved. In addition, there are some conflicts in POM of ncwms program

@7757
Copy link
Author

7757 commented Sep 29, 2020

This is my seventh day in learning ncwms, I read the source code, but I can't remember, I urgently need to start the program, go through it again, and then apply it to my demo.

@7757
Copy link
Author

7757 commented Sep 29, 2020

Just now I tried to download the source code of ncwms2.4.2 and run it. I started it successfully and downloaded the dependency successfully.

@guygriffiths
Copy link
Collaborator

Yes, I can access it, but there is always a dependency that cannot be resolved,This is it: edu.ucar :cdm- core:5.3.2

That is the artifact which is hosted at the URL I suggested. If you can access it via a browser, then Maven should be able to access it too. The fact that it cannot is unusual, but it is a problem with your Maven configuration, not with ncWMS or EDAL.

@7757
Copy link
Author

7757 commented Sep 29, 2020

Finally, can ncwms be transformed into a springboot project?

@guygriffiths
Copy link
Collaborator

Probably, but it would take a lot of effort and I'm not sure what the advantage would be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants