The Content Interaction Library (CIL) is the public API to the REST service providing a native JAVA or .NET interface for the developers, so yes - today the recommended way to program against our REST services is to use the CIL.
In the near future we will open up the REST endpoints as a public API, the reason why we chose to move first with the CIL is to ...
You ask for code samples: the point of the CIL is that any code samples for the previous version of Content Delivery ought to work just fine. CIL is intended as a drop-in replacement.
The most obvious example of its use in an open-source project is in DD4T. It's a bit of a specialised example, but perhaps interesting nonetheless:
The issue here appears to be having URL in the Link text. Current implementation of CIL does encode link text but since we have URL, it needs double encoding so that CIS can handle the request.
As a workaround, this link text can be encoded before passing it to the API. As a result, the response will contain encoded link text which needs to be decoded again....
It looks like you are using an IBM JVM (at com.ibm.jsse2.k.a(k.java:24)).
This JVM has some specific setting that allows you to enable or disable use of TLS V1.2.
This is explained here https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls
I got rid of that error from the logs by adding the TokenService back to the cd_client_conf.xml on the webapp side.
<TokenService ClientId="clientID" ClientSecret="encrypted:password"/>
This seems like a bug with DXA where even after you have the oAuth disabled, you need the token service tag with client id and client secret in the webapp. For some ...
I guess your CIS services run on a different machine than your web application.
In that case, it is important that your CIS capabilities are not registered with localhost URLs. The web app will contact the Discovery Service to retrieve the URL of the Content Service (and other CIS Services). If those are registered with localhost URLs, the web app will ...
You can set -Duser.timezone=UTC in the JVM args when running your web application (on Tomcat or other) and this will fix the problem. Note that this may affect other date based functionality in your web application so be sure to test thoroughly that any part of the application that manipulates/displays dates is working correctly.
Note also that logging ...
As Nuno commented, you can still get access to the raw data using the (public) OData V2 endpoint (CIS Content Service).
Alternatively, you can get access to your DXA View Model data formatted as JSON (try adding ?format=json to the URL of a DXA Page).
As per best of my knowledge, there is no configuration available in the DXA framework to configure timeout of any request. You may do it using standard http request time out setting(code may vary for .Net and Java). To handle it in your application code you can create your own controller and write code to handle(throw 502 error) it. You can do timeout ...
Binary should be treated as a separate entity similar to pages and component presentations. In your case, you would need your Rest service to serve your binary as a stream.
Like Mark highlighted, you would only need the relative path in the JSON to avoid further manipulation.
A DD4T relevant example can be found at https://github.com/dd4t/DD4T.RestService....
@Shiva already answered might helpful for using .NET CIL.
To get the Binary using Java CIL.
If you ensure your Content Service has a cd_link_conf.xml and set OverrideDiscoveryService="false" (it is set true by default), CD Linking should start generating absolute URLs. It will use the Website Base URL which is configured in Topology Manager.
Note that this doesn't work well if your Website has multiple Base URLs, though (that is why it is set to ...
They are all mandatory. Although there might be some scenarios where not all of them are actually used, it is impossible to predict what those scenarios are, and which jars it might be safe to remove. I therefore strongly recommend to keep them all.
Perhaps you will feel better if you take a look at the in-process version of the API, which has 82 jars ...
Your web application uses a client library (think of it as a "SDK") which talks to the webservices. The Web Application and the Web Services can scale independently of each other. You don't need licensing on the web application, making your auto-scaling a reality if you really want to. This graph looks scary, but it's only for a minute until you realize it ...
There isn't a list, but there is way (in Eclipse), which can help you determine where class is locating
Go to the Navigate menu,
Open Type... (or Ctrl-Shift-T),
Then type in the class name and see the list of possible jars where it could be coming from.
Hope it helps.
This is normal behavior when retrieving items from a data source. The application server is only able to execute expressions when they are on a file system as aspx pages or controls or custom loaded into memory.
Here is a blog post that covers this topic for a java-based architecture. However, the same concepts would apply for a .NET architecture. http://...
You could try adding the following configuration to Web.Config under appSettings:
... other content service related config here ...
<add key="service-timeout" value="30" />
This should set the timeout for all the Content Delivery microservices to 30 seconds.
To learn more about the merge and DXA benefits and How it affects you, you can check out the following blog posts:
DXA 2.0 AND DD4T - dd4t.org
Merging DD4T and DXA - Bart Koopman
DXA 2.0 architecture - Bart Koopman
How Will the DD4T and SDL DXA Merger Affect You? - Chris Morgan
SDL Releases the SDL Digital Experience Accelerator 2.0 - Bart Koopman
After a lot of debugging, we noticed that some queries (especially ones regarding taxonomy queries) were executed very slow, resulting in a 'queue' of sql commands to be executed.
The SQL Server Activity monitor showed us all these expensive queries, and the query execution plan learned us that adding a number of indexes would help improve the execution time ...
AFAIK - CIL - Java Caching
Time based caching, NO invalidation
Limited OOTB config
Up the heap size by MB, not by entries
<?xml version="1.0" encoding="UTF-8"?>
Answer to your question, yes, Indeed It's expected and executed when a new session starts, onRequestStart at the beginning of each request, onRequestEnd at the ending of each request if ADF enabled, yes it can disable.
In Java web app web.xml comment out this section to disable Ambient Data Framework if you use CIL.
There's a method in com.tridion.ambientdata.web.AbstractAmbientDataServletFilter class from web-ambient-client-*.jar that takes the users session attributes and adds them to the claim store.
One of our session attributes has a property of java.text.DecimalFormat which extends java.text.NumberFormat, which in turn has a variable maximumIntegerDigits. When ...
Definitely consider using DXA 2.0 (or higher).
It provides what you are asking for and, in general it provides a kick-start foundation for such “Dynamic Delivery” implementations.
Note that DXA is an evolution of DD4T which is supported by SDL. DD4T is still around, but mainly for existing implementations; for new implementations I would recommend DXA.
Here are some answers to your questions. Hopefully they help to clarify things:
Q1. What is the best approach for publishing to the Broker database
A1. Whether items are stored in the Broker database or on the web server’s filesystem (or elsewhere!) is normally determined by the configuration in the Deployer’s cd_storage_conf.xml file, rather than by the ...
To clarify to understand you correctly.
I would say you won't worry about the VariantID anymore, you stick to use CIL API to get the images by Id or URL, In case if you looking to get the specific binary with specific VariantId then there is a CIL API function to get the metadata of the binary by URL with publication Id it will return the information of ...
Why do you say that the ComponentPresentationFactory is not good enough, what difficulty did you encounter? I'm guessing the "conditions" part, so my answer will be towards that.
To achieve what you want, you need to make use of the Criteria API in combination with the ComponentPresentationFactory or ComponentPresentationAssembler. The Criteria API will ...