...
Fork the Sage-Bionetworks SynapseWebClient repository into your own GitHub account: https://help.github.com/articles/fork-a-repo
- Clone the SynapseWebClient project down to your computer:
git clone https://github.com/[YOUR GITHUB NAME]/SynapseWebClient.git
- Change into the proper directory with:
cd SynapseWebClient
git remote add upstream https:
//github
.com
/Sage-Bionetworks/SynapseWebClient
- Bring down origin's develop branch locally:
git checkout -b develop remotes
/origin/develop
- Fetch and merge changes from the Sage Bionetworks repo, which was named upstream:
git fetch upstream
git merge upstream - Follow the instructions on the Platform Bootstrap.
- Now, from an up-to-date clone of Synapse-Repository-Services on your local box:
mvn clean install -Dorg.sagebionetworks.database.drop.schema=true
...
There are several technologies that we are currently utilizing in the portal. The following is a list of primers for each:
- For dependency injection, a an example of Inversion of Control (IoC), we are using a combination of GIN and Guice.
- Guice - is the base IoC technology but it is only fully functional in Server-side. http://code.google.com/docreader/#p=google-guice&s=google-guice&t=Motivation
- Gin - provides basic IoC for GWT client-side code. http://code.google.com/p/google-gin/wiki/GinTutorial
- Guice Servlet - This is a sub-project of Guice that allows dependency inject into Servelets. http://code.google.com/p/google-guice/wiki/ServletModule
- Http REST calls are currently made using Spring's RestTemplate. http://blog.springsource.com/2009/03/27/rest-in-spring-3-resttemplate/
- To create API REST stub-services we are using a combination of two technologies:
- Jersey - provides a quick and easy method for transforming simple POJO's into RESTful web services using annotations. http://jersey.java.net/nonav/documentation/latest/user-guide.html
- Grizzly - The GrizzlyWebContainerFactory makes it simple to start a local web container. http://blog.msbbc.co.uk/2008/11/java-using-jersey-and-grizzly-to-create.html
...
<org.sagebionetworks.authenticationservice.privateendpoint>https://auth-staging.prod.sagebase.org/auth/v1</org.sagebionetworks.authenticationservice.privateendpoint>
<org.sagebionetworks.authenticationservice.publicendpoint>https://auth-staging.prod.sagebase.org/auth/v1</org.sagebionetworks.authenticationservice.publicendpoint>
<org.sagebionetworks.repositoryservice.endpoint>https://repo-staging.prod.sagebase.org/repo/v1</org.sagebionetworks.repositoryservice.endpoint>
<org.sagebionetworks.fileservice.endpoint>https://file-staging.prod.sagebase.org/file/v1</org.sagebionetworks.fileservice.endpoint>
<org.sagebionetworks.searchservice.endpoint>https://search-staging.prod.sagebase.org/</org.sagebionetworks.searchservice.endpoint>
<org.sagebionetworks.portal.endpoint>http://127.0.0.1:8888/Portal.html</org.sagebionetworks.portal.endpoint>
How to point to prod
Set the repository endpoints in your maven settings.xml file by adding the following properties:
<org.sagebionetworks.authenticationservice.privateendpoint>https://auth-staging.prod.sagebase.org/auth/v1</org.sagebionetworks.authenticationservice.privateendpoint>
<org.sagebionetworks.authenticationservice.publicendpoint>https://auth-staging.prod.sagebase.org/auth/v1</org.sagebionetworks.authenticationservice.publicendpoint>
<org.sagebionetworks.repositoryservice.endpoint>https://repo-staging.prod.sagebase.org/repo/v1</org.sagebionetworks.repositoryservice.endpoint>
<org.sagebionetworks.fileservice.endpoint>https://file-staging.prod.sagebase.org/file/v1</org.sagebionetworks.fileservice.endpoint>
<org.sagebionetworks.searchservice.endpoint>https://search-staging.prod.sagebase.org/</org.sagebionetworks.searchservice.endpoint>
<org.sagebionetworks.portal.endpoint>http://127.0.0.1:8888/Portal.html?gwt.codesvr=127.0.0.1:9997</org.sagebionetworks.portal.endpoint>
Pointing to prod is especially useful at transitions between releases, so that there is a stack that you can point at.
Documenting complicated UI in the code
...