setapplicationname google example java maven google-api osgi aem

java - example - Google Client API en OSGI



oauth 2.0 android example (1)

Así que finalmente lo tengo funcionando. He publicado el código en caso de que ayude a otros, o tal vez para encontrar mejores formas de hacerlo.

Las dependencias ...

<!-- Embedded Google Client API JAR''s --> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client-java6</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client-jackson2</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client-gson</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-java6</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>org.apache.servicemix.bundles</groupId> <artifactId>org.apache.servicemix.bundles.avalon-framework</artifactId> <version>4.3.1_1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.jms</artifactId> <version>3.2-b06</version> </dependency>

la configuración maven-bundle-plugin

<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-Activator>com.r2i.michigan.lsa.services.osgi.Activator</Bundle-Activator> <Embed-Dependency> *;scope=compile|runtime, </Embed-Dependency> <Embed-Transitive>true</Embed-Transitive> <Import-Package> sun.misc;resolution:=optional, com.sun.jdmk.comm;resolution:=optional,* </Import-Package> <Sling-Test-Regexp>.*Test</Sling-Test-Regexp> </instructions> </configuration> </plugin>

Tengo problemas para proporcionar las dependencias necesarias para OAuth Client Library para Java dentro de un marco de aplicación OSGI (AEM).

https://developers.google.com/api-client-library/java/google-oauth-java-client/setup

No quiero convertir manualmente cada dependencia a un paquete OSGI, BND. Así que estoy usando maven-bundle-plugin para insertarlos en mi paquete. Mi proceso hasta ahora ha sido ver el error.log para ver los mensajes sobre ''Restricción no resuelta en paquete''. A continuación, busque el paquete que falta, agregue la dependencia de maven y agréguelo a la sección de Dependencia de inserción. Eso pareció funcionar para google-http-client y google-oauth-client. GSON (o Jackson2) no se puede resolver de esta manera, y obtengo el mensaje ...

Actualizar:

Como Neil señaló, necesitaba incrustar una dependencia diferente para GSON (google-http-client-gson). ¡Gracias!

Sin embargo, todavía no se puede implementar, y actualmente informa este mensaje ...

org.osgi.framework.BundleException: restricción no resuelta en bundle com.mypackage.services [394]: no se puede resolver 394.130: requisito faltante [394.130] osgi.wiring.package; (osgi.wiring.package = sun.misc)

Parece que otros han tenido problemas con esto, y posiblemente relacionado con la guayaba en OSGi. He intentado hacer que sun.misc sea opcional.

<Import-Package>sun.misc.*;resolution:=optional,*</Import-Package>

Pero el paquete no se inicia y proporciona el mensaje de error ''Restricción no resuelta en paquete''. En este punto mis preguntas son ...

¿Alguien ha tenido éxito en la implementación de Google CLient API para Java en OSGI? ¿Si es así, cómo?

Alternativamente. Agradecería las sugerencias sobre este paquete sun.misc y su posible relación con el uso de la guayaba en OSGI.

mi pom.xml

<dependencies> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client-java6</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client-jackson2</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.http-client</groupId> <artifactId>google-http-client-gson</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-java6</artifactId> <version>1.20.0</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.jms</artifactId> <version>3.2-b06</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.1</version> </dependency> <dependency> <groupId>org.apache.servicemix.bundles</groupId> <artifactId>org.apache.servicemix.bundles.ehcache</artifactId> <version>2.6.11_1</version> </dependency> <dependency> <groupId>org.apache.servicemix.bundles</groupId> <artifactId>org.apache.servicemix.bundles.avalon-framework</artifactId> <version>4.3.1_1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-Activator>com.mypackage.services.osgi.Activator</Bundle-Activator> <Embed-Dependency> google-api-client;scope=compile, google-oauth-client;scope=compile, google-http-client;scope=compile, google-api-client-gson;scope=compile, gson;scope=compile, httpclient;scope=compile, </Embed-Dependency> <Sling-Test-Regexp>.*Test</Sling-Test-Regexp> </instructions> </configuration> </plugin>

