https://github.com/techservicesillinois/sympa-client
List of functions to connect to symp server and access the services provided by it.
https://github.com/techservicesillinois/sympa-client
Last synced: 2 months ago
JSON representation
List of functions to connect to symp server and access the services provided by it.
- Host: GitHub
- URL: https://github.com/techservicesillinois/sympa-client
- Owner: techservicesillinois
- Created: 2025-04-17T14:36:08.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-01T15:03:28.000Z (12 months ago)
- Last Synced: 2025-07-01T16:25:01.789Z (12 months ago)
- Language: Java
- Size: 147 KB
- Stars: 0
- Watchers: 10
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# sympa-client
List of functions to connect to Sympa server and access the services provided by it.
# Local setup
### Prerequisites
- Java 8 or Java 11 or Java 17+
- Maven
## Dependencies
Download the listed libraries and Set classpath to required libraries to run as a standalone java program.
Or add these libraries to pom file.
| Library | Version | Purpose |
|-------------------------------|---------|-----------------------------------------------------------------------|
| javax.xml.soap-api | 1.4.0 | Manual SOAP message construction, for legacy SOAP services. |
| jaxws-api | 2.3.1 | WSDL-based client & server generation. |
| jakarta.xml.soap-api | 3.0.2 | Fine grain control over SOAP messages. |
| jakarta.jws-api | 3.0.0 | Defines annotations for web services ex: @WebMethod, @WebParam. |
| jakarta.xml.bind-api | 4.0.0 | XML to Java binding. |
| jakarta.xml.ws-api | 4.0.0 | To expose or consume SOAP services. |
| jaxws-ri | 4.0.1 | Distribution bundle. |
| jaxws-rt | 4.0.2 | Engine to run web service. runtime + glue to binding (JAXB) |
| jaxb-runtime | 4.0.5 | Marshalling & unmarshalling Java<->Xml |
## Java 8 Dependencies
Download the listed libraries and Set classpath to required libraries to run as a standalone java program.
Or add these libraries to pom file.
| Library | Version | Purpose |
|-------------------------------|---------|-----------------------------------------------------------------------|
| javax.xml.soap-api | 1.4.0 | Manual SOAP message construction, for legacy SOAP services. |
| jaxws-api | 2.3.1 | WSDL-based client & server generation. |
| jaxws-ri | 4.0.1 | Distribution bundle. |
| jaxws-rt | 4.0.2 | Engine to run web service. runtime + glue to binding (JAXB) |
| FastInfoset | 1.2.18 | Specifies binary encoding format for the XML Information Set |
| jaxb-runtime | 4.0.5 | Marshalling & unmarshalling Java<->Xml |
### Maven Dependencies
```xml
javax.xml.soap
javax.xml.soap-api
1.4.0
javax.xml.ws
jaxws-api
2.3.1
jakarta.xml.soap
jakarta.xml.soap-api
3.0.2
jakarta.jws
jakarta.jws-api
3.0.0
jakarta.xml.bind
jakarta.xml.bind-api
4.0.0
jakarta.xml.ws
jakarta.xml.ws-api
4.0.0
com.sun.xml.ws
jaxws-ri
4.0.1
runtime
pom
com.sun.xml.ws
jaxws-rt
4.0.2
pom
org.glassfish.jaxb
jaxb-runtime
4.0.5
pom
```
### Java 8 Maven Dependencies
```xml
javax.xml.soap
javax.xml.soap-api
1.4.0
javax.xml.ws
jaxws-api
2.3.1
com.sun.xml.ws
jaxws-ri
4.0.1
runtime
pom
com.sun.xml.ws
jaxws-rt
4.0.2
pom
com.sun.xml.fastinfoset
FastInfoset
1.2.18
org.glassfish.jaxb
jaxb-runtime
4.0.5
pom
```
### Using Maven:
```bash
mvn clean install
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.javaclass
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args=parameters"
```
### mvn executable command with params for each sympa service API Calls:
#### info
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Info
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="listName"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.info
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="xxx"
```
* listName - name of the list
#### getList
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.GetList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.GetList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
```
#### createList (All parameters are mandatory)
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.CreateList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="listName subject template description topics"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.CreateList
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB scrumTeamB discussion_list description template"
```
* list - scrumTeamB, Name of the mailing list to create
* subject - scrumTeamB - subject name of the list
* template - discussion_list, the subject of the list
* description - description of the list
* topics - the name of a template found in the create_list_templates directory for this Sympa service
#### add/del with authenticateAndRun
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AuthenticateAndRun
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="service service-parameters"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AuthenticateAndRun
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="add scrumTeamB,pbale@illinois.edu,true,true"
```
* service - add/del - Name of the service
* service-parameters for add - scrumTeamB,xxx@illinois.edu,true,true - Parameters passed to add a user to the list
* service-parameters for del - scrumTeamB,xxx@illinois.edu,true - Parameters passed to del a user to the list
#### add/del with authenticateRemoteAppAndRun
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AuthenticateRemoteAppAndRun
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="appName appPwd vars service service-parameters"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AuthenticateRemoteAppAndRun
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="appName appPwd USER_EMAIL=xxx@illinois.edu
del scrumTeamB,xxx@illinois.edu,true"
```
* appName - Name of the remote application from which user is authenticating
* appPwd - application md5 password
* vars (USER_EMAIL=xxx@illinois.edu) - A comma separated list of variables that can be set by the remote application, If you list USER_EMAIL in this parameter, then the remote application can act as a user. Any other variable such as remote_host can be listed.
* service - del, Name of the service
* service-parameters for add - scrumTeamB,xxx@illinois.edu,true,true - Parameters passed to delete a user to the list
* service-parameters for del - scrumTeamB,xxx@illinois.edu,true - Parameters passed to delete a user to the list
#### getUserEmailByCookie
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.GetUserEmailByCookie
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.GetUserEmailByCookie
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
```
#### subscribe
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Subscribe
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Subscribe
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB"
```
* list - scrumTeamB, Name of the list to be subscribed to
#### review
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Review
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Review
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB"
```
* list - scrumTeamB, Name of the list
#### fullReview
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.FullReviewBusinessCase
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list type"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.FullReviewBusinessCase
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB subscriber"
```
* list - scrumTeamB, Name of the list
* type - permission type to enumerate through the list. values can be (subscriber, owner, editor)
#### add
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AddUserToList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list user gecos quiet"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AddUserToList
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB pbale@illinois.edu true true"
```
* list - list name to which the user is added
* user - user email to be added to list
* gecos - a boolean
* quiet - boolean
#### del
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.DelUserFromList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="parameters"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.DelUserFromList
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB pbale@illinois.edu true"
```
* list - list name from which the user to delete
* user - user email to be deleted from the list
* gecos - a boolean
#### closeList
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.CloseList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.CloseList
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB"
```
* list - scrumTeamB, Name of the list to be closed.
#### complexList
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.ComplexList
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.ComplexList
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="listName"
```
#### which
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Which
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.Which
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
```
#### complexwhich
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.ComlexWhich
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.ComplexWhich
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
```
#### AmI
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AmI
-Dsympa.email=${SYMPA_EMAIL}
-Dsympa.password=${SYMPA_PASSWORD}
-Dsympa.url=${SYMPA_URL}
-Dexec.args="list function user"
```
example usage:
```bash
mvn -q exec:java -Dexec.mainClass=edu.illinois.techservices.sympa.AmI
-Dsympa.email=xxx@email.com
-Dsympa.password=changeme
-Dsympa.url=changeme
-Dexec.args="scrumTeamB subscriber xxx@email.edu"
```
* list - scrumTeamB, Name of the list to be closed.
* function - subscriber/owner/editor
* user - user email