This problem doesn't occur on master and 2.x which use pax-logging 2.1.0 too
On 07.09.2014 00:25, Krzysztof Sobkowiak wrote: > I could build the Karaf Assemblies after removing the m2 repository. > But similar problem still occurs while building Assembly Archetype -- > warning about missing LightweightHttpWagon and following error > > [INFO] [ERROR] Failed to execute goal on project assembly: Could not > resolve dependencies for project > archetype.it:assembly:karaf-assembly:0.1-SNAPSHOT: Failed to collect > dependencies for > [org.apache.karaf.features:framework:kar:3.0.2-SNAPSHOT (compile), > org.apache.karaf.features:standard:xml:features:3.0.2-SNAPSHOT > (runtime)]: Failed to read artifact descriptor for > org.apache.aries.blueprint:org.apache.aries.blueprint.core:jar:1.2.0: > Could not transfer artifact > org.apache.aries.blueprint:org.apache.aries.blueprint.core:pom:1.2.0 > from/to central (http://repo.maven.apache.org/maven2): No connector > available to access repository central > (http://repo.maven.apache.org/maven2) of type default using the > available factories WagonRepositoryConnectorFactory -> [Help 1] > [INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed > to execute goal on project assembly: Could not resolve dependencies > for project archetype.it:assembly:karaf-assembly:0.1-SNAPSHOT: Failed > to collect dependencies for > [org.apache.karaf.features:framework:kar:3.0.2-SNAPSHOT (compile), > org.apache.karaf.features:standard:xml:features:3.0.2-SNAPSHOT (runtime)] > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:210) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:117) > [INFO] at > org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:258) > [INFO] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:201) > [INFO] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) > [INFO] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) > [INFO] at > org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) > [INFO] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) > [INFO] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) > [INFO] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) > [INFO] at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) > [INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [INFO] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > [INFO] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > [INFO] at java.lang.reflect.Method.invoke(Method.java:606) > [INFO] at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) > [INFO] at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > [INFO] at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > [INFO] at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) > [INFO] Caused by: > org.apache.maven.project.DependencyResolutionException: Could not > resolve dependencies for project > archetype.it:assembly:karaf-assembly:0.1-SNAPSHOT: Failed to collect > dependencies for > [org.apache.karaf.features:framework:kar:3.0.2-SNAPSHOT (compile), > org.apache.karaf.features:standard:xml:features:3.0.2-SNAPSHOT (runtime)] > [INFO] at > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:158) > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:185) > [INFO] ... 22 more > [INFO] Caused by: > org.sonatype.aether.collection.DependencyCollectionException: Failed > to collect dependencies for > [org.apache.karaf.features:framework:kar:3.0.2-SNAPSHOT (compile), > org.apache.karaf.features:standard:xml:features:3.0.2-SNAPSHOT (runtime)] > [INFO] at > org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:258) > [INFO] at > org.sonatype.aether.impl.internal.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:308) > [INFO] at > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:150) > [INFO] ... 23 more > [INFO] Caused by: > org.sonatype.aether.resolution.ArtifactDescriptorException: Failed to > read artifact descriptor for > org.apache.aries.blueprint:org.apache.aries.blueprint.core:jar:1.2.0 > [INFO] at > org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:296) > [INFO] at > org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186) > [INFO] at > org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:412) > [INFO] at > org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:544) > [INFO] at > org.sonatype.aether.impl.internal.DefaultDependencyCollector.process(DefaultDependencyCollector.java:544) > [INFO] at > org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:240) > [INFO] ... 25 more > [INFO] Caused by: > org.sonatype.aether.resolution.ArtifactResolutionException: Could not > transfer artifact > org.apache.aries.blueprint:org.apache.aries.blueprint.core:pom:1.2.0 > from/to central (http://repo.maven.apache.org/maven2): No connector > available to access repository central > (http://repo.maven.apache.org/maven2) of type default using the > available factories WagonRepositoryConnectorFactory > [INFO] at > org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538) > [INFO] at > org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) > [INFO] at > org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) > [INFO] at > org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281) > [INFO] ... 30 more > [INFO] Caused by: > org.sonatype.aether.transfer.ArtifactTransferException: Could not > transfer artifact > org.apache.aries.blueprint:org.apache.aries.blueprint.core:pom:1.2.0 > from/to central (http://repo.maven.apache.org/maven2): No connector > available to access repository central > (http://repo.maven.apache.org/maven2) of type default using the > available factories WagonRepositoryConnectorFactory > [INFO] at > org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:468) > [INFO] ... 33 more > [INFO] Caused by: > org.sonatype.aether.transfer.NoRepositoryConnectorException: No > connector available to access repository central > (http://repo.maven.apache.org/maven2) of type default using the > available factories WagonRepositoryConnectorFactory > [INFO] at > org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:400) > [INFO] at > org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) > [INFO] ... 33 more > [INFO] [ERROR] > [INFO] [ERROR] Re-run Maven using the -X switch to enable full debug > logging. > [INFO] [ERROR] > [INFO] [ERROR] For more information about the errors and possible > solutions, please read the following articles: > [INFO] [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException > [INFO] Post-archetype-generation invoker exit code: 1 > > Building ServiceMix master (based on Karaf 3.x) ends with error too -- > missing LightweightHttpWagon and following error > > > [ERROR] Failed to execute goal > org.apache.karaf.tooling:karaf-maven-plugin:3.0.2-SNAPSHOT:features-add-to-repository > (add-features-to-repo) on project apache-servicemix: Error populating > repository: Can't resolve artifact > org.apache.activemq:activemq-karaf:xml:features:5.10.0: Could not > transfer artifact > org.apache.activemq:activemq-karaf:xml:features:5.10.0 from/to > servicemix (http://svn.apache.org/repos/asf/servicemix/m2-repo): No > connector available to access repository servicemix > (http://svn.apache.org/repos/asf/servicemix/m2-repo) of type default > using the available factories WagonRepositoryConnectorFactory > [ERROR] org.apache.activemq:activemq-karaf:xml:5.10.0 > > Has this problem been introduced with upgrade of pax-url? > > Best regards > Krzysztof > > > > On 06.09.2014 23:17, Krzysztof Sobkowiak wrote: >> Hi >> >> This error occurs when I'm trying to build with Maven 3.2.3 or 3.1.1. >> But I'm trying to build Karaf 3.x using Maven 3.0.5. In both cases >> I'm getting following warning: >> >> [INFO] --- karaf-maven-plugin:3.0.2-SNAPSHOT:install-kars >> (process-resources) @ apache-karaf-minimal --- >> [INFO] Installing feature >> file:/home/kso/work/projects/asf/karaf-3.0.x/assemblies/apache-karaf-minimal/target/assembly/system/org/apache/karaf/features/framework/3.0.2-SNAPSHOT/framework-3.0.2-SNAPSHOT-features.xml >> to system and startup.properties >> [INFO] Adding feature repository to system: >> mvn:org.apache.karaf.features/standard/3.0.2-SNAPSHOT/xml/features >> Sep 06, 2014 10:57:36 PM org.sonatype.guice.bean.reflect.Logs$JULSink >> warn >> WARNING: Error injecting: >> org.apache.maven.wagon.providers.http.LightweightHttpWagon >> java.lang.TypeNotPresentException: Type >> org.apache.maven.wagon.providers.http.LightweightHttpWagon not present >> at >> org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:105) >> at >> org.sonatype.guice.bean.reflect.NamedClass.load(NamedClass.java:45) >> at >> org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45) >> at >> com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84) >> at >> com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52) >> at >> com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70) >> at >> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100) >> at >> org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138) >> at >> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108) >> at >> com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55) >> at >> com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68) >> at >> com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45) >> at >> com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965) >> at >> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011) >> at >> com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961) >> at com.google.inject.Scopes$1$1.get(Scopes.java:59) >> at >> org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83) >> at >> org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49) >> at >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253) >> at >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245) >> at >> org.sonatype.aether.connector.wagon.PlexusWagonProvider.lookup(PlexusWagonProvider.java:32) >> at >> org.sonatype.aether.connector.wagon.WagonRepositoryConnector.lookupWagon(WagonRepositoryConnector.java:282) >> at >> org.sonatype.aether.connector.wagon.WagonRepositoryConnector.<init>(WagonRepositoryConnector.java:154) >> at >> org.sonatype.aether.connector.wagon.WagonRepositoryConnectorFactory.newInstance(WagonRepositoryConnectorFactory.java:142) >> at >> org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:346) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) >> at >> org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:286) >> at >> org.apache.karaf.tooling.features.Dependency30Helper.resolveById(Dependency30Helper.java:314) >> at >> org.apache.karaf.tooling.features.InstallKarsMojo$OfflineFeaturesService.addRepository(InstallKarsMojo.java:346) >> at >> org.apache.karaf.tooling.features.InstallKarsMojo.execute(InstallKarsMojo.java:232) >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) >> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) >> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >> Caused by: java.lang.ClassNotFoundException: >> org.apache.maven.wagon.providers.http.LightweightHttpWagon >> at >> org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) >> at >> org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) >> at >> org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) >> at >> org.sonatype.guice.bean.reflect.URLClassSpace.loadClass(URLClassSpace.java:101) >> ... 52 more >> >> Next I'm getting following warning >> >> [WARNING] Could not resolve >> org.ops4j.pax.web:pax-web-features:xml:features:3.1.2 >> org.sonatype.aether.resolution.ArtifactResolutionException: Could not >> transfer artifact >> org.ops4j.pax.web:pax-web-features:xml:features:3.1.2 from/to >> servicemix (http://svn.apache.org/repos/asf/servicemix/m2-repo): No >> connector available to access repository servicemix >> (http://svn.apache.org/repos/asf/servicemix/m2-repo) of type default >> using the available factories WagonRepositoryConnectorFactory >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:538) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) >> at >> org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:286) >> at >> org.apache.karaf.tooling.features.Dependency30Helper.resolveById(Dependency30Helper.java:314) >> at >> org.apache.karaf.tooling.features.InstallKarsMojo$OfflineFeaturesService.addRepository(InstallKarsMojo.java:346) >> at >> org.apache.karaf.tooling.features.InstallKarsMojo.execute(InstallKarsMojo.java:232) >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) >> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) >> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:606) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >> Caused by: org.sonatype.aether.transfer.ArtifactTransferException: >> Could not transfer artifact >> org.ops4j.pax.web:pax-web-features:xml:features:3.1.2 from/to >> servicemix (http://svn.apache.org/repos/asf/servicemix/m2-repo): No >> connector available to access repository servicemix >> (http://svn.apache.org/repos/asf/servicemix/m2-repo) of type default >> using the available factories WagonRepositoryConnectorFactory >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:468) >> ... 27 more >> Caused by: >> org.sonatype.aether.transfer.NoRepositoryConnectorException: No >> connector available to access repository servicemix >> (http://svn.apache.org/repos/asf/servicemix/m2-repo) of type default >> using the available factories WagonRepositoryConnectorFactory >> at >> org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:400) >> at >> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) >> ... 27 more >> >> And the build fails with following error >> >> [ERROR] Failed to execute goal >> org.apache.karaf.tooling:karaf-maven-plugin:3.0.2-SNAPSHOT:install-kars >> (process-resources) on project apache-karaf-minimal: Could not unpack >> all dependencies: >> [ERROR] Could not install feature: >> org.apache.karaf.features:standard:xml:features:3.0.2-SNAPSHOT >> [ERROR] Couldn't resolve artifact >> org.ops4j.pax.web:pax-web-features:xml:features:3.1.2 >> >> >> Best regards >> Krzysztof >> >> >> >> On 05.09.2014 07:00, Jean-Baptiste Onofré wrote: >>> Hi, >>> >>> did you change your Maven version (for instance, update to 3.2) ? >>> >>> Regards >>> JB >>> >>> On 09/04/2014 10:37 PM, Kevin Carr wrote: >>>> I am seeing a build error when building karaf-3.0.2-SNAPSHOT with >>>> -Pfastinstall >>>> >>>> The karaf-maven-plugin fails during building of all the tests. Like: >>>> test-basic-generation >>>> >>>> It is missing this class: >>>> >>>> org/sonatype/aether/RepositorySystem >>>> >>>> Any ideas? I have built the 3.0.2-SNAPSHOT before. This is the >>>> first time >>>> I have seen an error like this. -- Krzysztof Sobkowiak JEE & OSS Architect | Senior Solution Architect @ Capgemini | Committer @ ASF Capgemini <http://www.pl.capgemini.com/> | Software Solutions Center <http://www.pl.capgemini-sdm.com/> | Wroclaw e-mail: krzys.sobkow...@gmail.com <mailto:krzys.sobkow...@gmail.com> | Twitter: @KSobkowiak Calendar: http://goo.gl/yvsebC