Skip to content
Browse files

runkeeper and evernote connector skeletons - both broken at this poin…

…t (WIP)
  • Loading branch information...
1 parent 422b85d commit de79df5ad96b732e827adf38cd0d60e392361313 @ckemmler ckemmler committed Jan 11, 2013
View
1 .idea/artifacts/fluxtream_web_war_exploded.xml
@@ -183,6 +183,7 @@
<element id="library" level="project" name="Maven: com.sun.jersey:jersey-servlet:1.11" />
<element id="library" level="project" name="Maven: com.sun.jersey:jersey-server:1.11" />
<element id="library" level="project" name="Maven: org.aspectj:aspectjrt:1.5.4" />
+ <element id="library" level="project" name="Maven: org.scribe:scribe:1.3.3" />
<element id="archive" name="fluxtream-connectors-1.0.jar">
<element id="module-output" name="fluxtream-connectors" />
</element>
View
13 .idea/libraries/Maven__junit_junit_4_8_2.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+ <library name="Maven: junit:junit:4.8.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.8.2/junit-4.8.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.8.2/junit-4.8.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.8.2/junit-4.8.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+</component>
View
13 .idea/libraries/Maven__org_scribe_scribe_1_3_3.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+ <library name="Maven: org.scribe:scribe:1.3.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/scribe/scribe/1.3.3/scribe-1.3.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/scribe/scribe/1.3.3/scribe-1.3.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/scribe/scribe/1.3.3/scribe-1.3.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+</component>
View
3 fluxtream-connectors/fluxtream-connectors.iml
@@ -31,7 +31,7 @@
<orderEntry type="library" name="Maven: com.ocpsoft:ocpsoft-pretty-time:1.0.7" level="project" />
<orderEntry type="library" name="Maven: com.postmark:postmark-client:0.3.1" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:1.7.1" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.8.1" level="project" />
+ <orderEntry type="library" name="Maven: junit:junit:4.8.2" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:1.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
@@ -191,6 +191,7 @@
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-servlet:1.11" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-server:1.11" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.5.4" level="project" />
+ <orderEntry type="library" name="Maven: org.scribe:scribe:1.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.easymock:easymock:2.5.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat:tomcat-servlet-api:7.0.6" level="project" />
View
7 fluxtream-connectors/pom.xml
@@ -13,5 +13,10 @@
<artifactId>fluxtream-core</artifactId>
<version>1.0</version>
</dependency>
- </dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.2</version>
+ </dependency>
+ </dependencies>
</project>
View
87 fluxtream-connectors/src/main/java/com/fluxtream/connectors/evernote/EvernoteController.java
@@ -0,0 +1,87 @@
+package com.fluxtream.connectors.evernote;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import com.fluxtream.Configuration;
+import com.fluxtream.auth.AuthHelper;
+import com.fluxtream.connectors.Connector;
+import com.fluxtream.domain.Guest;
+import com.fluxtream.services.GuestService;
+import org.scribe.builder.ServiceBuilder;
+import org.scribe.builder.api.EvernoteApi;
+import org.scribe.model.Token;
+import org.scribe.model.Verifier;
+import org.scribe.oauth.OAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+@Controller
+@RequestMapping(value = "/evernote")
+public class EvernoteController {
+
+ private static final String EVERNOTE_SERVICE = "evernoteService";
+ private static final String EVERNOTE_REQUEST_TOKEN = "evernoteRequestToken";
+
+ @Autowired
+ Configuration env;
+
+ @Autowired
+ GuestService guestService;
+
+
+ @RequestMapping(value = "/token")
+ public String getEvernoteToken(HttpServletRequest request) throws IOException, ServletException {
+ OAuthService service = new ServiceBuilder()
+ .provider(EvernoteApi.class)
+ .apiKey(getConsumerKey())
+ .apiSecret(getConsumerSecret())
+ .callback(env.get("homeBaseUrl") + "evernote/upgradeToken")
+ .build();
+ request.getSession().setAttribute(EVERNOTE_SERVICE, service);
+
+ // Obtain the Authorization URL
+ Token requestToken = service.getRequestToken();
+ request.getSession().setAttribute(EVERNOTE_REQUEST_TOKEN, requestToken);
+ String authorizationUrl = service.getAuthorizationUrl(requestToken);
+
+ return "redirect:" + authorizationUrl;
+ }
+
+ @RequestMapping(value = "/upgradeToken")
+ public String upgradeToken(HttpServletRequest request) throws IOException {
+ final String code = request.getParameter("oauth_verifier");
+ Verifier verifier = new Verifier(code);
+ OAuthService service = (OAuthService)request.getSession().getAttribute(EVERNOTE_SERVICE);
+
+ Token requestToken = (Token)request.getSession().getAttribute(EVERNOTE_REQUEST_TOKEN);
+ Token accessToken = service.getAccessToken(requestToken, verifier);
+
+ final String token = accessToken.getToken();
+ final String secret = accessToken.getSecret();
+
+ Guest guest = AuthHelper.getGuest();
+
+ guestService.setApiKeyAttribute(guest.getId(), Connector.getConnector("evernote"), "accessToken", token);
+ guestService.setApiKeyAttribute(guest.getId(), Connector.getConnector("evernote"), "tokenSecret", secret);
+
+ request.getSession().removeAttribute(EVERNOTE_REQUEST_TOKEN);
+ request.getSession().removeAttribute(EVERNOTE_SERVICE);
+ return "redirect:/app/from/evernote";
+ }
+
+ String getConsumerKey() {
+ return env.get("evernoteConsumerKey");
+ }
+
+ String getConsumerSecret() {
+ return env.get("evernoteConsumerSecret");
+ }
+
+
+}
View
22 fluxtream-connectors/src/main/java/com/fluxtream/connectors/evernote/EvernoteUpdater.java
@@ -0,0 +1,22 @@
+package com.fluxtream.connectors.evernote;
+
+import com.fluxtream.connectors.annotations.Updater;
+import com.fluxtream.connectors.updaters.AbstractUpdater;
+import com.fluxtream.connectors.updaters.UpdateInfo;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+@Updater(prettyName = "Evernote", value = 17, objectTypes ={})
+public class EvernoteUpdater extends AbstractUpdater {
+
+ @Override
+ protected void updateConnectorDataHistory(final UpdateInfo updateInfo) throws Exception {
+ }
+
+ @Override
+ protected void updateConnectorData(final UpdateInfo updateInfo) throws Exception {
+ }
+
+}
View
30 fluxtream-connectors/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperApi.java
@@ -0,0 +1,30 @@
+package com.fluxtream.connectors.runkeeper;
+
+import org.scribe.builder.api.DefaultApi20;
+import org.scribe.model.OAuthConfig;
+import org.scribe.utils.OAuthEncoder;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+public class RunKeeperApi extends DefaultApi20 {
+
+ private static final String AUTHORIZATION_URL = "https://runkeeper.com/apps/authorize?client_id=%s&response_type=code&redirect_uri=%s";
+
+ @Override
+ public String getAccessTokenEndpoint() {
+ return "https://runkeeper.com/apps/token?grant_type=authorization_code";
+ }
+
+ @Override
+ public String getAuthorizationUrl(final OAuthConfig config) {
+ return String.format(AUTHORIZATION_URL, config.getApiKey(), OAuthEncoder.encode(config.getCallback()));
+ }
+
+ //@Override
+ //public AccessTokenExtractor getAccessTokenExtractor()
+ //{
+ // return new JsonTokenExtractor();
+ //}
+}
View
86 ...ream-connectors/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperController.java
@@ -0,0 +1,86 @@
+package com.fluxtream.connectors.runkeeper;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import com.fluxtream.Configuration;
+import com.fluxtream.auth.AuthHelper;
+import com.fluxtream.connectors.Connector;
+import com.fluxtream.domain.Guest;
+import com.fluxtream.services.GuestService;
+import net.sf.json.JSONObject;
+import org.scribe.builder.ServiceBuilder;
+import org.scribe.model.Token;
+import org.scribe.model.Verifier;
+import org.scribe.oauth.OAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+@Controller
+@RequestMapping(value = "/runkeeper")
+public class RunKeeperController {
+
+ private static final String RUNKEEPER_SERVICE = "runkeeperService";
+
+ @Autowired
+ Configuration env;
+
+ @Autowired
+ GuestService guestService;
+
+ private static final Token EMPTY_TOKEN = null;
+
+ @RequestMapping(value = "/token")
+ public String getRunkeeperToken(HttpServletRequest request) throws IOException, ServletException {
+
+ OAuthService service = new ServiceBuilder()
+ .provider(RunKeeperApi.class)
+ .apiKey(getConsumerKey())
+ .apiSecret(getConsumerSecret())
+ .callback(env.get("homeBaseUrl") + "runkeeper/upgradeToken")
+ .build();
+ request.getSession().setAttribute(RUNKEEPER_SERVICE, service);
+
+ // Obtain the Authorization URL
+ String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);
+
+ return "redirect:" + authorizationUrl;
+ }
+
+ @RequestMapping(value = "/upgradeToken")
+ public String upgradeToken(HttpServletRequest request) throws IOException {
+ final String code = request.getParameter("code");
+ Verifier verifier = new Verifier(code);
+ OAuthService service = (OAuthService)request.getSession().getAttribute(RUNKEEPER_SERVICE);
+
+ Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);
+ final String token = accessToken.getToken();
+ JSONObject json = JSONObject.fromObject(token);
+
+ String access_token = json.getString("access_token");
+ boolean delete_health = json.getBoolean("delete_health");
+
+ Guest guest = AuthHelper.getGuest();
+
+ guestService.setApiKeyAttribute(guest.getId(), Connector.getConnector("runkeeper"), "accessToken", access_token);
+ guestService.setApiKeyAttribute(guest.getId(), Connector.getConnector("runkeeper"), "deleteHealth", String.valueOf(delete_health));
+
+ request.getSession().removeAttribute(RUNKEEPER_SERVICE);
+ return "redirect:/app/from/runkeeper";
+ }
+
+ String getConsumerKey() {
+ return env.get("runkeeperConsumerKey");
+ }
+
+ String getConsumerSecret() {
+ return env.get("runkeeperConsumerSecret");
+ }
+
+
+}
View
69 ...-connectors/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperControllerTest.java
@@ -0,0 +1,69 @@
+package com.fluxtream.connectors.runkeeper;
+
+import java.util.Scanner;
+import org.junit.Test;
+import org.scribe.builder.ServiceBuilder;
+import org.scribe.model.OAuthRequest;
+import org.scribe.model.Response;
+import org.scribe.model.Token;
+import org.scribe.model.Verb;
+import org.scribe.model.Verifier;
+import org.scribe.oauth.OAuthService;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+public class RunKeeperControllerTest {
+
+ private static final String PROTECTED_RESOURCE_URL = "https://api.foursquare.com/v2/users/self/friends?oauth_token=";
+ private static final Token EMPTY_TOKEN = null;
+
+ @Test
+ public void testRunkeeperOAuth() {
+ String apiKey = "07dd9a9380ae43c5a55dfa1dd4d851f5";
+ String apiSecret = "fe91b398c4d241efab1095bdfa610138";
+ OAuthService service = new ServiceBuilder()
+ .provider(RunKeeperApi.class)
+ .apiKey(apiKey)
+ .apiSecret(apiSecret)
+ .callback("http://localhost:8082/runkeeper/upgradeToken")
+ .build();
+ Scanner in = new Scanner(System.in);
+
+ System.out.println("=== RunKeeper's OAuth Workflow ===");
+ System.out.println();
+
+ // Obtain the Authorization URL
+ System.out.println("Fetching the Authorization URL...");
+ String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);
+ System.out.println("Got the Authorization URL!");
+ System.out.println("Now go and authorize Scribe here:");
+ System.out.println(authorizationUrl);
+ System.out.println("And paste the authorization code here");
+ System.out.print(">>");
+ Verifier verifier = new Verifier(in.nextLine());
+ System.out.println();
+
+ // Trade the Request Token and Verfier for the Access Token
+ System.out.println("Trading the Request Token for an Access Token...");
+ Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);
+ System.out.println("Got the Access Token!");
+ System.out.println("(if your curious it looks like this: " + accessToken + " )");
+ System.out.println();
+
+ // Now let's go and ask for a protected resource!
+ System.out.println("Now we're going to access a protected resource...");
+ OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL + accessToken.getToken());
+ service.signRequest(accessToken, request);
+ Response response = request.send();
+ System.out.println("Got it! Lets see what we found...");
+ System.out.println();
+ System.out.println(response.getCode());
+ System.out.println(response.getBody());
+
+ System.out.println();
+ System.out.println("Thats it man! Go and build something awesome with Scribe! :)");
+ }
+
+}
View
18 ...s/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperFitnessActivityExtractor.java
@@ -0,0 +1,18 @@
+package com.fluxtream.connectors.runkeeper;
+
+import java.util.List;
+import com.fluxtream.ApiData;
+import com.fluxtream.connectors.ObjectType;
+import com.fluxtream.domain.AbstractFacet;
+import com.fluxtream.facets.extractors.AbstractFacetExtractor;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+public class RunKeeperFitnessActivityExtractor extends AbstractFacetExtractor {
+ @Override
+ public List<AbstractFacet> extractFacets(final ApiData apiData, final ObjectType objectType) throws Exception {
+ return null;
+ }
+}
View
17 ...ctors/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperFitnessActivityFacet.java
@@ -0,0 +1,17 @@
+package com.fluxtream.connectors.runkeeper;
+
+import javax.persistence.Entity;
+import com.fluxtream.connectors.annotations.ObjectTypeSpec;
+import com.fluxtream.domain.AbstractFacet;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+@Entity(name="Facet_RunKeeperFitnessActivity")
+@ObjectTypeSpec(name = "fitnessActivity", value = 1, extractor=RunKeeperFitnessActivityExtractor.class, prettyname = "Fitness Activity", isDateBased = true)
+public class RunKeeperFitnessActivityFacet extends AbstractFacet {
+ @Override
+ protected void makeFullTextIndexable() {
+ }
+}
View
29 fluxtream-connectors/src/main/java/com/fluxtream/connectors/runkeeper/RunKeeperUpdater.java
@@ -0,0 +1,29 @@
+package com.fluxtream.connectors.runkeeper;
+
+import com.fluxtream.connectors.Connector;
+import com.fluxtream.connectors.annotations.Updater;
+import com.fluxtream.connectors.updaters.AbstractUpdater;
+import com.fluxtream.connectors.updaters.UpdateInfo;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+/**
+ *
+ * @author Candide Kemmler (candide@fluxtream.com)
+ */
+@Component
+@Updater(prettyName = "RunKeeper", value = 12, updateStrategyType = Connector.UpdateStrategyType.INCREMENTAL,
+ objectTypes = {RunKeeperFitnessActivityFacet.class})
+public class RunKeeperUpdater extends AbstractUpdater {
+
+ Logger logger = Logger.getLogger(RunKeeperUpdater.class);
+
+ @Override
+ protected void updateConnectorDataHistory(final UpdateInfo updateInfo) throws Exception {
+
+ }
+
+ @Override
+ protected void updateConnectorData(final UpdateInfo updateInfo) throws Exception {
+ }
+}
View
1 fluxtream-core/fluxtream-core.iml
@@ -197,6 +197,7 @@
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-servlet:1.11" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-server:1.11" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.5.4" level="project" />
+ <orderEntry type="library" name="Maven: org.scribe:scribe:1.3.3" level="project" />
</component>
</module>
View
10 fluxtream-core/src/main/java/com/fluxtream/services/impl/SystemServiceImpl.java
@@ -130,6 +130,16 @@ private void initializeConnectorList() {
res.getString("fluxtream_capture"),
"ajax:/fluxtream_capture/about",
Connector.getConnector("fluxtream_capture"), order++, true));
+ em.persist(new ConnectorInfo("RunKeeper",
+ "/images/connectors/connector-runkeeper.jpg",
+ res.getString("runkeeper"),
+ "/runkeeper/token",
+ Connector.getConnector("runkeeper"), order++, true));
+ em.persist(new ConnectorInfo("Evernote",
+ "/images/connectors/connector-evernote.jpg",
+ res.getString("evernote"),
+ "/evernote/token",
+ Connector.getConnector("evernote"), order, true));
}
private String singlyAuthorizeUrl(final String service) {
View
6 fluxtream-web/fluxtream-web.iml
@@ -18,11 +18,6 @@
<webroots>
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
- <sourceRoots>
- <root url="file://$MODULE_DIR$/target/generated-sources/annotations" />
- <root url="file://$MODULE_DIR$/src/main/java" />
- <root url="file://$MODULE_DIR$/src/main/resources" />
- </sourceRoots>
</configuration>
</facet>
<facet type="javaeeApplication" name="javaEEApplication">
@@ -230,6 +225,7 @@
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-servlet:1.11" level="project" />
<orderEntry type="library" name="Maven: com.sun.jersey:jersey-server:1.11" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.5.4" level="project" />
+ <orderEntry type="library" name="Maven: org.scribe:scribe:1.3.3" level="project" />
<orderEntry type="module" module-name="fluxtream-connectors" />
<orderEntry type="library" name="Maven: com.sun.jersey.contribs:jersey-multipart:1.11" level="project" />
<orderEntry type="library" name="Maven: org.jvnet:mimepull:1.6" level="project" />
View
15 fluxtream-web/src/main/resources/messages/connectors.properties
@@ -2,17 +2,18 @@ toodledo=An incredibly powerful to-do list
flickr=Show off your favorite photos and videos to the world, securely and privately show content to your friends and family, or blog the photos and videos you take with a cameraphone.
google_latitude=Passively collect geolocation informations. Take your mobile and you will know precisely where you have been.
twitter=Twitter is an online social networking and microblogging service that enables its users to send and read text-based posts of up to 140 characters, informally known as "tweets".
-lastfm=Last.fm lets you effortlessly keep a record of what you listen to from any player. Based on your taste, Last.fm recommends you more music and concerts!
+lastfm=Last.fm lets you effortlessly keep a record of what you listen to from any player.
picasa=Fast and easy photo sharing from Google. Share with friends and family, or explore public photos.
sms_backup=Automatically backs up SMS messages & call history to your Gmail account.
zeo=Take control of your sleep tonight. Zeo Sleep Manager\u2122 is a comprehensive system to help you improve your sleep.
-withings=Smart and connected objects for a better lifestyle. Discover the first wifi body scale and blood pressure monitor connected to iOS Devices (iPhone, iPad and iPod Touch) and the Baby Monitor.
+withings=Smart and connected objects for a better lifestyle. Discover the first wifi body scale and blood pressure monitor connected to iOS Devices.
fitbit=A smart little sensor that tracks your everyday steps, stairs climbed, calories burned, and more, motivating you throughout the day.
google_calendar=Organize your schedule and share events with friends. With Google's free online calendar, it's easy to keep track of life's important events all in one place.
-bodytrack=Open source tools to capture and explore data on activities, environmental and food inputs, and health status over time.
bodymedia=An armband that tracks activity, steps, and sleep. Uses accelerometers, GSR, and temperature flux to calculate caloric expenditure much more accurately than other activity monitors.
openpath=A nice web and mobile app that lets you track your location, even when you are offline.
-quantifiedmind=Quantified Mind is a site for you to measure your cognitive performance and experiment with what makes you smarter
-github=Online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing
-mymee=An iPhone and Android app that makes it fun and easy to log all your observations
-fluxtream_capture=The Fluxtream Capture connector is automatically added the first time you upload data from any Fluxtream Capture app.
+quantifiedmind=Quantified Mind is a site for you to measure your cognitive performance and experiment with what makes you smarter.
+github=Online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing.
+mymee=An iPhone and Android app that makes it fun and easy to log all your observations.
+fluxtream_capture=The Fluxtream Capture connector is automatically added the first time you upload data from any Fluxtream Capture app.
+runkeeper=Track your runs, bike rides and workouts and share your progress with your friends.
+evernote=Multi-platform notes taking app that lets you remember everything.
View
1 maven/install.sh
@@ -16,3 +16,4 @@ mvn install:install-file -Dfile=client-1.0.jar -DgroupId=gdata -DartifactId=cli
mvn install:install-file -Dfile=activation-1.0.2.jar -DgroupId=javax.activation -DartifactId=activation -Dversion=1.0.2 -Dpackaging=jar
mvn install:install-file -Dfile=jstl-1.2.jar -DgroupId=javax.servlet.jstl -DartifactId=jstl -Dversion=1.2 -Dpackaging=jar
mvn install:install-file -Dfile=SunriseSunsetCalculator-1.0-SNAPSHOT.jar -DgroupId=com.luckycatlabs.sotoo -DartifactId=SunriseSunsetCalculator -Dversion=1.0-SNAPSHOT -Dpackaging=jar
+mvn install:install-file -Dfile=scribe-1.3.3.jar -DgroupId=org.scribe -DartifactId=scribe -Dversion=1.3.3 -Dpackaging=jar
View
5 pom.xml
@@ -608,6 +608,11 @@
<artifactId>aspectjrt</artifactId>
<version>1.5.4</version>
</dependency>
+ <dependency>
+ <groupId>org.scribe</groupId>
+ <artifactId>scribe</artifactId>
+ <version>1.3.3</version>
+ </dependency>
</dependencies>
<properties>
<spring.version>3.1.0.RELEASE</spring.version>

0 comments on commit de79df5

Please sign in to comment.
Something went wrong with that request. Please try again.