Re: Found Issues - Release Apache Maven Version 3.6.2

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Found Issues - Release Apache Maven Version 3.6.2

Filipe Sousa
Hi,

Not sure if it’s the same bug I commented in https://issues.apache.org/jira/browse/MNG-6638?focusedCommentId=16852351&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16852351

I reported to Jetbrains https://youtrack.jetbrains.com/issue/IDEA-215315 <https://youtrack.jetbrains.com/issue/IDEA-215315> and is supposed to be fixed in 2019.3

> On 28 Aug 2019, at 20:43, Tibor Digana <[hidden email]> wrote:
>
> I used Maven 3.6.2 in the IntelliJ IDEA 2019.2.1 and I found these errors
> in the log file:
> ~/.IntelliJIdea2019.2/system/log/idea.log
>
> 2019-08-28 21:31:32,072 [255937677]  ERROR -      #org.jetbrains.idea.maven
> - com.google.inject.CreationException: Unable to create injector, see the
> following errors:
>
> 1) No implementation for org.apache.maven.model.path.PathTranslator was
> bound.
>  while locating org.apache.maven.model.path.PathTranslator
>    for field at
> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown
> Source)
>  at
> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>
> 2) No implementation for org.apache.maven.model.path.UrlNormalizer was
> bound.
>  while locating org.apache.maven.model.path.UrlNormalizer
>    for field at
> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown
> Source)
>  at
> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>
> 2 errors
> java.lang.RuntimeException: com.google.inject.CreationException: Unable to
> create injector, see the following errors:
>
> 1) No implementation for org.apache.maven.model.path.PathTranslator was
> bound.
>  while locating org.apache.maven.model.path.PathTranslator
>    for field at
> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown
> Source)
>  at
> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>
> 2) No implementation for org.apache.maven.model.path.UrlNormalizer was
> bound.
>  while locating org.apache.maven.model.path.UrlNormalizer
>    for field at
> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown
> Source)
>  at
> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>
> 2 errors
> at
> com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
> at
> com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159)
> at
> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
> at com.google.inject.Guice.createInjector(Guice.java:87)
> at com.google.inject.Guice.createInjector(Guice.java:69)
> at com.google.inject.Guice.createInjector(Guice.java:59)
> at
> org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:344)
> at
> org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:332)
> at
> org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customizeComponents(Maven3XServerEmbedder.java:573)
> at
> org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customize(Maven3XServerEmbedder.java:542)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at
> java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
> at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
> at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
> at
> java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
> at
> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
> at
> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> at
> java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
> at
> java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
> at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
> at
> java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:209)
> at
> java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:161)
> at com.sun.proxy.$Proxy216.customize(Unknown Source)
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:175)
> at com.intellij.execution.rmi.RemoteUtil.access$200(RemoteUtil.java:38)
> at com.intellij.execution.rmi.RemoteUtil$1$1$1.compute(RemoteUtil.java:156)
> at
> com.intellij.openapi.util.ClassLoaderUtil.computeWithClassLoader(ClassLoaderUtil.java:45)
> at
> com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:227)
> at com.intellij.execution.rmi.RemoteUtil$1$1.invoke(RemoteUtil.java:153)
> at com.sun.proxy.$Proxy216.customize(Unknown Source)
> at
> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)
> at
> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.onWrappeeCreated(MavenEmbedderWrapper.java:45)
> at
> org.jetbrains.idea.maven.server.RemoteObjectWrapper.getOrCreateWrappee(RemoteObjectWrapper.java:42)
> at
> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)
> at
> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.lambda$customizeForResolve$1(MavenEmbedderWrapper.java:65)
> at
> org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)
> at
> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenEmbedderWrapper.java:64)
> at
> org.jetbrains.idea.maven.project.MavenProjectsTree.resolve(MavenProjectsTree.java:1261)
> at
> org.jetbrains.idea.maven.project.MavenProjectsProcessorResolvingTask.perform(MavenProjectsProcessorResolvingTask.java:45)
> at
> org.jetbrains.idea.maven.project.MavenProjectsProcessor.doProcessPendingTasks(MavenProjectsProcessor.java:140)
> at
> org.jetbrains.idea.maven.project.MavenProjectsProcessor.access$000(MavenProjectsProcessor.java:33)
> at
> org.jetbrains.idea.maven.project.MavenProjectsProcessor$2.run(MavenProjectsProcessor.java:114)
> at
> org.jetbrains.idea.maven.utils.MavenUtil.lambda$runInBackground$5(MavenUtil.java:468)
> at
> com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)

