cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Commerce Cloud support on Apple Silicon processors

anilkreddy-cts
Explorer

Does SAP Commerce Cloud development is supported on Apple Silicon (M1) processors? If so, is there any particular settings before we start working on SAP CC?

former_member792358
Discoverer

Any updates from SAP on this topic?
I believe more and more people are interested in making the switch to the Apple Silicon processors, so it would be nice if SAP can enable this sooner rather than later.

Accepted Solutions (0)

Answers (5)

Answers (5)

former_member658813
Discoverer

I support the question and actually request the support of silicon cpus. We all know hybris devs use Macs, I face multiple different issues with a new Macbook Pro M1 Pro 2021, JCo doesn't support the CPU

https://support.sap.com/en/product/connectors/jco.html

Tanuki complains about the licenses

Plz provide the support ASAP

For now SAP provides support for Apple Silicon only for the sapmachine17 (https://github.com/SAP/SapMachine/issues/810), but when we look at the current hybris versions, they are all runnning on sapmachine11.

So as you mentioned mirko84, JCo is only one part what is actually not supported for Apples M1 chips.

Also I tried to use the Java11 LTS support from azul, which works for M1 Chipsets, but as we know, other JDK than SAPs one would not work out of the box.

So, in general we could use SAP Machine 11 with Rosetta 2, but the performance there is really bad for the java process.

For example running unittests with a windows computer with WSL2 and Docker needs 6m 58s for building unittests. On my Apple Macbook Pro Max it takes 15m 23s.

IntelliJ and all the other software which are running on Apple Silicon are working like a charm, but it does not help really, when the server build/runtime is very slow.

gorin_topalov
Discoverer

Is there any update on this matter because a lot of SAP Commerce developers are using Macbooks and they will eventually swap to the M1 chip. I am currently using Rosetta 2 and yes it is very slow. I am able to rebuild the projects successfully, when trying to start the server I get several errors about the missing libraries in tomcat libwrapper-macosx-universal-64.dylib libwrapper.dylib, which are just not part of the tomcat. It was just trying to change the file extension from jnilib to dylib according to the java specifications for the new architecture of Macbook pro. If anyone finds a workaround, before the actual of the SAP Machine for M1, it will be great. I can confirm that everything else works like a charm also, but the build/runtime is negating the positive effect of the M1 chip.

MarkusHarr
Participant
0 Kudos

SAP commerce support for ARM is very slow. Rosetta 2 isn't an option. My 3 year old windows machine is fast.

gaurav11
Participant
0 Kudos

Hi anilkreddy.a

As per SAP document it should be working, and you can follow below blog for more information.

setting-up-my-mac-for-sap-development

Thanks,

Gaurav

0 Kudos

Hybris runs very well on M1 Macs, extremely fast compared to the Intel stuff. You have to regard some things: Avoid to use the Rosetta2 Layer, this kills your performance. If you want to avoid the Rosetta Layer you should not use the Sapmachine Open JDK, because there is no apple silicon native build except for the Sapmachines 15-17. I need OpenJdk 11 and i'am using the Azul Zulu OpenJDK 11 as native apple silicon build. This improves the build and startup times extremely. The Tanuki wrapper issue can be fixed by replacing the tomcat folder in platform with one of the latest Patches (for 2011 from version 201119 there is an apple silicon wrapper file included), already mentioned here: https://answers.sap.com/questions/13561718/tanuki-wrapper-does-not-find-licence-under-m1-macb.html.

senerkucuknane
Explorer
0 Kudos

Hi Rudol,

I have just started using a m1 pro mac and i have problems with Azul Zulu OpenJDK 11. When i try to do ant all i got 840 errors all from ootb extension, they start as soon as ant all starts to compile codes. Did you experience anything like this and did you do anything else than just installing Azul Zulu OpenJDK ?

Thanks in advance.

0 Kudos

Hi Sener, which hybris version are you working with? In my case there were no differences regarding build (ant) compared to the sapmachine i used before. I installed the Zulu Open JDK11 with brew, adapted the used java Version with jenv for my system, but if you are using only one JDK there is no need. Have you tried to use (ant clean all)?

senerkucuknane
Explorer
0 Kudos

Hi Rudol,

I am working with 2011 version. I have installed zulu via dmg file from their site and i am using just one sdk so i have not done anything with jenv. I am trying to use ant clean all but as i said it's giving 840 errors. Following are the last lines of errors :

[yjavac] 834. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/model/ModelServiceMapTest.java (at line 90)

[yjavac] assertEquals("map does not contain expected value", "that's a bargain no doubt!", returnMap.get(ArticleStatus.BARGAIN));

[yjavac] ^^^^^^^

[yjavac] BARGAIN cannot be resolved or is not a field

[yjavac] ----------

[yjavac] 835. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/model/ModelServiceMapTest.java (at line 96)

[yjavac] modelService.setAttributeValue(product, ProductModel.ARTICLESTATUS, new SingletonMap(commonI18NService.getLanguage("en"),

[yjavac] ^^^^^^^^^^^^^

[yjavac] ARTICLESTATUS cannot be resolved or is not a field

[yjavac] ----------

[yjavac] 836. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/model/ModelServiceMapTest.java (at line 102)

[yjavac] assertTrue("map does not contain expected key", returnMap.containsKey(ArticleStatus.BARGAIN));

[yjavac] ^^^^^^^

[yjavac] BARGAIN cannot be resolved or is not a field

[yjavac] ----------

[yjavac] 837. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/model/ModelServiceMapTest.java (at line 103)

[yjavac] assertEquals("map does not contain expected value", "that's a bargain no doubt!", returnMap.get(ArticleStatus.BARGAIN));

[yjavac] ^^^^^^^

[yjavac] BARGAIN cannot be resolved or is not a field

[yjavac] ----------

[yjavac] ----------

[yjavac] 838. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/model/UniqueOptionalAttributeTest.java (at line 54)

[yjavac] language.setIsocode("PL");

[yjavac] ^^^^^^^^^^

[yjavac] The method setIsocode(String) is undefined for the type LanguageModel

[yjavac] ----------

[yjavac] ----------

[yjavac] 839. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/search/FlexibleSearchServiceTest.java (at line 880)

[yjavac] assertThat(result.get(0).getIsocode()).isEqualTo("en");

[yjavac] ^^^^^^^^^^

[yjavac] The method getIsocode() is undefined for the type LanguageModel

[yjavac] ----------

[yjavac] ----------

[yjavac] 840. ERROR in /Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/ext/platformservices/testsrc/de/hybris/platform/servicelayer/search/restriction/impl/DefaultSearchRestrictionServiceDemoTest.java (at line 100)

[yjavac] newLang.setIsocode("NewLang");

[yjavac] ^^^^^^^^^^

[yjavac] The method setIsocode(String) is undefined for the type LanguageModel

[yjavac] ----------

[yjavac] 840 problems (840 errors)

BUILD FAILED

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/build.xml:13: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:75: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:116: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/util.xml:42: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/util.xml:44: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:123: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:313: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:518: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/compiling.xml:569: The following error occurred while executing this line:

/Users/senerkucuknane/Desktop/hybris/untitled/sharjah_2011/scs-commerce/core-customize/hybris/bin/platform/resources/ant/util.xml:84: Compile failed; see the compiler error output for details.

0 Kudos

Hello Sener, this issue seems not be related to the used OpenJdk and points towards your project setup in general. Maybe a clean project setup can help.

Best Regards

0 Kudos

For me I'm still having the issue with JCO.
[java] ERROR [ShutdownHookThread] [JMXBeanLoader] Can't unregister jmxbeans on shutdown of the tenant <<master>>

[java] org.springframework.beans.FatalBeanException: Context hybris Global Context Factory couldn't be created correctly due to, Error creating bean with name 'sapCoreDefaultJCoSessionReferenceProviderLifecycle' defined in class path resource [global-sapcorejco-spring.xml]: Invocation of init method failed; nested exception is java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.UnsatisfiedLinkError: Can't load library: /Users/claudiosilva/Dev/Alcon/hybris/bin/modules/sap-framework-core/sapcorejco/lib/darwinintel64/libsapjco3.jnilib

[java] at de.hybris.platform.core.HybrisContextFactory.build(HybrisContextFactory.java:307) ~[coreserver.jar:?]

[java] at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:99)

[java] at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)

[java] at de.hybris.platform.core.HybrisContextFactory$GlobalContextFactory.buildSelf(HybrisContextFactory.java:179) ~[coreserver.jar:?]

[java] at de.hybris.platform.core.HybrisContextFactory$GlobalContextFactory.build(HybrisContextFactory.java:165) ~[coreserver.jar:?]

[java] at de.hybris.platform.core.HybrisContextHolder.getGlobalInstanceCached(HybrisContextHolder.java:122) ~[coreserver.jar:?]

[java] at de.hybris.platform.core.HybrisContextHolder.getGlobalInstance(HybrisContextHolder.java:101) ~[coreserver.jar:?]

[java] at de.hybris.platform.core.Registry.getSingletonGlobalApplicationContext(Registry.java:1116) ~[coreserver.jar:?]

[java] at de.hybris.platform.core.JMXBeanLoader.getMBeanRegistry(JMXBeanLoader.java:141) ~[coreserver.jar:?]

[java] at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:43)

[java] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

[java] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

[java] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

[java] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)

[java] at java.base/java.lang.Class.newInstance(Class.java:584)

[java] at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:155)

[java] at com.sap.conn.jco.ext.Environment.isSessionReferenceProviderRegistered(Environment.java:422)

[java] at de.hybris.platform.sap.core.jco.runtime.SAPJCoSessionReferenceProvider.init(SAPJCoSessionReferenceProvider.java:62)

[java] at de.hybris.platform.sap.core.jco.runtime.SAPJCoReferenceProviderLifecycle.init(SAPJCoReferenceProviderLifecycle.java:22)

[java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

[java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at de.hybris.platform.core.JMXBeanLoader.beforeTenantShutDown(JMXBeanLoader.java:104) ~[coreserver.jar:?]

[java] at java.base/java.lang.reflect.Method.invoke(Method.java:566)

[java]

sreeni_g
Explorer
0 Kudos

claudioc.cruzsilva are you able to resolve it? I'm also using Mac with M1 max and seeing same JCO error when starting my server.

sreeni_g
Explorer
0 Kudos

I have commented code where Jco gets initialized during server startup in ootb SAP extensions for now. I don't have to work on SAP related items in m local. So, just commented it to bypass this issue.