Porciones del MANIFEST.MF

Embed-Dependency: google-api-client;scope=compile,google-api-client-java 6;scope=compile,google-oauth-client;scope=compile,google-oauth-client-j ava6;scope=compile,google-http-client;scope=compile,google-http-client- gson;scope=compile,google-http-client-jackson2;scope=compile,gson;scope =compile,guava;scope=compile,httpclient;scope=compile,httpcore;scope=co mpile, Embedded-Artifacts: google-api-client-1.20.0.jar;g="com.google.api-clien t";a="google-api-client";v="1.20.0",google-api-client-java6-1.20.0.jar; g="com.google.api-client";a="google-api-client-java6";v="1.20.0",google -oauth-client-1.20.0.jar;g="com.google.oauth-client";a="google-oauth-cl ient";v="1.20.0",google-oauth-client-java6-1.20.0.jar;g="com.google.oau th-client";a="google-oauth-client-java6";v="1.20.0",google-http-client- 1.20.0.jar;g="com.google.http-client";a="google-http-client";v="1.20.0" ,google-http-client-gson-1.20.0.jar;g="com.google.http-client";a="googl e-http-client-gson";v="1.20.0",google-http-client-jackson2-1.20.0.jar;g ="com.google.http-client";a="google-http-client-jackson2";v="1.20.0",gs on-2.3.jar;g="com.google.code.gson";a="gson";v="2.3",guava-18.0.jar;g=" com.google.guava";a="guava";v="18.0",httpclient-4.5.jar;g="org.apache.h ttpcomponents";a="httpclient";v="4.5",httpcore-4.4.1.jar;g="org.apache. httpcomponents";a="httpcore";v="4.4.1" Import-Package: com.adobe.cq.sightly;version="[2.2,3)",com.day.cq.common s;version="[5.7,6)",com.day.cq.commons.date;version="[5.7,6)",com.day.c q.dam.api;version="[1.2,2)",com.day.cq.search;version="[1.1,2)",com.day .cq.search.result;version="[1.1,2)",com.day.cq.tagging;version="[5.7,6) ",com.day.cq.wcm.api;version="[1.2,2)",com.day.cq.wcm.api.components;ve rsion="[5.7,6)",com.day.cq.wcm.commons;version="[5.7,6)",com.day.cq.wcm .foundation;version="[5.7,6)",com.fasterxml.jackson.core;version="[2.1, 3)",javax.annotation,javax.crypto,javax.crypto.spec,javax.jcr;version=" [2.0,3)",javax.naming,javax.naming.directory,javax.naming.ldap,javax.ne t,javax.net.ssl,javax.security.auth.x500,javax.servlet,javax.servlet.ht tp,javax.xml.parsers,org.apache.commons.codec.binary,org.apache.commons .httpclient;version="[3.1,4)",org.apache.commons.httpclient.methods;ver sion="[3.1,4)",org.apache.commons.httpclient.params;version="[3.1,4)",o rg.apache.commons.io;version="[1.4,2)",org.apache.commons.logging;versi on="[1.1,2)",org.apache.sling.api;version="[2.3,3)",org.apache.sling.ap i.request;version="[2.4,3)",org.apache.sling.api.resource;version="[2.5 ,3)",org.apache.sling.api.servlets;version="[2.1,3)",org.apache.sling.a pi.wrappers;version="[2.5,3)",org.apache.sling.jcr.api;version="[2.2,3) ",org.apache.sling.junit.annotations;version="[1.0,2)",org.ietf.jgss,or g.junit;version="[4.8,5)",org.junit.runner;version="[4.8,5)",org.osgi.f ramework;version="[1.5,2)",org.osgi.service.component;version="[1.1,2)" ,org.slf4j;version="[1.6,2)",org.w3c.dom,org.xml.sax,sun.misc