Reply | Threaded
Open this post in threaded view
|

Re: Found Issues - Release Apache Maven Version 3.6.2

Tibor Digana
Having interface in a singleton is a kind of silly design because these are
two abstractions which go one against the other.
The CDI has an injection Provider and you caniterate over beans of certain
bean type and select according @Name then.
I think this mechanism can be used.

On Thu, Aug 29, 2019 at 12:46 PM Alexander Bubenchikov <
[hidden email]> wrote:

> Hi Enrico, my name is Alex, I've joined to Jetbrains this year and
> responsible for maven integration and Intellij idea.
>
> he issue happen because we replace some components in maven
> (ModelInterpolator in this case) to our own implementation which have
> injected PathTranslator and UrlNormalizer
> I've workarounded the issue in our code, but I didn't dig well into this.
> Is there any new way to replace maven components?
>
> On Wed, Aug 28, 2019 at 11:57 PM Enrico Olivelli <[hidden email]>
> wrote:
>
>> It may be due to any change regarding jsr 330 like
>> https://issues.apache.org/jira/plugins/servlet/mobile#issue/MNG-6686
>>
>>
>> I think it is an issue for Idea and not for us.
>> It would be good to have some developer from Jetbrains on this list
>>
>>
>> Enrico
>>
>> Il mer 28 ago 2019, 22:23 Tibor Digana <[hidden email]> ha
>> scritto:
>>
>> > I do not have NPE in the log.
>> > Guice is certainly not CDI. Moving Guice to CDI must be painful.
>> > One reason why PathTranslator could not be found is that there are
>> several
>> > bean instances of the same interface.
>> > Second problem might go with the Guice/CDI.
>> > See this inheritance:
>> >
>> > @Named
>> > @Singleton
>> > public class DefaultPathTranslator
>> >     implements PathTranslator
>> > {
>> >
>> > public interface PathTranslator
>> > {
>> >
>> >
>> >
>> > On Wed, Aug 28, 2019 at 10:04 PM Filipe Sousa <[hidden email]> wrote:
>> >
>> >> Hi,
>> >>
>> >> Not sure if it’s the same bug I commented in
>> >>
>> https://issues.apache.org/jira/browse/MNG-6638?focusedCommentId=16852351&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16852351
>> >>
>> >> I reported to Jetbrains
>> https://youtrack.jetbrains.com/issue/IDEA-215315
>> >> <https://youtrack.jetbrains.com/issue/IDEA-215315> and is supposed to
>> be
>> >> fixed in 2019.3
>> >>
>> >> > On 28 Aug 2019, at 20:43, Tibor Digana <[hidden email]>
>> wrote:
>> >> >
>> >> > I used Maven 3.6.2 in the IntelliJ IDEA 2019.2.1 and I found these
>> >> errors
>> >> > in the log file:
>> >> > ~/.IntelliJIdea2019.2/system/log/idea.log
>> >> >
>> >> > 2019-08-28 21:31:32,072 [255937677]  ERROR -
>> >> #org.jetbrains.idea.maven
>> >> > - com.google.inject.CreationException: Unable to create injector, see
>> >> the
>> >> > following errors:
>> >> >
>> >> > 1) No implementation for org.apache.maven.model.path.PathTranslator
>> was
>> >> > bound.
>> >> >  while locating org.apache.maven.model.path.PathTranslator
>> >> >    for field at
>> >> >
>> >>
>> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown
>> >> > Source)
>> >> >  at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>> >> >
>> >> > 2) No implementation for org.apache.maven.model.path.UrlNormalizer
>> was
>> >> > bound.
>> >> >  while locating org.apache.maven.model.path.UrlNormalizer
>> >> >    for field at
>> >> >
>> >>
>> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown
>> >> > Source)
>> >> >  at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>> >> >
>> >> > 2 errors
>> >> > java.lang.RuntimeException: com.google.inject.CreationException:
>> Unable
>> >> to
>> >> > create injector, see the following errors:
>> >> >
>> >> > 1) No implementation for org.apache.maven.model.path.PathTranslator
>> was
>> >> > bound.
>> >> >  while locating org.apache.maven.model.path.PathTranslator
>> >> >    for field at
>> >> >
>> >>
>> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown
>> >> > Source)
>> >> >  at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>> >> >
>> >> > 2) No implementation for org.apache.maven.model.path.UrlNormalizer
>> was
>> >> > bound.
>> >> >  while locating org.apache.maven.model.path.UrlNormalizer
>> >> >    for field at
>> >> >
>> >>
>> org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown
>> >> > Source)
>> >> >  at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
>> >> >
>> >> > 2 errors
>> >> > at
>> >> >
>> >>
>> com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
>> >> > at
>> >> >
>> >>
>> com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159)
>> >> > at
>> >> >
>> >>
>> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
>> >> > at com.google.inject.Guice.createInjector(Guice.java:87)
>> >> > at com.google.inject.Guice.createInjector(Guice.java:69)
>> >> > at com.google.inject.Guice.createInjector(Guice.java:59)
>> >> > at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:344)
>> >> > at
>> >> >
>> >>
>> org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:332)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customizeComponents(Maven3XServerEmbedder.java:573)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customize(Maven3XServerEmbedder.java:542)
>> >> > at
>> >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> >> > Method)
>> >> > at
>> >> >
>> >>
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> >> > at
>> >> >
>> >>
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> >> > at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
>> >> > at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
>> >> > at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
>> >> > at java.base/java.security.AccessController.doPrivileged(Native
>> Method)
>> >> > at
>> java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
>> >> > at java.base/java.security.AccessController.doPrivileged(Native
>> Method)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
>> >> > at
>> >> >
>> >>
>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>> >> > at
>> >> >
>> >>
>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>> >> > at java.base/java.lang.Thread.run(Thread.java:834)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
>> >> > at
>> >> >
>> >>
>> java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
>> >> > at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
>> >> > at
>> >> >
>> >>
>> java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:209)
>> >> > at
>> >> >
>> >>
>> java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:161)
>> >> > at com.sun.proxy.$Proxy216.customize(Unknown Source)
>> >> > at
>> >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> >> > Method)
>> >> > at
>> >> >
>> >>
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> >> > at
>> >> >
>> >>
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> >> > at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>> >> > at
>> >> com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:175)
>> >> > at
>> com.intellij.execution.rmi.RemoteUtil.access$200(RemoteUtil.java:38)
>> >> > at
>> >>
>> com.intellij.execution.rmi.RemoteUtil$1$1$1.compute(RemoteUtil.java:156)
>> >> > at
>> >> >
>> >>
>> com.intellij.openapi.util.ClassLoaderUtil.computeWithClassLoader(ClassLoaderUtil.java:45)
>> >> > at
>> >> >
>> >>
>> com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:227)
>> >> > at
>> com.intellij.execution.rmi.RemoteUtil$1$1.invoke(RemoteUtil.java:153)
>> >> > at com.sun.proxy.$Proxy216.customize(Unknown Source)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.onWrappeeCreated(MavenEmbedderWrapper.java:45)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.RemoteObjectWrapper.getOrCreateWrappee(RemoteObjectWrapper.java:42)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.lambda$customizeForResolve$1(MavenEmbedderWrapper.java:65)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenEmbedderWrapper.java:64)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.project.MavenProjectsTree.resolve(MavenProjectsTree.java:1261)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.project.MavenProjectsProcessorResolvingTask.perform(MavenProjectsProcessorResolvingTask.java:45)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.project.MavenProjectsProcessor.doProcessPendingTasks(MavenProjectsProcessor.java:140)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.project.MavenProjectsProcessor.access$000(MavenProjectsProcessor.java:33)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.project.MavenProjectsProcessor$2.run(MavenProjectsProcessor.java:114)
>> >> > at
>> >> >
>> >>
>> org.jetbrains.idea.maven.utils.MavenUtil.lambda$runInBackground$5(MavenUtil.java:468)
>> >> > at
>> >> >
>> >>
>> com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
>> >> > at
>> >> >
>> >>
>> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>> >> > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>> >> > at
>> >> >
>> >>
>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>> >> > at
>> >> >
>> >>
>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>> >> > at java.base/java.lang.Thread.run(Thread.java:834)
>> >>
>> >>
>>
>
>
> --
> Alexander Bubenchikov
> Software developer
> JetBrains
> http://www.jetbrains.com
> The Drive to Develop
>